00:07 < bridge> nah I found a bug, me stupid 00:07 < bridge> time to redo everything again fml 00:12 < bridge> @chillerdragon after this whats going to be left is just and `bugprone-crtp-constructor-accessibility` and `modernize-use-override` 00:15 < bridge> can check `modernize-use-override` maybe tomorrow 00:16 < bridge> and crtp is some jank idk how to fix that 06:03 < bridge> The DDNet repo reached 700 stars!! :owo: 06:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1415910654224891904/image.png?ex=68c4ed0e&is=68c39b8e&hm=d10d2bf5cb980be2c2866103b38807e0f0e29fc31e2232546cf46676ed635a06& 08:02 < bridge> I'm surprised you still think i care about benefits. I only care about having a general solution over a special cased one. And if they basically perform the same, perfect 08:46 < bridge> Yay thanks for working on that @kebscs 08:46 < bridge> !remind 60 send order to rob after coffee 08:46 < chillerbot12> Helo chillerdragon I will remind you at Fri Sep 12 2025 09:46:26 GMT+0200 (Central European Summer Time) about your matter again. 08:49 < bridge> Jupstar - destroyer of hopes and dreams. 08:50 < bridge> @robyt3: without looking at the list (which I would actually need) I assume you reviewed most anyways. Except the bug fix that changes physics :D the start of my planned projectile bug fix series 08:50 < bridge> That one I would really like to get into ASAP 08:51 < bridge> https://github.com/ddnet/ddnet/pull/10399 08:51 < bridge> That one I would really like to get in ASAP 09:11 < bridge> @chillerdragon I believe you can take a look on the rotation clipping PR, it's really simple 😮 09:19 < bridge> @essigautomat 09:19 < bridge> 09:19 < bridge> > The calculations are done as you suggested, with the green bounding box. 09:19 < bridge> > But only if the envelope contains rotation at all. Otherwise it resumes to the old behavior 09:19 < bridge> 09:19 < bridge> This is btw exactly what i wanted to prevent.. having a special case 😂 09:19 < bridge> Well anyway, you don't need to revert it now 09:19 < bridge> idk why I should calculate this, if 99% of all quads never rotate <.< this just makes the bounding box worse 09:20 < bridge> Yes, and code readability too 09:20 < bridge> You should first do the general case, and then hyper optimize 09:20 < bridge> You started with hyperoptimized without even having the general case 09:21 < bridge> do you think the current code is too complicated? I find it quite readable 09:22 < bridge> the grouping makes it maybe a bit unreadable, due to hyperoptimization 🙈 09:24 < bridge> idc anynow now 09:24 < bridge> my main goal was you to now skip rotated quads 09:24 < bridge> and that is achieved now 09:24 < bridge> 🏅 09:25 < bridge> I love four boundry box skid btw, it has some flavor to it 09:46 < chillerbot12> Elo @chillerdragon I just wanted to remind you that: send order to rob after coffee 09:47 < bridge> Elo @jupeyy_keks I just wanted to remind you that: read ddnet-rs server :3 09:47 < bridge> https://tenor.com/view/cirno-fumo-cirno-touhou-nineball-9-gif-13579626131739145630 09:54 < bridge> id anynow anyhow's unsafe brother 09:54 < bridge> is anynow anyhow's unsafe brother 09:56 < bridge> :lol: 10:05 < ws-client> **** @robyt3 this would also be nice https://github.com/ddnet/ddnet/pull/10793 the rest seems sameish prio 10:20 < bridge> @chillerdragon can we merge #10864 ? 10:20 < bridge> https://github.com/ddnet/ddnet/pull/10864 11:18 < ws-client> **** yes its close to ready. Maybe I have one final look tomorrow morning. 11:18 < ws-client> **** or ping lerato he will merge it with eyes closed now xd 11:20 < ws-client> **** i rly gotta cleanup all my wip prs i got a bunch of them in waiting for author state recently <:justatest:572499997178986510> 11:33 < bridge> 11:33 < bridge> 🙂 11:53 < bridge> @robyt3 11:53 < bridge> ``` 11:54 < bridge> /home/runner/work/ddnet/ddnet/src/engine/shared/jsonwriter.h:98:2: error: annotate this function with 'override' or (rarely) 'final' [modernize-use-override,-warnings-as-errors] 11:54 < bridge> 98 | ~CJsonFileWriter(); 11:54 < bridge> | ^ 11:54 < bridge> | override 11:54 < bridge> ``` 11:54 < bridge> should final be used? 11:54 < bridge> i have not seen functions be final in ddnet code, only few classes 12:08 < bridge> non 12:09 < bridge> override 12:09 < bridge> :D 12:15 < ws-client> **** rosbi u here? 12:36 < bridge> I guess a final is fine, I'd not expect this to be inherited another time. But maybe we need a _final decision_ 12:42 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1416011062716666007/image.png?ex=68c54a91&is=68c3f911&hm=63acd79334bd9af545f930289191a67ffdb307a666a32652345bc4b56c4699a8& 12:42 < bridge> tooday i fixed some more deadlocks xd 12:44 < bridge> for classes sure, but functions? 12:45 < bridge> with 18 vcpus and doesnt seem to deadlock :D 12:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1416011747982049423/image.png?ex=68c54b34&is=68c3f9b4&hm=882c3a1308f40ae6806a1495a9396cdc0590ce204fa8e0af77be03a8c9f80c8d& 14:11 < bridge> does vmath not have tests? D: 16:00 < bridge> @learath2 https://github.com/SFBdragon/talc 16:00 < bridge> dlmalloc inspired 17:01 < bridge> 1. Does anyone have any developments of anti tas system? Well, like a ready-made solution that creates micrologs 17:01 < bridge> 2. Is it possible to make it so that I can distribute the command to all my servers running on ports 8303 8304 and so on 17:01 < bridge> so that it is executed on all of them at once? 17:02 < ChillerDragon> @rehoboamrulit which servers are yours? do you have a lot of tas users? 17:03 < ChillerDragon> there is nothing public as far as i know 17:05 < bridge> tasers are really lazy, just compare if 2 finishes have exact same time or really close time, then get few random positions from 1st run, and compare if same positions were visited in 2nd run 17:06 < bridge> thats what i would do, simple and would detect some 17:06 < bridge> on ddnet this check could be applied to only top10 times and really make cheaters life harder 17:06 < bridge> but admins afk 17:07 < bridge> on ddnet this check could be applied to only top10 times and make cheaters life harder at least a bit 17:10 < bridge> ``` 17:10 < bridge> [2025-09-12T15:09:43Z ERROR legacy_proxy::socket] sending failed: Permission denied (os error 13) 17:10 < bridge> ``` 17:10 < bridge> 17:10 < bridge> ?????? 17:10 < bridge> 17:10 < bridge> Why can this happen 17:16 < bridge> devs afk* 17:17 < bridge> and who has access to the antibot? and who can delete times? only admins xd 17:18 < bridge> u dont need antibot or ssh to ask learath for teehistorian files to test tas detection scripts tho 17:18 < bridge> no access to antibot or teehistorian 17:19 < bridge> i think learath is ok with sending teehistorian files with tassed ranks to contributors who are interested in them 17:19 < bridge> if its not accessible doubt anyone will ask 17:19 < bridge> for the files 17:20 < bridge> we have multiple terabytes of teehistorian data 17:20 < bridge> share some for the players/devs 17:20 < bridge> or just wasting storage space 17:21 < bridge> https://discord.com/channels/252358080522747904/293493549758939136/1395540008496140288 17:21 < bridge> 17:21 < bridge> u can probably dm learath 17:21 < bridge> i also asked for some a while ago but never did anything with it xd 17:22 < bridge> so if learath's pc dies, all data is lost? 17:22 < bridge> not sure if thats good for the game 17:22 < bridge> wat 17:22 < bridge> it's obviously not saved locally xd 17:22 < bridge> if its gatekept it could be saved locally noone would know 17:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1416081671597326489/image.png?ex=68c58c54&is=68c43ad4&hm=016ab59b0cc8f7ea636b5b7d815e719820df691608c4aa8e2908079520820744& 17:23 < bridge> from # 17:23 < bridge> is it gatekept if all it takes is to ask ._. 17:23 < bridge> yes 17:25 < bridge> Not only okay, I've given multiple people many files 17:27 < bridge> Deen keeps a full archive, heinrich keeps a full archive, I keep just a sample. So if deen and heinrich suffer catastrophic multiple harddisk failure yes it would be lost 17:28 < bridge> Deen keeps a full archive, heinrich keeps a full archive, I keep just a sample. So if deen and heinrich suffer catastrophic multiple harddisk failure at the same time yes it would be lost 17:28 < bridge> oh interesting, whats the full size? 17:28 < bridge> More than 3TB compressed, I know because that's where I ran out of storage 17:30 < bridge> maybe the situation with the wiki could tell thats not a good idea of storing data 17:30 < bridge> I think one of Patiga or Zwelf also might have a full mirror now 17:31 < bridge> I mean it's as secure as it gets, both deen and heinrich have it on RAID storage. There would need to be a catastrophic event 17:31 < bridge> At the size it is I highly doubt anyone else would be interested in syncing a full mirror themselves anyway 17:32 < bridge> if i ever decide to set up my NAS properly with the 20TB HDD, i might :Pepega: 17:32 < bridge> if i ever decide to set up my NAS properly with the 20TB HDD (i want to get at some point), i might :Pepega: 17:33 < bridge> Full mirror would be too much for most people 17:34 < bridge> But if there was a system for contributing for example 100gb of redundancy that would be cool 17:34 < bridge> k gores , There are users of tas and their normal 17:34 < bridge> exactly 17:35 < bridge> even a lot smaller 17:35 < bridge> idk why theres not even a small sample 17:35 < bridge> Maybe a top10 pruned version 17:35 < bridge> I was thinking of something more robust 17:36 < bridge> Like bittorrent but you set a limited amount of storage 17:36 < bridge> And it could choose chunks which have the keast redundancy 17:36 < bridge> And it could choose chunks which have the least redundancy 17:37 < bridge> It would be very useful actually 17:37 < bridge> Preserving things by a shared effort is a concept i really like 17:38 < bridge> Bigger problem is that the community doesn't seem to agree on whether the runs should even be public at all 17:40 < bridge> Overall, don't be worried about redundancy and/or if you need a sample (or even the full archive for a larger project). Samples of whatever size your project needs is always provided upon request and both the archives we have are in fairly redundant storage 17:42 < bridge> What can this data even be used for 17:42 < bridge> What does it even include 17:42 < bridge> Many cool things. It's pretty much every single input ever performed on ddnet within the last half a decade 17:43 < bridge> Lots of data analysis, bot detection, AI research possible 17:43 < bridge> You can also do cool data visualization projects for cool videos and gifs 17:44 < bridge> So like is converting it to a demo technically possible? 17:44 < bridge> Is there some like public sample that i can just download? 17:44 < bridge> There are 2 tools that already do it 17:45 < bridge> Zwelfs tee-hee creates pretty accurate demos 17:45 < bridge> That's very good marketing..I'd like to have 2 copies please 17:45 < bridge> Hm, idk if we have any public samples, maybe we can pick a handful to have available for curious people 17:45 < bridge> Is chat included 17:46 < bridge> No chat 17:46 < bridge> Right i guess it might have not been legal to just share chat data 17:46 < bridge> Idk 17:47 < bridge> So how quickly does the archive grow? 17:47 < bridge> are there emotes? 17:48 < bridge> I don't remember 17:48 < bridge> Probably 17:48 < bridge> https://discord.com/channels/252358080522747904/1272531556183048253 17:48 < bridge> 90 votes vs 10 17:48 < bridge> Didn't keep track 17:48 < bridge> I think this is actually a bug in my kernel or os lol. 17:48 < bridge> 17:48 < bridge> i remember seeing failed http requests in my browser.. probs similar reason 17:49 < bridge> 88 vs 12 :thonk: 17:49 < bridge> Okay but like some useful value like X gb per month 17:49 < bridge> Or per time per server 17:50 < bridge> Or per time per person 17:50 < bridge> I am actually interested in a sample now lol 17:50 < bridge> I don't have the full archive to check, we can ask @0xdeen to give a rough estimate when he is around 17:51 < bridge> I guess me first joining a server is also saved 17:52 < bridge> Also how is the data stored anyways 17:52 < bridge> Probably in chunks 17:53 < bridge> At what level? It's a stream of inputs, input changes and player positions, for each tick 17:53 < bridge> + some extra data needed for reproduction. Like team changes and other chat commands 17:53 < bridge> On the high level can you find a specific time or server? 17:54 < bridge> Yes you can, we have it indexed by time, server, port, map 17:54 < bridge> Also we keep track of what teehistorian file every finished run ends up in 17:55 < bridge> And how big are the individual files 17:55 < bridge> Differs from 1kb to I think 300G 17:55 < bridge> Uncompressed that is 17:55 < bridge> Differs from 1kb to I think 100G 17:56 < bridge> It's interesting 17:57 < bridge> The smallest ones are where someone changes the map immediately 17:58 < bridge> The most annoying thing about working with the files is that you need a working physics simulation to get a demo 17:59 < bridge> Teehee uses twgame which is pretty accurate nowadays but still isn't perfect 17:59 < bridge> What if physics change? 18:00 < bridge> We change the teehistorian version to keep track of physics changes 18:00 < bridge> But is that manual 18:00 < bridge> Basically anything that would affect reproducibility we mark with a teehistorian version bump 18:00 < bridge> What if there is a change that no one knew about 18:01 < bridge> Yes, if we somehow forget to then we have to parse the files further for the git hash the server was running 18:01 < bridge> Floating point is weird too 18:01 < bridge> The compiler might compile it differently technically 18:01 < bridge> And change the behaviour 18:02 < bridge> Git hash should be good enough i guess 18:02 < bridge> But still technically not prefect if you can't reproduce the server binary 18:03 < bridge> I guess it doesn't really matter 18:03 < bridge> In practice 18:03 < bridge> If we get some bizarre frankenbug that only happens on CHN we also store the server 18:03 < bridge> So all the data is there 18:03 < bridge> But it might be next to impossible to get out all of it 18:03 < bridge> It should be unless we missed something 18:04 < bridge> I am really curious about the physics 18:04 < bridge> Very early teehistorian files suffer from non-deterministic teleports iirct 18:05 < bridge> Those need a special case to resolve the destination with player position in the next tick instead 18:06 < bridge> Yeah 18:06 < bridge> So is there any documentation of this format 18:08 < bridge> And i guess the format itself doesn't have compression and files are compressed using standard methods 18:09 < bridge> https://github.com/heinrich5991/libtw2/blob/master/doc%2Fteehistorian.md 18:09 < bridge> Yep, the entries are very compressible. We used to use xz for a while, then moved to zstd 18:10 < bridge> Great 18:11 < bridge> What are those UUIDs? 18:13 < bridge> Extra messages for stuff we added later 18:14 < bridge> But why use 16 bytes? 18:14 < bridge> Isn't that a bit much 18:15 < bridge> I guess those additional messages aren't emitted often 18:16 < bridge> Also what are namespaces 18:17 < bridge> Like wtf is teehistorian@ddnet.tw 18:18 < bridge> You should read up on uuids 18:35 < bridge> no way 18:35 < bridge> i thought that would never get merged 18:35 < bridge> 1 step closer to google play xd 18:38 < bridge> servers and clients may add netmsgs in random order so their id cant be depndent on the order so it does the magic (hash) to some strings that describe the type to generate a number (16 bytes) of [very likley to be a univerisally unique] (UU) identifier (ID) 18:39 < bridge> a space often named to put other names, idk what the email format is called when its not referring to emails but it uses that and ddnet.tw is the namespace and teehistorian the name 18:39 < bridge> (i tried) 18:39 < bridge> Wrong uuids. These are the teehistorian ones not the netmsg ones 18:39 < bridge> oops! 18:39 < bridge> same thing tho right 18:39 < bridge> servers may add teehistorian msgs (?) in random order so their id cant be depndent on the order so it does the magic (hash) to some strings that describe the type to generate a number (16 bytes) of [very likley to be a univerisally unique] (UU) identifier (ID) 18:40 < bridge> Yeah but what do those mean in the tee historian spec 18:40 < bridge> Yeah the exact same idea. There is one last teehistorian entry type called EX, that extends teehistorian the same way 18:40 < bridge> a teehistorian entry, which i dont know what they are but a unit of data of some kind 18:40 < bridge> a teehistorian entry, which i dont know what they are but a unit of data of some type 18:41 < bridge> Like why do i need the string "teehistorian-save-success@ddnet.tw" 18:41 < bridge> How does it help me with anything 18:41 < bridge> you know the data in that msg is a teehistorian save success msg 18:42 < bridge> oh 18:42 < bridge> Okay but the string isn't saved in the file right 18:42 < bridge> no the 16 bytes are 18:42 < bridge> The uuid pf that message is saved 18:42 < bridge> the string is much longer than the 16 bytes 18:42 < bridge> So why is the string necessary 18:42 < bridge> but both are almost garunteed to be unique 18:42 < bridge> Why does it exist 18:42 < bridge> the string is human readable, the uuid isnt 18:43 < bridge> Well i guess 18:43 < bridge> people wont naturally avoid eachother generating random uuids, but they will with strings 18:43 < bridge> especially when they uses namespaces 18:43 < bridge> people using the ddnet.tw namespcae will be cooporating so wont collide 18:43 < bridge> So is just to have a stabdarized way of refering to messages? 18:44 < bridge> standard way of making smaller uuids from bigger uuids 18:44 < bridge> standard way of making smaller uuids (called uuids) from bigger uuids 18:44 < bridge> i think we use uuids v2 18:45 < bridge> no we use 4 18:45 < bridge> standard way of making smaller uuids (called uuids) from bigger uuids~~~~ 18:46 < bridge> ~~standard way of making smaller uuids (called uuids) from bigger uuids~~ 18:46 < bridge> i hate discord so much, it lags and it doesnt even replay my inputs in the same order when it catches up 18:46 < bridge> telegram is basically discord minus server management and spyware and their client is butter smooth 18:47 < bridge> uses qt6 18:51 < bridge> Okay so those uuids are generated from the namespace + a name? 18:53 < bridge> Weird but ok 18:53 < bridge> So why are UUIDs used for extra messages? 19:17 < bridge> What interesting statistics could we pull out 19:30 < bridge> > servers may add teehistorian msgs (?) in random order 19:31 < bridge> and so what? 19:31 < bridge> > so their id cant be depndent on the order 19:31 < bridge> > so their id cant be depndent on the order [they are added] 19:31 < bridge> okay but it could just be a random number 19:31 < bridge> [cat_uwu](https://cdn.discordapp.com/emojis/1230626195649990696.webp?size=48&name=cat_uwu) 19:32 < bridge> not uuid 19:32 < bridge> https://tenor.com/view/pipotam-baby-hippo-hippo-wash-shower-gif-3406421565683572068 19:32 < bridge> > people wont naturally avoid eachother generating random uuids, but they will with strings 19:32 < bridge> > especially when they uses namespaces 19:32 < bridge> okay 19:33 < bridge> the hasing algorithm is optimized to avoid collisions 19:33 < bridge> the namespace and name are probably hashed seperatley and combined 19:33 < bridge> the namespace is quite likely to be unique since people use domains 19:34 < bridge> something they are confident will remain theirs forever 19:34 < bridge> (rip ddnet.tw) 19:35 < bridge> i guess i have to record a teehistorian file and look at it 19:35 < bridge> seems fairly easy to parse 19:36 < bridge> it is not 19:36 < bridge> it is not 19:36 < bridge> FUCKING DISCORD STOP LAGGING 19:36 < bridge> stupid discord 19:36 < bridge> i ahte discord 19:36 < bridge> might become robo 19:37 < ws-client> **** im robo now 19:37 < bridge> discord should allow you to insert messages in the past 19:37 < ws-client> **** eh 19:37 < ws-client> **** replying and deleting and editing is fine 19:38 < ws-client> **** if i could do it in a reasonable timeframe 19:38 < ws-client> **** or discord would relay my inputs in the correct order after its done lagging 19:39 < bridge> ```cpp 19:39 < bridge> #beinhalte 19:39 < bridge> 19:39 < bridge> Ganz Haupt() { 19:39 < bridge> druckef("Hallo Welt."); 19:39 < bridge> zurück 0; 19:39 < bridge> } 19:40 < bridge> ``` 19:40 < bridge> $deepl 19:40 < bridge> Hi! Most of us communicate in English. If you’re having trouble with English, use to help you out. 19:40 < bridge> lol 19:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1416116305848959136/image.png?ex=68c5ac95&is=68c45b15&hm=ae1e634fa00ef8df8fa2459268640ffe032bc3bfef455eb692726944e1fc1fb1& 19:40 < bridge> also is deepl any good? 19:42 < bridge> I always use deepl 19:48 < ChillerDragon> deepl is quite good yes 19:49 < ChillerDragon> @learath2 old meme 19:50 < bridge> I wouldn't translate include to beinhalte, but rather `hinzufügen`, or Grammatically correct `#füge hinzu` 19:51 < ChillerDragon> ioflow? 19:52 < ChillerDragon> @melon when do we meet in munich? 19:55 < bridge> iostream 19:55 < bridge> No money this month and next 19:55 < ws-client> **** nah bro 19:56 < ws-client> **** cant gtype 19:56 < ws-client> **** im gores rn 19:56 < bridge> :ChooChoo: 19:56 < ws-client> **** ok plat 19:56 < ws-client> **** @melon bad excuse 19:56 < ws-client> **** i buy u dinner tonight 19:56 < ws-client> **** u in? 20:02 < bridge> :poggers2: my company paid my dinner today 20:02 < ws-client> **** rip 20:02 < ws-client> **** i would say i buy u a drink but im trying out this sober thing tonight 20:02 < ws-client> **** ok then another time 20:02 < bridge> I'm proud of you 20:15 < bridge> ``` 20:15 < bridge> #ifndef PHYSICS_H 20:15 < bridge> #define PHYISCS_H 20:15 < bridge> ``` 20:15 < bridge> bro i was wondering why i got errors. spot the difference 20:23 < bridge> PHYISCS goes hard 20:31 < bridge> fi-sksksksksksksksk 20:40 < bridge> If I wanted to beinhalte eafluss I would have beinhalte'd eafluss. I wanted cstdea 20:40 < bridge> >:c 20:41 < bridge> I need to cut down on my beer intake asap 20:41 < bridge> XD 20:41 < bridge> sober october 20:42 < bridge> I think I've had a beer every day since I moved here 20:42 < bridge> i mean - same here 20:42 < bridge> but i'm german so cant hate me 20:44 < bridge> I'm also probably dying, I've had a tiny headache for the last 2 months now. Remember me when I'm gone 20:44 < bridge> i'll sing songs 20:45 < bridge> @teero777: you C99 enjoyer right? Go upgrade to modern C24 and use pragma once 20:46 < bridge> Also today at class they polled how many people has read the C standard and I was the only one in a class of like 50 people 20:46 < bridge> So many people writing C without even knowing what the standard is, shameful 20:46 < bridge> Did you get respect or weird side eyes? 20:47 < bridge> They know I'm the ancient one 20:49 < bridge> Soon there will be ppl in cs master that never read docs or specs ever in their life. Cuz llm. 20:49 < bridge> PHYISCS 🥀 🥀 💔 20:50 < bridge> @learath2: wanna do sober October together? 20:51 < bridge> plz stick to english or I'm baningn you ☝️ 20:51 < bridge> There are people in my software security class asking chatgpt where the bug is. It is so joever 20:51 < bridge> Xd 20:51 < bridge> You are paying money to learn how to do this stuff, why are you asking gpt?? 20:51 < chillerbot12> You can see donors and how to donate here https://ddnet.org/funding/ 20:51 < bridge> W bot 20:51 < bridge> Is university expensive in ams? 20:52 < bridge> I would have expected it to be free-cheap 20:52 < bridge> I'm banning your bot 20:52 < bridge> .\_. 20:52 < bridge> Cheap for europeons, very expensive for internationals 20:52 < bridge> That sounds discriminatory xd 20:53 < bridge> thats how it is in murica too 20:53 < bridge> Wait what do students really get different prices based on where they are from????? 20:53 < bridge> Murica is expensive for everyone isn’t it 20:54 < bridge> yes, but internationals even more 20:55 < bridge> Well, it's because the govt subsidizes europeons. So technically the uni is getting paid the same either way 20:57 < bridge> The thinking is that internationals and their families haven't been paying taxes in the eu for years, so why should the eu use taxpayer money for them? 20:57 < chillerbot12> You can see donors and how to donate here https://ddnet.org/funding/ 21:03 < bridge> I see 21:04 < bridge> @learath2: sober October? Yes? No? Maybe? 21:05 < bridge> Maybe 21:05 < bridge> Ok 21:06 < bridge> @ryozuki: I need !remind October syntax pls thanks 21:15 < bridge> thats why I always copy paste this 21:21 < bridge> :justatest: 21:23 < bridge> wui wui wui 21:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1416142219148267570/2025-09-12_21-22-42.mp4?ex=68c5c4b7&is=68c47337&hm=33c5d3aa444cc8835bc3bb117b7908a109f2b335d23b5d7b1b1f685e9b435715& 21:27 < bridge> Looks good 21:48 < bridge> whatt 21:48 < bridge> what's this? 21:51 < bridge> there's in and out of state tuition at most schools 21:51 < bridge> and then internationals 21:51 < bridge> granular discrimination 21:52 < bridge> :Sadge: 21:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1416149382310531164/image.png?ex=68c5cb63&is=68c479e3&hm=393946a3b163121d1e6bc4f48de3f8cd6b31fae7642a20e43f4a5d8df0190d12& 21:52 < bridge> what's wrong? 21:54 < bridge> (it doesnt work) 21:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1416149961761882294/image.png?ex=68c5cbed&is=68c47a6d&hm=d2c539fb736047194c0f97385dff0c6dce920de6538ec0a3909fdb29b1951f93& 22:04 < bridge> ddnet video editor 22:05 < bridge> crazy 22:08 < bridge> !remind 600 add issue with milestone of next release to either polish profanity filter or comment it out to avoid releasing wip features 22:08 < chillerbot12> Helo chillerdragon I will remind you at Sat Sep 13 2025 08:08:01 GMT+0200 (Central European Summer Time) about your matter again. 22:46 < bridge> > If we enable the "Show Info" option in the editor and change it to Dec or Hex then we are able to see the road our quad takes 22:46 < bridge> Wtf is that hidden feature 22:48 < bridge> xd thats why i explained it first 22:48 < bridge> not many ppl seem to know about it 22:53 < bridge> Yeah, I already have a WIP branch to make it a distinct setting and other fixes, because it's really hidden behind "Show info" for no reason 22:55 < bridge> i wish to feel this powerful in a room of 50 people brb 23:05 < bridge> theres alot of things not elaborated on which is a bit wack 23:05 < bridge> theres lots of out of order and not defining things going on so far 23:05 < bridge> a parameter is "paramater" 23:05 < bridge> thank you 23:05 < bridge> but it defines floor with examples 23:06 < bridge> and talking about headers and preprocessor directives at the start 23:06 < bridge> bit weird 23:06 < bridge> i guess its a bit hard to do c from principle 23:09 < bridge> > Each instance of a backslash character (\) immediately followed by a new-line 23:10 < bridge> > character is deleted, splicing physical source lines to form logical source lines. 23:10 < bridge> > Only the last backslash on any physical source line shall be eligible for being part 23:10 < bridge> > of such a splice. A source file that is not empty shall end in a new-line character, 23:10 < bridge> > which shall not be immediately preceded by a backslash character before any such 23:10 < bridge> > splicing takes place. 23:10 < bridge> oh \\n 23:10 < bridge> oh \\\n 23:10 < bridge> am silly 23:10 < bridge> 🙏 23:11 < bridge> "Fix CI" ❌ 23:11 < bridge> 23:11 < bridge> classic 23:11 < bridge> "Fix CI" ❌ 23:11 < bridge> "Fix CI more" ❌ 23:11 < bridge> "Try something else" ❌ 23:11 < bridge> "Fix CI for real" ❌ 23:11 < bridge> "sigh" ✅ 23:16 < bridge> let me introduct you to my little friend 23:16 < bridge> git commit --ammend 23:16 < bridge> git push --force 23:20 < bridge> well I just make a PR and squash later but yeah 23:37 < bridge> you rly dont have to do that 23:37 < bridge> u should probably just rebase at the end 23:42 < bridge> you want my pain with the ci to be immortalized and for all to see? 23:47 < bridge> no