Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2020-05-01 00:00:00Z and 2020-05-02 00:00:00Z
Avatar
@jao I've temporarily given up on it
00:02
@jao I've temporarily given up on it
Avatar
573d8a9 Rebuild mac libs (MacOSX 10.13.4 SDK) - def-
Avatar
@Learath2 thanks, now it built. Can you test please? https://ddnet.tw/downloads/DDNet-13.1-osx.dmg
07:58
a723299 Update ddnet-libs (rebuild mac libs again) - def-
07:59
c9dfcb2 Fix Mac OS X notifications linking - def- a723299 Update ddnet-libs (rebuild mac libs again) - def-
Avatar
On Vanilla client when voting for a different server type, noticed on far away servers like Chile.
Avatar
df278aa Make the github workflow badge link to appropriate page - def-
Avatar
@deen works great
08:39
@noby you should give it a test too, you are on older macOS
Avatar
test what
Avatar
whether it works
Avatar
i can open it
Avatar
open the package contents, run the actual executable to see the termina
08:42
l
08:42
check if curl is giving an error
Avatar
[2020-05-01 03:42:34][http]: libcurl version 7.69.1 (compiled = 7.55.0-DEV)
08:42
thats the only result for curl
Avatar
great
08:43
ship it
08:44
I think the github vms are built wrong tbh, you don't need command line tools anymore, xcode includes that nowadays
08:48
@deen you should also try passing VERBOSE=1 to make so we can see the commands executed, it'd be nice to see the -isysroot and -isystem values
Avatar
can we just fix up the github vm in a preparatory step
08:51
?
08:51
@Learath2 finally 🙂
Avatar
Hm, we could try
Avatar
The github action logs are the worst thing I've ever seen
08:53
Half of the time they don't load all the text for me, sometimes nothing, and ctrl-f is totally broken
Avatar
yeah, they are really meh
Avatar
How difficult can it be to just show a text box?
Avatar
Well I doubt they are all stupid, I'm sure there is more to it 🙂
Avatar
I guess they tried to make it lazy-load because some have dozens of MBs of logs
Avatar
(I don't see how they fail to do it either though, it should just be simple polling for the logs (or html5 sse))
Avatar
I recently wrote Javascript at work instead of C++/Python btw 😄
08:57
We needed some fancy userscript to integrate Jira and Bugzilla
Avatar
@deen can we run commands before the run? It'd be nice if we could see xcode-select -p and make VERBOSE=1
08:57
@deen javascript isn't too bad as long as you know the pitfalls, the pitfalls are like dozens of meters deep
08:58
I mostly use typescript nowadays
Avatar
yeah, so far it's survivable, but I'm basically just moving data from A to B, so nothing too hard
09:00
xcode-select -p gave me /Applications/Xcode_11.4.1.app/Contents/Developer
Avatar
okay that's pointing to the correct place
09:02
hm, I wonder how it ends up including the command line tools version of the headers, I thought cmake used xcrun
Avatar
@deen I think there's a raw log somewhere in github actions
09:02
that one is usable
Avatar
-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -g -isysroot /Applications/Xcode_11.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk that doesn't sound right
Avatar
ah, raw logs are available once the run is finished
09:08
I see isysroot twice
09:08
oh, you saw it too
Avatar
try not touching the sysroot
09:09
xcode-select thinks we are using xcodes version of the sdk as apparent from the xcode-select -p
09:15
homebrew is a joke of a package manager, I wonder how no one came up with a better version yet
09:19
I see, -isystem /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include is what's breaking the build
09:20
I wish github would just let people ssh into their containers like circle used to do
Avatar
I mean you can hack that together 😄
Avatar
@Learath2 hints for how to get rid of it?
Avatar
I'm not sure where it's coming from who decides the -isystem?
Avatar
oh, i think I am?
Avatar
Yep you are 😛
09:25
Don't use anything from commandlinetools, just let clang decide those, lets see what it decides to pull in
09:25
@heinrich5991 would be an interesting project, I wonder if the containers can access the outside world
Avatar
they can access the internet, so yes
Avatar
Try running DDNet servers on the containers
09:26
and you can start new ones on demand
09:26
no need for servers anymore, check mate
Avatar
heh, if only they didn't time out
Avatar
just need some way to migrate servers 😛
Avatar
Debug your GitHub Actions via SSH by using tmate to get access to the runner system itself. - mxschmitt/action-tmate
09:27
Apparently someone already hacked the ssh thing together
Avatar
i think I'm out of ideas
Avatar
Did you just let it run with verbose so we can check whats happening in the first place?
Avatar
yes, last push
Avatar
-I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include
09:34
now we just need to find where this is coming from
09:34
@heinrich5991 do you know of a way to trace why cmake is adding this flag?
09:34
or whether it is the one adding it to begin with?
09:35
if it's any help, it's only present when compiling the client, so it's one of the clients dependencies thinking that's the correct include dir
09:36
tbh, we could just nuke CommandLineTools while preparing, but I'd rather find the issue
09:37
@deen can you add CMakeCache.txt as an artifact so we can download it?
09:38
or just cat it to the console before the make
Avatar
@Learath2 no idea where this is coming from
Avatar
CMakeCache should tell us why
09:56
I'll take a look when I'm in front of a computer I guess
10:56
PC_CURL_INCLUDEDIR:INTERNAL=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include
10:57
@heinrich5991 I found the problem, can you gimme a hand with the cmake part please?
Avatar
[quakenet] ChillerDragon BOT 2020-05-01 11:08:49Z
@fokkonaut oh btw i deleted whatsapp just that u know
Avatar
why we dont have blocks that are half hookable and half unhookable
11:09
or even 1/4 of block
11:09
we could do hard maps with that feature
Avatar
no one wants such pixel perfect shit
Avatar
okay, pkg-config in homebrew installs the curl pkg config file, which includes the wrong sdk root
Avatar
yep it's homebrews fault, I guess we try nuking the commandline tools directory
Avatar
that fixes it
Avatar
@Smetanolub sounds like you just want the blocks to be smaller 😄
Avatar
@deen I think you can merge #2518 now
12:25
I like the way you fixed it @Learath2 😄
Avatar
this is what happens when you half-ass bolt on a package manager onto an OS hostile to anything except itself
Avatar
pacman for life
12:27
actually i just use yay
Avatar
I use aurutils on archlinux
Avatar
yay is the best
Avatar
Brew is supposed to be able to handle the situation if (XCode || CLT), it can't if the sdkdir is hardcoded...
Avatar
macos sounds like a pain in the ass
Avatar
@ChillerDragon I invited the user you needed
Avatar
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.
Retweets
7456
Likes
12045
12:33
No wonder google didn't hire this guy
12:36
I'm shit with algorithms, even I could invert a binary tree, but this guy is on another level, he pretends the packages aren't in any structure, they are all laid out flat, then he annotates the packages with dependencies to create a fake graph
Avatar
@ChillerDragon how do you want me to contact you now
Avatar
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
12:41
haha
12:43
Avatar
swap nodes, head down, keep going until nowhere to go down
Avatar
exactly 😛
Avatar
can i work at google now?
12:46
poggers
Avatar
well you didn't do it on a whiteboard
12:47
I do agree that algorithms are not a great measure of a programmer, but still failing this one, I wouldn't hire him either
Avatar
Oh, we should do that golf thing again sometime
12:48
it was fun
Avatar
ye but it would be better if it had better challenges
Avatar
yeah, it did get repetitive and meh after a while
Avatar
i would love to do versus challenges with https://www.codewars.com/
Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.
12:49
best website for this kind of thigns
12:49
to register u need to solve a challenge xd
12:50
(a rly ez one tho)
Avatar
I bet I'd fail it, I'm great at failing easy things
Avatar
@heinrich5991 bors is still choking on something
13:42
ah, interactions are not allowed to touch files inside .github
13:42
integrations*
13:43
hm, but it was choking on stuff earlier too
13:43
6f040e4 Try to fix macos action - def- 52d9c18 Merge pull request #2158 from def-/pr-macos-action - Learath2
13:45
6d433fc Revert "Allow macOS CI to fail for merging" - Learath2
Avatar
Finally the green tick is back
brownbear 2
14:38
@jao are you around?
Avatar
@Learath2 awesome!
Avatar
@Learath2 somewhat
Avatar
Is it hard to run a copy of the ddnet bot locally?
Avatar
@Learath2 of bors?
Avatar
no of @DDNet
Avatar
you need to setup postgres rest is easy
15:30
i think it only works on linux btw
Avatar
@jao how do I choose the db it uses?
Avatar
you create a .pgpass file at your home dir
Avatar
nice, it doesn't care about .pgpass 😛
15:46
passing the dsn manually to create_pool does seem to work
Avatar
why doesnt it work
troll 1
Avatar
no idea didn't even read .pgpass
15:50
what are you using the database for btw?
Avatar
menus branch is the up to date one btw
15:51
for $profile $points etc
15:52
you can see data/schema.psql
Avatar
hm am I supposed to be the one to create the tables btw?
15:54
cant u run the entire file in psql or smth
Avatar
yeah, btw you have a syntax error there, a . instead of a ,
Avatar
do u need the cronjobs too
16:10
?
Avatar
nope, just doing a learning exercise
Avatar
@heinrich5991 do you happen to know why regex \b would limit the matches to 1?
Avatar
figured it out, new question, are regex lookaheads bad for performance?
16:44
I feel they aren't that bad because you don't need backtracking
Avatar
@jao what do you use when coding in python?
Avatar
huh, the autocompletions are shit for me
17:12
does it complete something like pat = re.compile(r".*"); pat.?
17:15
type inference for pat should be absolutely trivial
Avatar
ye autocompletion works
17:34
you can use pycharm
17:34
it’s better for that kinda stuff
Avatar
@Learath2 install python extension
Avatar
I'm not retarded, ofc I have the python extension
Avatar
what are you even making
Avatar
@Learath2
18:56
how to fix lags
🤦‍♂️ 3
🧊 1
19:00
redstripe
Avatar
ctrl shift q
Avatar
@heinrich5991 https://rust-analyzer.github.io/ seems to do a way better job than RLS
rust-analyzer: building a better Rust IDE
19:24
they just released their first release on 20 apr
19:25
i agree
19:26
The RFC proposes a plan to adopt rust-analyzer as Rust's official LSP (Language Server Protocol) implementation. The transition to rust-analyzer will take place in a few stages: Feedback -...
Avatar
[quakenet] Konsti BOT 2020-05-01 21:25:39Z
Hello, i have a very weird bug ingame (GER Server). I played the map Topsy Turvy with my dummy yesterday and saved at a part which couldnt be done with dummy. Now i loaded the savegame with a partner who did it and saved again. And here comes the bug. When i load the save i can play normally except for that one of the tees cant use weapon. Not like that he hit a hammer off tile, he just cant use the weapon, pressing mouse1 has no effect. Th
21:26
Before loading and after saving his weapons work again
Avatar
the first message was cut off after "no effect. Th"
Avatar
[quakenet] Konsti BOT 2020-05-01 21:27:16Z
I tried to change the server but the same bug happened again, also any other tee always the same bug for exactly the same tee
21:27
The other tee normally can
Avatar
[quakenet] deen BOT 2020-05-01 21:31:41Z
which weapon btw? or multiple don't work?
Avatar
[quakenet] Konsti BOT 2020-05-01 21:32:05Z
i have no extra weapons, only hammer and pistol. none of them, works
21:32
with antiping it "tries" activity but with antiping off just nothing happens
Avatar
[quakenet] deen BOT 2020-05-01 21:33:14Z
so you can select the weapons but not shoot. sounds like m_Ammo is 0 or maybe the regeneration counter is set to a wrong time
Avatar
ah
21:33
it's the fix we recently pushed
21:33
from fokkonaut
21:33
it probably didn't consider saves
21:33
damn it, I missed that
21:33
deen: ^
Avatar
[quakenet] Konsti BOT 2020-05-01 21:35:55Z
what was the intended use of this fix^^ And will my save work again when its refixed or is it dead now?
Avatar
[quakenet] deen BOT 2020-05-01 21:36:07Z
heinrich5991: since you already reviewed, any idea how to fix?
Avatar
Konsti: will work again after this is fixed
Avatar
[quakenet] Konsti BOT 2020-05-01 21:36:33Z
thanks for help so fast
Avatar
my guess without looking at the source: disregard ammo while loading
21:36
and set it to -1 if we have the weapon and 0 if we don't
Avatar
[quakenet] deen BOT 2020-05-01 21:36:54Z
for all weapons?
Avatar
yes
21:37
but let me look at the saving code
Avatar
[quakenet] deen BOT 2020-05-01 21:37:25Z
why don't we care about it anymore?
21:37
it's easy to do in save code, i can make a pr
Avatar
needs to be the load code
Avatar
[quakenet] deen BOT 2020-05-01 21:37:45Z
yeah, i figured
Avatar
because we don't track freeze by "no ammo" anymore
21:38
(which was a hack that I'm happy about getting rid of)
Avatar
As reported by Konsti, thanks to heinrich5991 for remembering #2086
Avatar
Is there any commit that adds the ddnet ingame updater?
21:40
I would like to apply it for F-Client
Avatar
[quakenet] deen BOT 2020-05-01 21:40:19Z
nope
21:40
we had to change lots of stuff about it
21:40
but the code is relatively modular
21:41
see updater.cpp/h and all uses of its functions I guess
21:41
and be prepared for lots of fiddling and failing updates :D
Avatar
thanks, I will try it :)
Avatar
[quakenet] deen BOT 2020-05-01 21:42:37Z
and on the server side you'll need something like https://update4.ddnet.tw/update.json
Avatar
uhm, what? :D
Avatar
[quakenet] deen BOT 2020-05-01 21:43:26Z
to specify what to update
Avatar
[quakenet] Konsti BOT 2020-05-01 21:44:19Z
when will the commit be merged?
Avatar
when I finish reviewing it
21:44
and then it needs to be deployed to the servers
Avatar
[quakenet] Konsti BOT 2020-05-01 21:45:10Z
ok thanks
Avatar
@deen what does all of it mean? and do i need to do it manually?
Avatar
[quakenet] deen BOT 2020-05-01 21:45:36Z
Konsti: yes, manually
Avatar
konsti? :D
Avatar
[quakenet] deen BOT 2020-05-01 21:46:01Z
whether to update server executable, client exec, libs, files. and you'll need to provide them from your web server as well
Avatar
deen: I think you need to set it to m_aWeapons[i].m_Got ? -1 : 0
Avatar
@heinrich5991 it can be -1, it doesnt matter
Avatar
[quakenet] deen BOT 2020-05-01 21:46:32Z
ah, so we don't ignore it totally
Avatar
if you dont have the weapon, it doesnt matter whether you have 0 or -1 ammo
Avatar
@deen or remove that variable completely, that would work as well
Avatar
[quakenet] deen BOT 2020-05-01 21:47:26Z
in m_aWeapons you mean?
Avatar
.m_Ammo*
Avatar
in CCharacter
Avatar
I wouldnt remove it tho
21:47
So mods have it easier to work with it
Avatar
it's non-functional for us
Avatar
true
Avatar
we don't have code to decrement it
Avatar
@deen, if i just want to update the executable i just set client = true, and if i need to update some other files i need to set them in download: ?
Avatar
[quakenet] deen BOT 2020-05-01 21:48:54Z
yes
Avatar
and does the server need anything more?
Avatar
[quakenet] deen BOT 2020-05-01 21:49:29Z
only the update.json and the files in correct location, but you'll see the client error messages if they're not there
Avatar
okay
21:49
how do you keep track of what changed?
21:49
do you go back commit by commit before a release?
Avatar
[quakenet] deen BOT 2020-05-01 21:50:08Z
DDraceNetwork, a cooperative racing mod of Teeworlds - ddnet/ddnet
Avatar
deen: but you do need to set it to -1 if you got the weapon, otherwise it won't fix Konsti's problem
Avatar
[quakenet] deen BOT 2020-05-01 21:50:29Z
if something in data or ddnet-libs changed -> need to put it on server and add it to update.json
21:50
heinrich5991: yeah, I noticed, so always -1 is the easiest fix I guess
Avatar
@deen okay, can you give me an example of how the server structure has to look like? so where to put the json, where the other files?
Avatar
deen: yes
Avatar
[quakenet] deen BOT 2020-05-01 21:51:47Z
Konsti: wanna give it a try?
21:52
huh, only one empty ger server
21:52
on ger2, none on ger
21:54
ok, tested with konsti, works
21:54
it's in the queu
21:54
e
Avatar
[quakenet] Konsti BOT 2020-05-01 21:55:12Z
thanks to u both
Avatar
[quakenet] deen BOT 2020-05-01 21:55:17Z
i'll rebuild servers once it's submitted
21:55
you're welcome Konsti
Avatar
I'm really not pleased about the updater, I wrote it but apparently I wasn't really thinking while making it 😛
Avatar
[quakenet] deen BOT 2020-05-01 21:56:07Z
heinrich5991: bors is a bit stupid about the queue isn't it? If the builds were green already and nothing was merged inbetween, then no need to rerun them
Avatar
yes @deen I think there's an issue about it
Avatar
anyone else having problems with borderless window? sometimes the border appears
21:59
7ae8988 Don't load m_Ammo to fix loads (following #2086) - def- 2067a1a Merge #2160 - bors[bot]
Avatar
usually when im tabbed out for a while or when pc is sleeping and i repoen
Avatar
@deen https://github.com/bors-ng/bors-ng/issues/185 didn't have movement for three years though
Consider the situation where: Pull requests are built the same way as staging/trying. The tests pass on a pull request. The pull request has master as an ancestor. There is nothing else in bors&amp...
Avatar
@deen oh no, the updater requires http.h, which is not in 0.7
22:10
so I guess I need that too :/? Uhm... I think this wont happen if no one PRs it :D
Avatar
@Learath2 i need your help/opinion... I am in a conflict with myself regarding 128 players. I got it to a point where it works pretty good, also with dummy and so on. I made it so that players with the same IP get the same faked IDs in the map. Vanilla clients 0.7 works fine of course, and I made an adjustment in my 0.7 F-Client for some things for the dummy (because everything is different, e.g. team changes, client enter, drop etc. everything is a netmsg now). So F-Client with dummy works flawless too.
23:23
DDNet clients work fine too, also with dummy. Expect one point: whisper. When whispering to the dummy that is not active at the moment, it will of course say the name of the player with the fake id of the current player's map. I could fix that by sending RECV whispers as server messages for DDNet clients.
23:24
But generally, I am not 100% sure whether I should keep the whole thing or go back to 64 players. I mean, it definitely is a nice thing to have, since for example today I had 80 players at a time. Usually tho, it is around 60-70
Avatar
@Learath2 did you figure out why bors chokes on some PRs?
Avatar
bcf9e00 Make dummy hold fire with cl_dummy_hammer 1 - trml 65284f3 Merge #2159 - bors[bot]
Avatar
@heinrich5991 well it was choking on that one because it was modifying a file in .github/workflows, apparently integrations are not allowed to make changes to that
Avatar
Not sure why they did not reply in this thread, but I did get a confirmation from GitHub support via mail:   OAuth tokens and GitHub Apps are restricted from editing the main.workflow file. This means it isn't possible to merge a Pull Request via an Action if it updates the m...
Avatar
@fokkonaut I'd stick to 64 players, the translation patches were never nice, I think 64 is more then enough
Avatar
ty
Avatar
@Learath2 well, BlmapChill is a big map tho, and 128 is working fine besides that
23:31
but i also think the algorithm is a bit laggy
Avatar
this is all fixable but it'll take a lot of work, to get the algorithms all optimized
23:33
I don't get your whisper issue, the current players id map should match the dummies exactly
Avatar
No, of course it doesnt on the serverside
23:34
if the dummy is in another area where other tees are
23:34
they have different id's on dummy/main
Avatar
yeah but the first part is the same
Avatar
its about WHO sent the message
Avatar
oh, do we send a client id and not an actual name?
Avatar
yes, thats how ddnet whisper works.
23:35
so as i said, i could fix it by sending a servermsg to all clients with the same IP as the receipiant
Avatar
why all clients? you as the server always know the correct recipient
Avatar
Yes, but if I send it to the dummy only, the main wont receive it
23:36
only whisper and team messages are received when they go to the udmmy
Avatar
this all sounds very meh
Avatar
yea. but okay, another thing. Lets imagine I remove 128 support. F-Client still has some things in the client, for example a complete set of m_aClients[] for thedummy, so that the dummy can have different infos for each client, that was of course used for 128 players, as the info is not in snaps anymore. But if I remove that, also team changes for specific tees to specific tees only wouldnt work in 0.7 dummy anymore. My mod does team changing to team blue to hide players from minigames.
23:38
i am completely overwhelmed right now xD
23:39
i hate 0.7 for moving stuff out of snaps
Avatar
with 64 clients you should never be lacking info
Avatar
yes, but if my dummy joins a minigame, it gets teamchanges to team blue for everybody thats not in the same minigame, when swapping to the main again, the others are of course still in team blue, which is false.
23:42
The second m_aCleints array fixes that
23:42
but i inititally did that for 128 players, so i think i would need to keep that too in the client, even if i remove 128
Avatar
having different sets information for dummy and main sounds logical to me
23:43
This is a point where I really notice how much better the Snap thing is
Avatar
@heinrich5991 why? the dummy and the main client exist in the same game world
Avatar
But for cases like the team changes it is neccessary
Avatar
@Learath2 in every server implementation, currently
23:44
but if I write my own tw server, there's no guarantee I send the same IDs to every player
23:45
e.g. I could choose to send cid=0 for the client's own tee
Avatar
Well I don't like these kinds of "many mods in one mod" mods to begin with tbh
23:46
@heinrich5991 I don't think this is a good idea
Avatar
why not?
Avatar
@Learath2 well, teeworlds adventure mod also does this, they have multiworld and also send faked ids
Avatar
adding 50 layers of translation is just not a good idea
23:47
then I don't like the "teeworlds adventure mod" either
Avatar
@heinrich5991 why would you want inconsistent ids anyway, it would only give you more players in one server, or support some mod in mod situations
Avatar
because I don't want to leak server state e.g.
Avatar
dummy is only a mod too, it should work as a real new client i think
Avatar
no harm to leaking the actual client ids
23:50
only more complexity with designing the translation layer that'll just add overhead
Avatar
"runtime overhead"? meh (edited)
Avatar
at the very best case I can imagine (a swap from your cid to 0 and put the guy at 0 in your position (at that point why bother you are still leaking state)) it's still a constant overhead of an extra branch instruction
Avatar
you shouldn't worry about that extra instruction
23:52
you should worry about making a proper collision algorithm first
23:52
(that is not O(n^2). that costs more instructions)
Avatar
At no gain, it's still an extra instruction
Avatar
say you want to swap tees in 0.7
23:53
then you need your ID swapping feature anyway
Avatar
ah, you could copy over the tee data, fair enough
Avatar
any useful translation table and you are looking at some very bad performance characteristics
Avatar
why?
Avatar
at the very least while generating the table
23:56
if you want to support more then 64 clients, you are going to have to sort the tees based on distance, that's O(logn) with a good algorithm
23:57
If you want just a 64 -> 64 mapping, it'll have a [64][64] memory cost
Avatar
which is 4KB btw
Avatar
besides, put aside the cost, we don't seem to care about that much in 2020, it doesn't bring anything to the table, I don't see a good use for it
Avatar
but okay, I see that you don't need it, so it's unnecessary overhead
23:58
but I do think that you worry about the wrong costs if you're worried about one extra mispredicted branch per network packet
Avatar
this is how these things add up, we have all become too lax, started relying on the processors raw power to take care of things, fancy branch predicting algorithms in cpus, speculative execution
Exported 367 message(s)