Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/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 2024-07-10 00:00 and 2024-07-11 00:00
Avatar
cyberFighter 2024-07-10 00:00
what was that one site u had
00:00
that was a bootleg discord
Avatar
chillerdragon BOT 2024-07-10 00:00
git log -SRender
Avatar
ws-client BOT 2024-07-10 00:01
<ChillerDragon> Uwu
Avatar
Avatar
catseyenebulous
I do not have a .svg file but I could export it as one if you'd like? ^^
hm ill take a look
00:57
thank u
Avatar
Can anyone help me?, I'm trying to make a websocket connection with python at this link "wss://chat.modd.io/socket.io/?EIO=4&transport=websocket" but it gives me an error, can anyone help me?
Avatar
Avatar
welcom
Can anyone help me?, I'm trying to make a websocket connection with python at this link "wss://chat.modd.io/socket.io/?EIO=4&transport=websocket" but it gives me an error, can anyone help me?
01:56
give error & code
Avatar
I didn't understand -_-
Avatar
chillerdragon BOT 2024-07-10 02:18
@welcom: give error & code
Avatar
Avatar
chillerdragon
@welcom: give error & code
a
02:19
ok
Avatar
chillerdragon BOT 2024-07-10 02:20
@welcom: don‘t announce you have an error and wait for a response. Give enough details so someone can solve your error.
Avatar
Avatar
welcom
Can anyone help me?, I'm trying to make a websocket connection with python at this link "wss://chat.modd.io/socket.io/?EIO=4&transport=websocket" but it gives me an error, can anyone help me?
import websocket import ssl def on_message(ws, message): print(f"Mensagem recebida: {message}") def on_error(ws, error): print(f"Erro: {error}") def on_close(ws): print("Conexão WebSocket fechada") def on_open(ws): print("Conexão WebSocket aberta") if __name__ == "__main__": websocket.enableTrace(True) ws = websocket.WebSocketApp("wss://chat.modd.io/socket.io/?EIO=4&transport=websocket", on_message=on_message, on_error=on_error, on_close=on_close) ws.on_open = on_open ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
02:20
8.07 KB
Avatar
chillerdragon BOT 2024-07-10 02:21
Don’t ask „can anyone help me?“ Just ask your question. People might help if they want to.
02:22
Where is that code coming from? Did you follow some tutorial or make it up?
02:24
What is chat.modd.io
Avatar
Avatar
chillerdragon
Don’t ask „can anyone help me?“ Just ask your question. People might help if they want to.
I made the code, I was looking for ways to get chat messages from a game, it's a browser game, its name is braains.io. If I use an extension to connect to this link it works, but if I try to do it with websocket it doesn't work
02:31
Avatar
Avatar
welcom
Click to see attachment 🖼️
the name of the extension is simple web socket client
02:32
02:32
but if I try to connect using python it won't work
02:32
using websocket
02:34
I'm sorry if you don't understand, I'm Brazilian and I'm using Google Translate to talk :,(, I've been trying to solve this problem for 3 days and I can't
Avatar
what data structure is ddnet network updates sent as (like whatever is sent each tick)? How big is it in bytes
03:48
for a project i'm working on i'm currently sending data over network as dictionaries containing info for each field of an entity i send. I feel it'll be pretty bandwidth heavy so i'm wondering what better practices there are
Avatar
Avatar
louis
what data structure is ddnet network updates sent as (like whatever is sent each tick)? How big is it in bytes
it's sorta complicated. They are sent as snapshot diffs where only the things that changed from the previous tick are sent, plus every once in a while a full snapshot is sent. (Atleast from what I understand) (edited)
04:45
there is no fixed size but there is a size limit (edited)
04:47
basically the same idea as video encoding where you have I-Frames and P-Frames
04:47
but not B-Frames
Avatar
ah okay
04:51
@Tater do you know how often a full snapshot is sent?
Avatar
not off the top of my head
Avatar
Avatar
louis
@Tater do you know how often a full snapshot is sent?
almost never apart from the first
04:58
iirc the client has a CRC check, if it thinks it can not reconstruct a full snapshot it just request one from the server
04:59
unless there are some heavy packet drops or interference, this would ideally never happen
Avatar
ah okay
04:59
not even if a single packet is dropped?
Avatar
yes actually he's right
Avatar
are multiple previous deltas sent every tick
Avatar
it uses the last acknlowledged snapshot to create the diff (edited)
Avatar
no, client holds several at a time
Avatar
my game is in 10 tps so significantly less than tw, but it will definitely send more than 5x the data than a ddnet server would send
Avatar
each packet has a parent packet id, the client will delta decode based on the correct one
Avatar
Avatar
TsFreddie
no, client holds several at a time
but if one tick is dropped from server, doesn't the client need to ask for the full snapshot again
Avatar
the client tells the server which snapshots it has
Avatar
there is a acknoledgement system
05:01
client tells server that it has a snapshot in full (either received as-is or decoded)
05:01
server will only delta encode packets based on the client's acknoledged ones
05:01
so server also holds multiple snapshots just in case clients acknoledges a older one
Avatar
ah okay
Avatar
do you know how many snapshots the client stores?
Avatar
a tad complicated 😮💨
Avatar
not on top of my head (for teeworlds)
Avatar
just as an example what are some things that would be in a full snapshot that are not in a delta that saves a lot of data?
Avatar
i know how it works, i don't think i know any detail. only because i coded a similar one for our game
Avatar
Avatar
louis
just as an example what are some things that would be in a full snapshot that are not in a delta that saves a lot of data?
in teeworlds at least, delta only works because everything is integer
05:04
there is a 7-bit variable length integer packing
05:04
a value takes 1 to 5 bytes depend on how large the number is
05:05
so if a player position is 1500 last tick and 1501 this tick, the delta packet encodes a 1 which is 1 byte
05:05
so basically, for teeworlds at least, everything is sent in the delta
05:05
literally, everything
Avatar
ah okay i see
Avatar
Avatar
louis
just as an example what are some things that would be in a full snapshot that are not in a delta that saves a lot of data?
afaik the things it can delta are the creation of entities and their positition/properties updating. So in theory the server only sends info when an entity is created and when it moves
Avatar
cuz they are all integers, delta is just the difference between the value, the save in size if inhereted from encoding
Avatar
Avatar
Tater
afaik the things it can delta are the creation of entities and their positition/properties updating. So in theory the server only sends info when an entity is created and when it moves
do they tho?
Avatar
pretty sure?
05:06
let me see
Avatar
ig that means a lot of server calculation between the client's last snapshot and the current state on the server then
Avatar
i thought teeworlds just send everything
Avatar
cuz skipping snap just means it disappeared
Avatar
if it sent everything why bother with delta
Avatar
it sent everything in delta encoding, but it doesn't skip entities
05:07
if it doesn't change it sends a bunch of zero
Avatar
no I think it actually doesn't send zeros
Avatar
but in order to not send zeros, you need extra information for appearing and disappearing, i don't remember teeworlds has a system for that (edited)
Avatar
I think it has that
05:08
unless I'm stupid
Avatar
maybe i remembered it wrong
05:09
heinrich definitely know
05:09
either way a bunch of zero if not that bad
05:09
cuz teeworlds also has huffman
Avatar
maybe i will just send new position every tick since i'm calculating in floats xd
Avatar
a zero is 1 bit
05:10
I believe CSnapshotBuilder::NewItem handles adding items
05:10
and deletion just happens?
Avatar
new item is for creating a snapshot, this part seems to be the part where it prepare the base snapshot
Avatar
ah wait
05:11
I copied the wrong thing
Avatar
it check whether a snap exists, if it doesn't it is deleted. so for a snap to stay there have to be one
05:11
even if it didn't change
Avatar
no actually
05:12
I think I was right
05:12
new item is for entities
Avatar
i don't think snapitem works like entities
Avatar
how are different actions labeled in the bits sent over network? (differentiating between movement data and aim data for example)
Avatar
Avatar
louis
how are different actions labeled in the bits sent over network? (differentiating between movement data and aim data for example)
just pure order.
Avatar
ah ok
Avatar
I mean entity like the general meaning
05:13
I guess it's called a snapitem
Avatar
anyway, you need to send extra data if you want to skip a snap id just to indicate it didn't change
05:14
or at least a special case for handling not changing
05:14
either way is not more worth it than just packing the diff
Avatar
you just don't include the snapitem id in your snapshot data to indicate it didn't change?
Avatar
no
05:15
not including a snapid means it disappeared
Avatar
snapshot is a collection of individual deltas
Avatar
Avatar
TsFreddie
not including a snapid means it disappeared
I thought there was delete message
Avatar
i don't remember there being one
05:16
but i am too lazy to check
Avatar
MilkeeyCat 2024-07-10 05:17
morning
Avatar
norming
Avatar
found this variable that does nothing
05:18
probably a too scared to touch situation
Avatar
maybe it's required to keep struct size
Avatar
better not touch it
05:19
can't believe i'm reading teeworlds' code again
Avatar
well you're in the teeworlds code channel
Avatar
Avatar
TsFreddie
not including a snapid means it disappeared
ok maybe you're right
Avatar
i was about to say i think you are right cuz i did see they packed deleted keys
Avatar
oh lol
Avatar
but i don't see the skipping part yet (edited)
05:22
where do deleted keys get packed
05:23
this is.. mmm
Avatar
ah true
Avatar
honestly
05:24
if teeworlds really didn't skip but still has a deletion system
Avatar
ok yeah I think it does send deletion messages then?
Avatar
we might just...
05:25
cut the bandwidth more without breaking anything
05:25
assuming it really didn't skip anything
Avatar
I think it does skip
05:25
because the deleted items will just not be in the "pTo" snapshot
05:25
so they don't get iterated over
05:26
05:26
anything that was deleted won't be in the "pTo"
05:26
+ it already sent the client all the stuff which was deleted so the client is expected to delete those things first
Avatar
i mean well obviously, but what about non-deleted stuff that also skipped due to "not changed" (edited)
05:27
ah
05:27
like didn't move?
05:27
yeah idk
Avatar
yet, aren't we talking about skipping snaps for "not changed"
05:27
my entire argument is that teeworlds doesn't skip anything so it didn't need a deletion manager
Avatar
I think here this if will be false if they are "not changed"
Avatar
ah
05:28
ye, problem solved
05:28
you are right
05:29
and.... louis is gone
05:29
lol
Avatar
tbh it's not a super complicated system, but the teeworlds code is certainly not the most elegant way to write it
Avatar
i can garrentee you our networking packer is jankier than teeworlds'
Avatar
I can't figure out why this is nessecary
Avatar
"it helps the cache"
Avatar
I mean the O(n^n) part
Avatar
Avatar
TsFreddie
and.... louis is gone
hm
05:32
😹
Avatar
the gamedev is back!
Avatar
why is there an item hashing system in the first place (edited)
Avatar
ye, idk
05:33
bro. firefox's find is broken
Avatar
so how much money do you think this optimization saves in terms of server costs
Avatar
press . key
05:33
it opens vscode in browser
Avatar
true
05:34
firefox literally modified the page when i tried to select and search
Avatar
Avatar
louis
so how much money do you think this optimization saves in terms of server costs
it's basically required
Avatar
it fixed itself again, didn't manage to grab a screenshot
05:35
search on github is annoying
05:35
I have that same issue with firefox
05:35
I know what you mean
Avatar
Avatar
louis
so how much money do you think this optimization saves in terms of server costs
ye, what tater said. it is actually quite essential just to make sure it is playable everywhere, not just server costs
Avatar
sometimes it opens firefox search, other times it opens github search
Avatar
Avatar
louis
so how much money do you think this optimization saves in terms of server costs
there are other ways than snapshot / delta encoding tho
05:36
if you are sending json. a basic gzip is all you need.
05:36
for 10tps
05:36
it's not too bad
Avatar
yeah im sending a dictionary that gets serialized into json
Avatar
are you doing snapshot prediction/interpolation and stuff which really really requires a snapshot?
Avatar
every tick is only position information for other players (usually) and for enemies it's position info every time the enemy starts a new move, and the move name (a short string, i could use a local int-to-move-string map though)
Avatar
are you doing it in browser
Avatar
do you have a reliable/unreliable channel thing?
05:38
like udp/reliable udp
Avatar
also chat messages ig. not sure how much of an effect it has
Avatar
or just udp and tcp
Avatar
yeah i'm using godot, each tick sends both reliable (if there is data to send) and unreliable data
Avatar
godot oh
05:39
wait, why are you sending json with godot lol
05:39
godot has binary packers iirc?
05:39
for location really, just push it via a unreliable and forget them.
Avatar
does it? xd
Avatar
let me check
05:40
also you can bitpack values if you really just want locations
Avatar
maybe i'm on the newbie side of the internet but lots of the stuff i read just recommended using rpc and serializing to json
Avatar
godot tutorial on networking are all pretty basic
Avatar
Avatar
TsFreddie
also you can bitpack values if you really just want locations
yes, in terms of players i think the data can be pretty easily optimized if need be
05:42
the only place i'm worried abt bandwidth is in main lobbies and whatnot, like for example there are hundreds of players on one world (edited)
Avatar
catxplosion do you see everyone on screen at once
Avatar
in the worst case scenario probably but then since gameplay precision doesn't matter as much in a lobby updates could just be sent at a lower rate
Avatar
you can just encode_s16 then decode_s16 on the other side (edited)
05:43
choose you own byte length
05:43
it is pretty handy
Avatar
Avatar
TsFreddie
choose you own byte length
ah okay
05:43
yes then that's pretty nice
Avatar
godot will send PackedByteArray no problem, it handles that for you
Avatar
how is it possible that we can have an O(n^n) algorithm in the code and it doesn't destroy the game (edited)
Avatar
for now i use json'd dictionaries to find out what i need to send and what i dont but after that i guess packing is best idea
Avatar
Avatar
Tater
how is it possible that we can have an O(n^n) algorithm in the code and it doesn't destroy the game (edited)
it must be worst case scenario?
05:45
given how the comment says O(n)...O(n^n)
Avatar
O(n^n) is really really bad tho
Avatar
Avatar
louis
in the worst case scenario probably but then since gameplay precision doesn't matter as much in a lobby updates could just be sent at a lower rate
if you see 100 players in a densed area. we can assume several things: 1. camera would be pretty zoomed out and does not require a lot of precision. 2. players will have close proximity to each other
Avatar
I think it meant to say O(n*n)
Avatar
then it is a perfect oppertunity to do delta encoding between players actually
05:46
for example, you can divide player locations by 10, int them, then encode(p1_pos), encode(p2_pos - p1_pos) and so on
05:46
you can save a lot of bandwidth doing that
Avatar
Avatar
Tater
I think it meant to say O(n*n)
oh, i just assumed it meant that really. i didn't realize what n^n actually means. so i was quite confused about what you were talking about oof
05:48
justatest
05:48
O(n^n) just doesn't exist in my brain i guess
Avatar
Avatar
TsFreddie
then it is a perfect oppertunity to do delta encoding between players actually
oh you do need a 7bit packing algorithm to make that work tho
Avatar
n=16 would be 18,446,744,000,000,000,000 iterations lol
Avatar
so definitely not that
Avatar
what does this even mean // O(1) .. O(n)
05:50
best/worst case?
05:50
ok I'm finding who wrote these
05:51
good luck on the quest lol
Avatar
he's finding them irl
Avatar
don't forget to share photos kek
Avatar
ok they were there forever
05:53
14 years old
05:54
thanks magnus
Avatar
do not doubt magnus
Avatar
you're right
05:56
there's so many comments like "// TODO: this is bad, change it later" and now it can't be changed without breaking protocol or physics
06:01
I spent like 4 days trying to optimize it
06:02
but preserve the original functionality
06:03
Avatar
Avatar
TsFreddie
either way a bunch of zero if not that bad
heinrich5991 2024-07-10 07:33
unchanged items in the snap are not sent
Avatar
Avatar
TsFreddie
i don't remember there being one
heinrich5991 2024-07-10 07:34
@Tater is correct. you delete items by including their ID in the deleted items section of a elta
Avatar
owo i knew you would know
07:35
imma name one of my character elta, sounds cool
Avatar
Avatar
TsFreddie
imma name one of my character elta, sounds cool
MilkeeyCat 2024-07-10 07:36
Im yoinking this name
Avatar
catxplosion yoinkaway
Avatar
Avatar
Tater
how is it possible that we can have an O(n^n) algorithm in the code and it doesn't destroy the game (edited)
N guaranteed low?
Avatar
Avatar
Learath2
N guaranteed low?
It's mislabeled
Avatar
That explains it
Avatar
heinrich5991 2024-07-10 08:01
same as mozilla firefox btw
08:03
I guess that usage might be less defensible. but e.g. https://addons.mozilla.org/ has special permissions, so that even ad blockers don't work there
Avatar
Avatar
MilkeeyCat
Im yoinking this name
same
santatrollet 1
Avatar
@Learath2 looking better now
10:12
CAntibot::Update is still at 22%, but at least not 50
10:14
One thing that stands out is that every str_copy calls str_utf8_fix_truncation, which is kind of useless for this kind of string
10:14
I'll replace it with a mem_copy
Avatar
GitHub BOT 2024-07-10 10:18

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-ad...
Avatar
I want to reorganize some internals for the unique game servers and came to a general problem I wanted to ask for help here. How do I publish a directory with subdirectories and files on the internet such that others can sync it? I basically want rsync but accessible to the public. My first instinct would have been to use HTTP but I don't know any tools that can sync a folder hierarchy from HTTP and I don't know if it's even possible because HTTP doesn't have a method to list the files in a directory AFAIK. Should I really use FTP in 2024?
Avatar
Put it in a git repo and put it on github: https://github.com/ddnet/ddnet-maps
11:28
You can also create your own git server
11:29
You can also run rsync as a daemon to allow anyone to sync from it using rsync
11:30
But with github you'll probably reach 100x as many people as with an rsync:// server
11:31
Alternatively SFTP, but you'll have to be careful that the user you generate doesn't have permissions to do anything bad: https://wiki.archlinux.org/title/SCP_and_SFTP
11:32
FTP is really out of date, I would not have used that for anything 15 years ago 😄
11:33
For HTTP there is also WebDAV, but I don't have experience with using that
Avatar
Avatar
timakro
I want to reorganize some internals for the unique game servers and came to a general problem I wanted to ask for help here. How do I publish a directory with subdirectories and files on the internet such that others can sync it? I basically want rsync but accessible to the public. My first instinct would have been to use HTTP but I don't know any tools that can sync a folder hierarchy from HTTP and I don't know if it's even possible because HTTP doesn't have a method to list the files in a directory AFAIK. Should I really use FTP in 2024?
heinrich5991 2024-07-10 11:37
rclone seems to be able to sync from http directory listings: https://rclone.org/http/
Read only remote for HTTP servers
Avatar
I need to programmatically update files and sync files that's why I think it would be a misuse of git
11:42
Rclone seems perfect
Avatar
For a much smaller project almost a decade back, I used unison to sync files. It can work over plain tcp too
11:43
But I guess it's more appropriate when you need to be able to modify stuff on both sides
Avatar
Yeah for me it's only one-way
Avatar
Avatar
timakro
I need to programmatically update files and sync files that's why I think it would be a misuse of git
What is the issue with git?
11:44
You can make commits programatically just fine
Avatar
I think git pull man page specifically mentions you should not call it from a script
Avatar
I doubt that (edited)
Avatar
I'm sure you would get it to work though it's just not what git was made for
Avatar
heinrich5991 2024-07-10 11:45
I don't see such a notice in the man page (edited)
11:45
I've been automatically pulling changes for 10 years or so from git repositories
11:45
it seems to work fine
Avatar
ddnet-maps has been on git/github for 10 years too
Avatar
heinrich5991 2024-07-10 11:47
(a downside of git is that you get all the history, too)
Avatar
Avatar
heinrich5991
(a downside of git is that you get all the history, too)
Which you can get around by cloning shallow, no?
Avatar
heinrich5991 2024-07-10 11:50
yes, but that in addition to pulls is bad for performance, according to github
11:50
they asked the cargo team to not do shallow clones as that was hard on the github infra
Avatar
Avatar
timakro
I think git pull man page specifically mentions you should not call it from a script
yea it's not in the man page, that was wrong
Avatar
Avatar
heinrich5991
they asked the cargo team to not do shallow clones as that was hard on the github infra
Hm, that's interesting. So the shallowing isn't something trivial
11:52
I would assume pulls in a shallow repo would just pull in deltas like normal, apply them, then prune
Avatar
i think git is the right move tbh
11:52
not different from automating e.g. cmake calls
Avatar
Or if you really don't need the versioning capabilities of git at all. I guess ftps or rsync are what I would go for
Avatar
i'd still use git bcs nowadays the likelihood of a system having git is prob higher than rsync 😁 + just standard
Avatar
Avatar
Learath2
Or if you really don't need the versioning capabilities of git at all. I guess ftps or rsync are what I would go for
Rclone parsing a listing meant for endusers just sounds more jank than those to me 😄
Avatar
If I use git is there anything I should be aware of? My first attempt would be just to do # on main server git commit -m "Added map $mapname" # on locale in a systemd timer git pull (edited)
Avatar
push but ya
Avatar
Avatar
timakro
If I use git is there anything I should be aware of? My first attempt would be just to do # on main server git commit -m "Added map $mapname" # on locale in a systemd timer git pull (edited)
heinrich5991 2024-07-10 11:55
how do you want to pull? via ssh? that should work out of the box
Avatar
I think http because automated pulls won't have an ssh key
Avatar
I might add a git reset --hard there. We still get a couple pull issues on ddnet because of that
Avatar
Avatar
timakro
I think http because automated pulls won't have an ssh key
heinrich5991 2024-07-10 11:57
then you should also start an https server (if you haven't already)
Avatar
maybe just fetch and then reset --hard to avoid conflicts and just overwrite stuff
Avatar
Avatar
Ewan
why?
Idk, never diagnosed it further. Somehow sometimes local servers will end up with changes
Avatar
but there should be no conflicts because nobody writes there
Avatar
heinrich5991 2024-07-10 11:58
then it should just work™
Avatar
Avatar
Learath2
Idk, never diagnosed it further. Somehow sometimes local servers will end up with changes
spooky
Avatar
Avatar
Learath2
Idk, never diagnosed it further. Somehow sometimes local servers will end up with changes
heinrich5991 2024-07-10 11:59
probably because of admin actions ^^
Avatar
Avatar
heinrich5991
probably because of admin actions ^^
Which would make sense but it happened on bans-global.cfg, it should never be manually edited 😄
Avatar
heinrich5991 2024-07-10 12:03
hmmmmm
Avatar
i think im gonna try out hyprland
12:06
friends are saying it works with fractional scaling
Avatar
I've been using 1.5x on normal xorg on my laptop for a bit now, and I haven't had many issues
Avatar
too many variables
12:08
with how wayland works that behavior now depends entirely on the compositor
12:08
no more xrandr to fall back on
12:09
and it "works" on gnome too it just looks like shit and unnecessarily scales some stuff
Avatar
heinrich5991 2024-07-10 12:12
Note from @orta - If you are here because your Specs repo isn't updating, run: cd ~/.cocoapods/repos/master && git fetch --depth=2147483647 - this will convert your local repository of ...
12:12
Apparently, most of the initial clones are shallow, meaning that not the whole history is fetched, but just the top commit. But then subsequent fetches don't use the --depth=1 option. Ironically, this practice can be much more expensive than full fetches/clones, especially over the long term. It is usually preferable to pay the price of a full clone once, then incrementally fetch into the repository, because then Git is better able to negotiate the minimum set of changes that have to be transferred to bring the clone up to date.
12:13
not very specific I guess
Avatar
Avatar
Learath2
Idk, never diagnosed it further. Somehow sometimes local servers will end up with changes
So you are the one deleting my manual changes!
12:15
why not upstream
Avatar
Ah, bans-global.cfg. I think this happens because we can run two git pulls at the same time
12:16
I'd add a lock, but then there is danger of the lock file staying around after a server crash
Avatar
Avatar
deen
Ah, bans-global.cfg. I think this happens because we can run two git pulls at the same time
Mh it should never get half a commit, no?
Avatar
I'm not sure, but that's the only thing I can imagine causing these problems
Avatar
Put the lock file in /tmp or somewhere that is guaranteed to be empty after a crash (not sure if /tmp applies)
Avatar
it does
12:18
/var/tmp is persistent
Avatar
heinrich5991 2024-07-10 12:18
I'd guess debian clears out /tmp on reboot. I only know that macos does
Avatar
My /tmp is on a tmpfs
Avatar
I think some distros have /tmp actually in memory and not on disk but I'm not sure
Avatar
Is that common?
Avatar
heinrich5991 2024-07-10 12:19
debian changed to /tmp on tmpfs so recently that our servers definitely don't have it yet
12:19
I'd still guess that debian clears out /tmp on reboot
Avatar
seems pointless otherwise
12:24
they have to have some mechanism
Avatar
heinrich5991 2024-07-10 12:26
yes, but it's not entirely clear that it has to happen on reboots
12:27
I'd still guess it does
12:27
but e.g. cleaning it up every 7 days would also work. I think that also happens
Avatar
Ah, so if you fetch --depth=1 too it behaves as I expected. I didn't know pull wasn't smart like that
Avatar
The Systems Team at GitHub works to solve complex bugs and performance bottlenecks at the lowest levels of our infrastructure. Over the past two years we’ve undertaken a major project to improve the performance of Git network operations (like clones or fetches) for the repositories we host. Two years ago, if you cloned a large […]
Avatar
GitHub BOT 2024-07-10 13:42
108d0dc Make FillAntibot faster - def- 89992f2 Merge pull request #8576 from def-/pr-mem-copy - heinrich5991
Avatar
MilkeeyCat 2024-07-10 14:05
i spent 30 mins trying to solve sqlx error because couldn't read .env file but i named it .env pepeW
Avatar
heinrich5991 2024-07-10 14:06
and there was nothing in the logs about missing .env files?
Avatar
MilkeeyCat 2024-07-10 14:07
it was telling me that it couldn't find .env file but i was looking at it from neovim and i didn't the the space xd
Avatar
hello fellow devs
Avatar
today i made a MLIR IR with a single function big enough it makes the mlir optimizer run forever and get OOM
14:12
(i have 64gb ram)
Avatar
u sure u didnt make infinite loop
Avatar
on the server at work with 128gb ram it ooms too
14:12
@Ewan did u read what i said
14:12
im not running the program
Avatar
MilkeeyCat 2024-07-10 14:12
Haha I like your funny words magic man
Avatar
u sure mlir didnt make infinite loop
Avatar
im optimizing it (to be more pedantic, im getting the canonicalized format of it)
14:13
no, its just that the single region is so big it takes forever
14:13
since the optimizer runs passes through regions
14:13
im sure if i divided the func into smaller ones it would work
14:14
@MilkeeyCat this is important topic in compiler dev, u should make a canonicalization pass to make optimizations easier
14:14
its easier to recognize patterns
14:15
A lot of code constructs can be written in multiple ways. For example: x + 4 4 + x (x + 2) + 2 Canonicalization means picking one of these forms to be the canonical form, and then going through the program and rewriting all constructs which are equivalent to the canonical form into the canonical form. In the case of add, it’s common to pick the form that has a constant on the right side, so we’d rewrite all these constructs to x + 4.
14:15
its this in a nutshell
14:15
having a canonicalization pass is a way of factoring out the parts in a compiler that know all the different forms x + 4 could take, so that most optimization passes don’t have to worry about this. They don’t have to look for 4 + x, because they can assume that looking for x + 4 covers that. Handy!
14:39
i rly wasnt gonna say anything but i cant take u srsly with the anime pfp
Avatar
@Patiga is twmap able to append maps?
Avatar
heinrich5991 2024-07-10 15:01
what do you need precisely? the whole append operation or only part of it?
Avatar
the whole, i think
Avatar
heinrich5991 2024-07-10 15:14
what's your use case? 😮
Avatar
appending justatest
Avatar
Avatar
jxsl13
appending justatest
heinrich5991 2024-07-10 15:15
surely not on its own. it's probably a way to achieve something ^^
Avatar
I'm just kidding
Avatar
Avatar
Ewan
i rly wasnt gonna say anything but i cant take u srsly with the anime pfp
xd
Avatar
Avatar
Ewan
i rly wasnt gonna say anything but i cant take u srsly with the anime pfp
classical CamelCase connoisseur pfp
Avatar
i love camel
15:48
case depends on the case
Avatar
Avatar
Ewan
case depends on the case
case ECAMELSTATE::ATTACKING: run(); break;
Avatar
Avatar
fokkonaut
@Patiga is twmap able to append maps?
no, mostly because I didn't need that operation so far
15:59
are you using the python bindings or the rust library?
16:14
I didn't know that reproducible-builds.org doesn't actually track actual debian packages
16:14
but only their rebuilds
Avatar
GitHub BOT 2024-07-10 17:04
c865663 Show help text when chaining multiple commands - ChillerDragon 89437b7 Fix console search with multiple commands - ChillerDragon 54977d5 Auto complete when chaining multiple commands - ChillerDragon 6b0b49e Look at command under cursor not at the end of the line - ChillerDragon 5d43d34 Also split commands on double quotes - ChillerDragon 43a4934 Also split commands on spaces - ChillerDragon 7b540dd Remove support for space separation - ChillerDragon 8e83049 Merge pull request #8352 from ChillerDragon/pr_multi_cmd_helptext - Robyt3
Avatar
MilkeeyCat 2024-07-10 17:49
chillerdragon: I found the password from your chat!!!!
Avatar
leak pls
Avatar
MilkeeyCat 2024-07-10 17:54
cWOiCHDL}?sx&v6!w4%( one of the characters is wrong santatrollet
Avatar
GitHub BOT 2024-07-10 19:18
  • Added cl_spec_clan_color and cl_show_spec_clans config variables
  • Added color picker and checkbox in settings (Appearance->HUD and Appearance->Name plates)
  • Added functionality for rendering spectator
!screenshot

Checklist

...
Avatar
Avatar
GitHub
Click to see attachment 🖼️
many thanks to nRx
Avatar
Are there functions to create snaps from entity data on the clientside?
19:49
i don't want to do this manually please save me
Avatar
GitHub BOT 2024-07-10 19:57
546a8a7 Reinstate Zeral and zhn aka gerdeo aka barsik, Iza stepped down - murpii
Avatar
Avatar
zhn
many thanks to nRx
OMAGAAAD pvp features
Avatar
Avatar
GitHub
Click to see attachment 🖼️
MilkeeyCat 2024-07-10 20:09
gerdeo santatrollet
troll 1
Avatar
i'm so confused - where do these come from:
Avatar
discord or steam overlay maybe ?
Avatar
Edict is a fast, powerful and ergonomic ECS crate that expands traditional ECS feature set. Written in Rust by your fellow 🦀
Avatar
Hello, sorry for maybe offtopic here: is https://info.ddnet.org/icons/ddnet.png the correct comm icon URL? I see it in info (https://info.ddnet.org/info) but since yesterday I'm getting ERROR 404 for all comm icons (so the client does not look as expected). Is it a known issue? I tried different proxies and VPNs with the same result, yet I can't believe that such an issue can stay for that long.
Avatar
heinrich5991 2024-07-10 21:47
hmmm. that seems to be incorrect, indeed
Avatar
ah, forgot to update that
21:47
we moved it to a different server
21:47
one moment
21:50
fixed
👍 1
Avatar
Avatar
Teero
i don't want to do this manually please save me
it works now.....
Avatar
chillerdragon BOT 2024-07-10 23:50
Yes you can use the snapshot builder. What are you working on?
Replying to @Teero Are there functions to create snaps from entity data on the clientside?
23:52
?xd which password what can it do?
Replying to @MilkeeyCat chillerdragon: I found the password from your chat!!!!
Exported 424 message(s)
Timezone: UTC+0