00:11 <+bridge> [ddnet] :justatest: 00:42 <+bridge> [ddnet] 🤔 00:42 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012492305476898846/unknown.png 00:44 <+bridge> [ddnet] Is that related to physics? 00:48 <+bridge> [ddnet] broken round rules 00:49 <+bridge> [ddnet] I think yes, I sent only one example from code 00:49 <+bridge> [ddnet] collision.cpp -> CTRL+F -> "= clamp((int)" 06:40 <+bridge> [ddnet] Demo viewer now has tooltips, in regards of Chairn! 06:40 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012582294034317382/unknown.png 06:41 <+bridge> [ddnet] Current list of Tooltips: 06:42 <+bridge> [ddnet] ```Play the current demo 06:42 <+bridge> [ddnet] Pause the current demo 06:42 <+bridge> [ddnet] Slow down the demo 06:42 <+bridge> [ddnet] Speed up the demo 06:42 <+bridge> [ddnet] 06:42 <+bridge> [ddnet] Slice the beginning of a cut 06:42 <+bridge> [ddnet] Slice the beginning of a cut 06:42 <+bridge> [ddnet] Export cut as a separate demo 06:42 <+bridge> [ddnet] 06:42 <+bridge> [ddnet] Toggle keyboard shortcuts``` 07:25 <+bridge> [ddnet] whoever made that clamp is not so much of a genius, you could've already perform rounding onto the parameters of the function itself 07:26 <+bridge> [ddnet] and rounding should always take the closest whole number, idk if round_to_int is a custom function or not 07:45 <+bridge> [ddnet] https://en.wikipedia.org/wiki/Draft:ISS_(Impulsive_Save_Syndrome) 07:49 <+bridge> [ddnet] yeah can the editor like, **HAVE** ctrl+s as save? 07:50 <+bridge> [ddnet] or if it does can it notify me when it DID save? 08:00 <+bridge> [ddnet] it should, when the screen stops lagging it‘s done 😅 08:12 <+bridge> [ddnet] I think we should take more advantage of the `1 new mention` function in the editor, to communicate a bit more. 08:12 <+bridge> [ddnet] Like, saying if you saved a map, or something else. 08:12 <+bridge> [ddnet] Like I just found out from this convo that ctrl + s worked. 08:21 <+bridge> [ddnet] Exactly 09:31 <+bridge> [ddnet] i always wondered- what's else will be added into ddnet next, if anything's planned? 09:31 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012625428541866054/unknown.png 09:57 <+bridge> [ddnet] I assume people have to make the things that are going to be in the next version idk how much planning you can have 09:58 <+bridge> [ddnet] I‘m not using the ddnet next release, not sure what it‘s for 09:58 <+bridge> [ddnet] I can only assume version 17.0, but that is a long ways from happening. 10:14 <+bridge> [ddnet] lol intended lags 11:00 <+bridge> [ddnet] is the appdata folder on linux `~/.ddnet/` or still `~/.teeworlds/`? 11:21 <+bridge> [ddnet] ну найди просто в сурсах место где встречается `inp_mousesens` и поменяй третье числовое значение на какое тебе душе угодно, я не думаю, что это тебе сильно поможет, но ладно 11:22 <+bridge> [ddnet] custom, its literally `(int)(x + 0.5)` 11:36 <+bridge> [ddnet] casting doesn't do any rounding check 11:36 <+bridge> [ddnet] imagine it just like removing the .xx 11:36 <+bridge> [ddnet] so that's why (int)4.9 == 4 11:36 <+bridge> [ddnet] and round_to_int is right 11:39 <+bridge> [ddnet] I can't find it? 11:39 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012657502237765683/unknown.png 11:41 <+bridge> [ddnet] looks like you play on phone 11:41 <+bridge> [ddnet] yeah, that's nice but before I could filter out for example everything over 100 ping, and then sort by number of players to see where I can find people to play with. I can scroll past stuff, just it seems weird that there's this downgrade. 11:43 <+bridge> [ddnet] yeah, that's nice but before I could filter out for example everything over 100 ping, and then sort by number of players to see where I can find people to play with. I can scroll past stuff so it's not a big deal, just it seems weird that there's this downgrade. 11:49 <+bridge> [ddnet] It is a compromise we had to make. We traded the convenience of that for more safety against ddos. Malicious hosters were using the fact that clients ping every server to collect ips. Then they used these ips to either ddos servers with spoofing or targetted players in runs specifically 12:12 <+bridge> [ddnet] Devs bad, they remove stuff 12:13 <+bridge> [ddnet] :PepeA: 12:16 <+bridge> [ddnet] We did it just to annoy people because we are the prime evil 12:23 <+bridge> [ddnet] @ShaneR old 12:23 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012668673938423858/Untitled-2022-08-22-11401.png 12:23 <+bridge> [ddnet] and what's new now (ig it works like that) 12:24 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012668738501357598/Untitled-2022-08-22-1141.png 12:24 <+bridge> [ddnet] no IP leakage anymore 12:26 <+bridge> [ddnet] (if anyone ask what I've used, it's excalidraw, pretty cool for that) 12:32 <+bridge> [ddnet] I think server instead sends everything while registering, but idk about that 12:46 <+bridge> [ddnet] <𝕵𝖔𝖊𝖑> How players get the latency of the servers 12:46 <+bridge> [ddnet] you get it only when you've joined it 12:46 <+bridge> [ddnet] afaik it gets cached 12:47 <+bridge> [ddnet] <𝕵𝖔𝖊𝖑> so it's not the real ping? 12:48 <+bridge> [ddnet] <𝕵𝖔𝖊𝖑> on the server browser 12:48 <+bridge> [ddnet] it is 12:48 <+bridge> [ddnet] only yuo get that ping if you joined the server 12:49 <+bridge> [ddnet] overwise you get the region (EUR, etc.., can be wrong but people will correct me in case) 12:49 <+bridge> [ddnet] <𝕵𝖔𝖊𝖑> Yes ok but it's the old cached ping not the current 12:49 <+bridge> [ddnet] but I'd say it's not a "real time" ping 12:50 <+bridge> [ddnet] <𝕵𝖔𝖊𝖑> OK thanks 12:51 <+bridge> [ddnet] maybe this one is more accurate (server sends, master doesnt fetch) 12:51 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012675538504142918/Untitled-2022-08-22-11411.png 13:09 <+bridge> [ddnet] correct and that‘s the main reason we removed the ping filter. when your favorite server one time had high ping, you never see it again 13:25 <+bridge> [ddnet] <𝕵𝖔𝖊𝖑> maybe the ping should be in cache temporarily? 14:55 <+bridge> [ddnet] u can add it to the internet tab i guess 14:55 <+bridge> [ddnet] Yes, I think we need some algorithm here to give an accurate~ish ping at normal times. Maybe expire the outlier pings after a while 14:57 <+bridge> [ddnet] Cache ping on join, ping on leave and maybe a ping from mid session for like 5 sessions per server ip. Then we can discard outlier values every hour until we have a small enough range of values 15:14 <+bridge> [ddnet] I wouldnt do it on leave, imagine getting kicked out due to ddos and it sets your ping to 999 :D 15:14 <+bridge> [ddnet] would only work if we wait for the pong_ex 15:15 <+bridge> [ddnet] and dont handle timeouts as 999 for that 15:31 <+bridge> [ddnet] That's where the outlier pruning comes in, after an hour the outlier ping of 999 would get pruned from the cache 15:32 <+bridge> [ddnet] ah yea 15:46 <+bridge> [ddnet] The system that I'm going to be building would stop DDOS attacks 15:49 <+bridge> [ddnet] :bluestripe: :bluestripe: :bluestripe: 16:08 <+bridge> [ddnet] How so 16:09 <+bridge> [ddnet] Without even breaking the game compatibility 16:15 <+bridge> [ddnet] Smart, but careful so 16:15 <+bridge> [ddnet] Nice the new mode is to randomly add as friend with a nick, then the bot renames itself and sends you that as "System message" 16:15 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012726879347822632/Screenshot_20220826-161346_Discord.jpg 16:18 <+bridge> [ddnet] yknow i always wondered about the arrangement of the settings bar: why is languages its own tab? i feel like you could place it in the empty spot of General and it'd work 16:24 <+bridge> [ddnet] but again, the whole concept of **rounding** is to get the closest whole number 16:24 <+bridge> [ddnet] I told you its not as easy as you think. But sure go ahead, please let me know some details 16:25 <+bridge> [ddnet] What, I guess if you make a client for it 16:26 <+bridge> [ddnet] velzen client (the ddnet client that mines eutherium) 16:26 <+bridge> [ddnet] @ReiTW yeah sure I'll give you some more details on that right now I need to take care of my children 16:26 <+bridge> [ddnet] `round_to_int` was as in round to the integer part of the float 16:26 <+bridge> [ddnet] :uhoh: y tho 16:26 <+bridge> [ddnet] for whqt purpose 16:27 <+bridge> [ddnet] for what purpose 16:27 <+bridge> [ddnet] That's what round_to_int does 16:27 <+bridge> [ddnet] 0.0-0.4 = 0 16:27 <+bridge> [ddnet] ahm, no what learath said makes sence 16:27 <+bridge> [ddnet] Math 4th class 16:27 <+bridge> [ddnet] ahm, no what learath said makes sense 16:27 <+bridge> [ddnet] 0.5-0.9 = 1 16:27 <+bridge> [ddnet] it's fast, it gets an int, why not? 😄 16:28 <+bridge> [ddnet] lol ok 16:28 <+bridge> [ddnet] I mean, what is used for doesn't rly matter :p 16:29 <+bridge> [ddnet] It's not the closest whole number, it's the whole part. `round_to_int(2.9f) == (int)2.9f == 2` 16:29 <+bridge> [ddnet] Huh 16:29 <+bridge> [ddnet] Round_to_int would return 3 16:29 <+bridge> [ddnet] so it takes away the float extension parts 16:30 <+bridge> [ddnet] it shouldn't, unless I'm misremembering the code 16:30 <+bridge> [ddnet] so its floor(2.9f) then 16:30 <+bridge> [ddnet] It does (int)(f + 0.5f) 16:30 <+bridge> [ddnet] So basically 16:30 <+bridge> [ddnet] Oh, it is closest int 16:30 <+bridge> [ddnet] probs not an actual code term but its a yes math term 16:30 <+bridge> [ddnet] Yes 16:31 <+bridge> [ddnet] More accurate rounding than simple casy 16:31 <+bridge> [ddnet] Cast 16:31 <+bridge> [ddnet] No, because floor(-2.9f) = -3, (int)(-2.9f) = -2 16:31 <+bridge> [ddnet] ohh 16:31 <+bridge> [ddnet] that's what I thought this function works, since normally rounding takes the nearest whole number off of a float: 16:31 <+bridge> [ddnet] 0.5 and above rounds up to 1, a whole number closest to the float, otherwise (0.499x and below) 0 16:31 <+bridge> [ddnet] an int cast always rounds towards 0 16:32 <+bridge> [ddnet] Closest whole integer towards 0 16:32 <+bridge> [ddnet] Anyway, I thought round_to_int was just a int cast, but apparently it's not 16:32 <+bridge> [ddnet] towards 0, oh 16:32 <+bridge> [ddnet] now it makes sense 16:33 <+bridge> [ddnet] basically float2int function 16:33 <+bridge> [ddnet] No, that's how I thought it worked. Apparently it's not 16:33 <+bridge> [ddnet] eh 16:34 <+bridge> [ddnet] `round_to_int` apparently rounds to the closest whole integer 16:34 <+bridge> [ddnet] I meaaaaan return value from float2int and subtract 1 from it 16:34 <+bridge> [ddnet] :trollge: 16:34 <+bridge> [ddnet] Doesn't work properly that way 😄 16:35 <+bridge> [ddnet] We add 0.5 to positive numbers, and subtract 0.5 from negative numbers, then we cast to int 16:35 <+bridge> [ddnet] :uhoh: 16:35 <+bridge> [ddnet] Imagine passint 1.0 16:35 <+bridge> [ddnet] Cast to 1 16:35 <+bridge> [ddnet] Then returns 0 16:35 <+bridge> [ddnet] Cuz of ur method 16:35 <+bridge> [ddnet] i mean, you can have conditions for it 16:36 <+bridge> [ddnet] It's heavier than the current method 16:36 <+bridge> [ddnet] yeah, since taking away the float part is as easy as it sounds 16:43 <+bridge> [ddnet] I love rust, and btw if u fancy doing guis with imgui, egui looks rly close, but actually better 16:43 <+bridge> [ddnet] And smth curious is that modding in ff14 uses imgui.net for guis 16:43 <+bridge> [ddnet] So it got me into a spiral of learning it 16:44 <+bridge> [ddnet] Too sad i have to use c# and not rust to mod it tho 16:44 <+bridge> [ddnet] 🗣️ 16:45 <+bridge> [ddnet] also doesnt rust have like, ninnou to deal with ui and graphics related stuff? 16:45 <+bridge> [ddnet] Whats ninnou 16:46 <+bridge> [ddnet] oh wait. its nannou. i confused the name for a fish 16:46 <+bridge> [ddnet] https://nannou.cc/ 16:47 <+bridge> [ddnet] never heard of it 16:47 <+bridge> [ddnet] ah 16:47 <+bridge> [ddnet] thats for artists 16:47 <+bridge> [ddnet] not gui 16:47 <+bridge> [ddnet] https://github.com/emilk/egui 16:47 <+bridge> [ddnet] im using this 16:47 <+bridge> [ddnet] inspired by imgui 16:48 <+bridge> [ddnet] but well, it has all the goodies rust provides at compile time x) 16:48 <+bridge> [ddnet] https://www.egui.rs/#demo 16:48 <+bridge> [ddnet] demo 16:49 <+bridge> [ddnet] Not like it's the 50th time hearing that u love rust :uhoh: 16:49 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012735548810612747/unknown.png 16:49 <+bridge> [ddnet] well and not the last probs 16:49 <+bridge> [ddnet] yup 16:50 <+bridge> [ddnet] I'll try it one day sure 16:50 <+bridge> [ddnet] im doing some internal tooling for my company with rust and egui 16:50 <+bridge> [ddnet] :BASED: 16:50 <+bridge> [ddnet] i tried to try it 16:50 <+bridge> [ddnet] :uhoh: :thonk: 16:50 <+bridge> [ddnet] its not a good starting language 16:51 <+bridge> [ddnet] it isnt 16:51 <+bridge> [ddnet] cuz it shows all your novice errors 16:51 <+bridge> [ddnet] but not novice as in syntax, but as in things you have to consider when coding 16:52 <+bridge> [ddnet] yea thats what i mean 16:52 <+bridge> [ddnet] well "it isnt" isnt true 16:52 <+bridge> [ddnet] if you go and learn programming the hard way with rust 16:52 <+bridge> [ddnet] imho you end up in good shape 16:52 <+bridge> [ddnet] im terrible at code optimization, even for DDNet xd 16:52 <+bridge> [ddnet] but to appreciate rust you need to know the pains of c and c++ 16:52 <+bridge> [ddnet] and for that you need to go past hello worlds 17:03 <+bridge> [ddnet] https://github.com/EmbarkStudios/puffin 17:03 <+bridge> [ddnet] good stuff 17:11 <+bridge> [ddnet] @Ryozuki Imgui is damn so cool to use 17:11 <+bridge> [ddnet] i'll definetly look at the rust one 17:13 <+bridge> [ddnet] you can use imgui on rust too but egui is cooler 17:13 <+bridge> [ddnet] and not a ffi binding 17:13 <+bridge> [ddnet] You know what? Starting out with rust might not be the worst idea. I bet the borrow checker might be easier to get used to for a complete beginner than a veteran 17:14 <+bridge> [ddnet] 17:15 <+bridge> [ddnet] If you know what you are doing is safe but you just havent figured out the correct lifetimes to let the compiler know you just get angry. A beginner will never think they know better than the compiler 😄 17:15 <+bridge> [ddnet] true 17:15 <+bridge> [ddnet] and even ppl that know what they are doing do things wrong sometimes 17:16 <+bridge> [ddnet] but ultimately 17:16 <+bridge> [ddnet] its hard 17:17 <+bridge> [ddnet] because new ppl dont learn pointers until late 17:17 <+bridge> [ddnet] and in rust ur kinda forced 17:17 <+bridge> [ddnet] (to use references ) 17:17 <+bridge> [ddnet] depending on where you learn tho 17:17 <+bridge> [ddnet] sometimes pointers are the 1st advanced thing you learn 17:18 <+bridge> [ddnet] most ppl will encounter their first fight with the borrow checker by doing simple for loop with a iterator 17:18 <+bridge> [ddnet] damn 17:18 <+bridge> [ddnet] lmao 17:18 <+bridge> [ddnet] them being oblivious of what a iterator is 17:18 <+bridge> [ddnet] actually true (happened to me) 17:18 <+bridge> [ddnet] Well my suggestion for a beginner language is and always will be C if you want to actually learn programming. Rust is a close second. So the pointer thing is not an issue atleast in my brain 17:19 <+bridge> [ddnet] for me C isn't a hard language, but people's code makes it harder to work on 17:19 <+bridge> [ddnet] also it's a very small language to learn 17:19 <+bridge> [ddnet] The low level stuff I think you just have to learn if you want to be a good programmer. You can use the standard library later 17:19 <+bridge> [ddnet] @ReiTW 17:19 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012743189058289664/unknown.png 17:19 <+bridge> [ddnet] ofc if you read u understand 17:20 <+bridge> [ddnet] but new ppl dont tend to read compiler errors 17:20 <+bridge> [ddnet] thee is probs a example that makes more sense 17:20 <+bridge> [ddnet] but i wanted to make up smth fast xd 17:20 <+bridge> [ddnet] yeah c is a good first language 17:21 <+bridge> [ddnet] i agree wholeheartedly 17:21 <+bridge> [ddnet] I started with C 17:21 <+bridge> [ddnet] it makes you appreciate rust more 17:21 <+bridge> [ddnet] so its a good thing 17:21 <+bridge> [ddnet] thanks to Neox who gave me motivation xD 17:21 <+bridge> [ddnet] thanks to Neox who gave me motivation xD (Neox is the NX|City creator & Monster too) 17:21 <+bridge> [ddnet] This error message is worse than I'm used to for the rust compiler actually. I wonder why there is no special case for it 17:21 <+bridge> [ddnet] i also think that before i learnt C ididnt rly know shit 17:22 <+bridge> [ddnet] Mutating the container you are iterating over accidentally is common enough to warrant a special message rather than a isn't 'Copy' 17:22 <+bridge> [ddnet] its cuz you are kinda doing 2 things 17:23 <+bridge> [ddnet] yes, remove the std lib which is something "added" to the language and it's a very small language to learn 17:23 <+bridge> [ddnet] since i dont do for x in &a but for x in a 17:23 <+bridge> [ddnet] using std after is ez af 17:23 <+bridge> [ddnet] i moving a 17:23 <+bridge> [ddnet] if you do the help it says 17:23 <+bridge> [ddnet] + you never learn std 17:23 <+bridge> [ddnet] you can simply search functions etc.. online 17:23 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012744117341651014/unknown.png 17:24 <+bridge> [ddnet] for x in &mut a? 17:24 <+bridge> [ddnet] .into_iter() would work sure but it does the same right? 17:24 <+bridge> [ddnet] nono 17:25 <+bridge> [ddnet] u cannot mutate while iterating 17:25 <+bridge> [ddnet] I actually had an argument with my OS prof over this. He asked the signature of a specific linux function, execvpe or sth 17:25 <+bridge> [ddnet] bruh 17:25 <+bridge> [ddnet] Who even programs like this. Do you know the signature of execvpe off the top of your head? 17:25 <+bridge> [ddnet] bro 17:25 <+bridge> [ddnet] I've done a C exam on paper 17:25 <+bridge> [ddnet] it's worse than yours 17:26 <+bridge> [ddnet] kekw 17:26 <+bridge> [ddnet] if i had to do that 17:26 <+bridge> [ddnet] i would simply refuse 17:26 <+bridge> [ddnet] get up 17:26 <+bridge> [ddnet] and leave 17:26 <+bridge> [ddnet] not worht my time 17:26 <+bridge> [ddnet] I did aswell. An Algorithms exam. I wrote a 5 page program 17:26 <+bridge> [ddnet] everyone in class didn't understand a shit 17:26 <+bridge> [ddnet] the teacher also did a shit code 17:27 <+bridge> [ddnet] i had a teacher with a "c++ background" teaching java nitpick over the usage of while vs for and continue; etc 17:28 <+bridge> [ddnet] you rly have to hold back to not argue when u are way more advanced than the class you are taking 17:28 <+bridge> [ddnet] cuz u gotta hold ur laughter 17:28 <+bridge> [ddnet] The java teacher we had got in a 15 minute argument with me over using an array instead of an ArrayList 17:28 <+bridge> [ddnet] yes 17:28 <+bridge> [ddnet] @Learath2 this is one code from my teacher 17:28 <+bridge> [ddnet] ```c 17:28 <+bridge> [ddnet] ``` 17:28 <+bridge> [ddnet] petty teachers nitpicking over petty stuff 17:28 <+bridge> [ddnet] ```c 17:28 <+bridge> [ddnet] #include 17:28 <+bridge> [ddnet] 17:29 <+bridge> [ddnet] void read_line(char *arr, int size) 17:29 <+bridge> [ddnet] { 17:29 <+bridge> [ddnet] char *p = arr; 17:29 <+bridge> [ddnet] char c; 17:29 <+bridge> [ddnet] while ((p - arr) < size && (c = getchar()) != '\n' && c != EOF) 17:29 <+bridge> [ddnet] *p++ = c; 17:29 <+bridge> [ddnet] *p = 0x0; 17:29 <+bridge> [ddnet] } 17:29 <+bridge> [ddnet] 17:29 <+bridge> [ddnet] int main(void) 17:29 <+bridge> [ddnet] { 17:29 <+bridge> [ddnet] char buf[10] = { 0x0 }; 17:29 <+bridge> [ddnet] read_line(buf, sizeof(buf)); 17:29 <+bridge> [ddnet] printf("%s\n", buf); 17:29 <+bridge> [ddnet] } 17:29 <+bridge> [ddnet] ``` 17:29 <+bridge> [ddnet] guess the problem 17:29 <+bridge> [ddnet] told him 100 times, he was like "you're wrong, u have to pay me a pizza lol" 17:29 <+bridge> [ddnet] he does ugly shit code 17:29 <+bridge> [ddnet] At the end I told him I really didn't care whether he thinks the array is less performant or not, just to give me my points because it is correct code whether he likes it or not 17:30 <+bridge> [ddnet] imho taking java as ur first lang is p bad 17:30 <+bridge> [ddnet] cuz u go pretyt fast into classes 17:30 <+bridge> [ddnet] and polymorphy 17:30 <+bridge> [ddnet] being oblivious of what pointers and references are 17:30 <+bridge> [ddnet] u rly dont know what u are doing 17:30 <+bridge> [ddnet] they rly like their animals and dogs and cats 17:31 <+bridge> [ddnet] smh 17:31 <+bridge> [ddnet] You mean the fact that he'll null terminate outside the bounds of the buffer? 17:31 <+bridge> [ddnet] exactly 17:31 <+bridge> [ddnet] even if that's nothing really special, that's bad code 17:32 <+bridge> [ddnet] Yeah, can spot it even on a phone 17:32 <+bridge> [ddnet] yea 17:32 <+bridge> [ddnet] and I even used addr sanitizer 17:32 <+bridge> [ddnet] to show him; he was like "tf is that, it shows nothing" 17:33 <+bridge> [ddnet] lmao 17:34 <+bridge> [ddnet] Most professors teaching C don't seem to be interested in the language at all. They learn some and think they are good to teach it 17:34 <+bridge> [ddnet] well 17:34 <+bridge> [ddnet] he was good I'd say 17:34 <+bridge> [ddnet] i think most teachers mostly havent worked on real code outside of academics at all 17:34 <+bridge> [ddnet] He did a lot of things in the past 17:34 <+bridge> [ddnet] The C guy we had was actually a Java guy 17:34 <+bridge> [ddnet] I think he did a thesis in computer science 17:34 <+bridge> [ddnet] low level stuff 17:35 <+bridge> [ddnet] real coders are those with a anime pfp having a furry website and doing crazy stuff 17:35 <+bridge> [ddnet] always matches the profile 17:35 <+bridge> [ddnet] kekw 17:36 <+bridge> [ddnet] at least he had very good knowledge about Systems 17:36 <+bridge> [ddnet] https://gankra.github.io/blah/ 17:36 <+bridge> [ddnet] the example 17:36 <+bridge> [ddnet] Except for my computer architecture prof and the algorithms prof the rest of the computer profs have been very meh at my uni 17:36 <+bridge> [ddnet] everything that we learned in Systems 17:36 <+bridge> [ddnet] are actually written here : https://tldp.org/LDP/tlk/tlk-toc.html 17:37 <+bridge> [ddnet] and he knows well his subject, pretty cool 17:37 <+bridge> [ddnet] Way too arrogant for their knowledge level. Knowing theory really well doesn't qualify you to language lawyer in C 17:38 <+bridge> [ddnet] all teachers are arrogant 17:38 <+bridge> [ddnet] Basically I have a system that asking a small fee when interacting with server 17:38 <+bridge> [ddnet] some have the right to be but most dont 17:38 <+bridge> [ddnet] Any attack would cost the attacker money 17:38 <+bridge> [ddnet] im tired of this stupid crypto project 17:38 <+bridge> [ddnet] Like I'll defer to you when we need someone to calculate the time complexity of an algorithm, but don't try to tell me signed integer overflow is not UB in C 17:38 <+bridge> [ddnet] cant u just go another place to discuss this 17:40 <+bridge> [ddnet] i need to write my own blog post about atomics when using rust, i always keep coming back to https://doc.rust-lang.org/nomicon/atomics.html 17:42 <+bridge> [ddnet] This is the developer room 17:42 <+bridge> [ddnet] Please be kind to one another 17:42 <+bridge> [ddnet] I'm still looking for the developer who can help me with this project 17:43 <+bridge> [ddnet] yeah and you are not a dev 17:43 <+bridge> [ddnet] I got $2,000 to spend 17:43 <+bridge> [ddnet] jsut a bullshitter preaching shit 17:43 <+bridge> [ddnet] this is not a job offer channel 17:43 <+bridge> [ddnet] and you are certainly not contributing back to ddnet in any way 17:43 <+bridge> [ddnet] actually just bothering ppl 17:45 <+bridge> [ddnet] No I'm not I'm rarely speaking 17:45 <+bridge> [ddnet] Follow the rules be kind 17:47 <+bridge> [ddnet] 1. Be nice and respectful. No aggressivity, toxicity, putting down others or their work. 17:47 <+bridge> [ddnet] 2. Speak English. So everyone can understand. 17:47 <+bridge> [ddnet] 3. Be relevant. This is about Teeworlds. 17:47 <+bridge> [ddnet] 4. Don't advertise except if it is relevant to the discussion. 17:47 <+bridge> [ddnet] 17:47 <+bridge> [ddnet] Punishments start with a kick and can lead to a temporary ban. If the offense is severe, there will be a permanent ban. 17:47 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012750119101280346/unknown.png 17:47 <+bridge> [ddnet] i dont know about you but this is the ddnet discord 17:47 <+bridge> [ddnet] not teeworlds 17:47 <+bridge> [ddnet] and im certainly most ppl dont wanna hear ur shit 17:48 <+bridge> [ddnet] it also use wrong type for char c; should be int to detect EOF 17:48 <+bridge> [ddnet] computer architecture profs are the best (soon i'll be one 😄 ) 17:51 <+bridge> [ddnet] If those rules don't apply here then basically I can say whatever I want and stay here when I want 17:51 <+bridge> [ddnet] But internally I believe in respect 17:52 <+bridge> [ddnet] 🤦 17:52 <+bridge> [ddnet] __**Welcome to the DDraceNetwork Discord server :heartw:**__ 17:52 <+bridge> [ddnet] Here you can chat with the community and get in touch with staff members :happy: 17:52 <+bridge> [ddnet] 17:52 <+bridge> [ddnet] 🚔 **In-game help** 17:52 <+bridge> [ddnet] 17:52 <+bridge> [ddnet] Ping @Moderator if you.. 17:52 <+bridge> [ddnet] ..need help against **blocking** 17:52 <+bridge> [ddnet] ..see someone **botting/cheating** 17:52 <+bridge> [ddnet] ..need help against **fun-voting**, **heavy spamming** or **doxing** 17:52 <+bridge> [ddnet] *Note: You can use the client built-in mute feature against spamming/insulting* 17:52 <+bridge> [ddnet] 17:52 <+bridge> [ddnet] Ping @Vanilla, @iCTF, @FNG & @zCatch respectively if you.. 17:52 <+bridge> [ddnet] ..need moderation on a **non-DDRace DDNet server** 17:52 <+bridge> [ddnet] 17:52 <+bridge> [ddnet] 🚨 **Rules** 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#1` **Always be respectful** - Don't say or do anything that could be rude or offensive in any way. 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#2` **No NSFW** - No pornography, gore, or anything that could be considered *Not Safe For Work*. 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#3` **Don't spam** - Includes all types of spamming (messages, emojis, reactions, etc.). 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#4` **Use channels only for their named purpose** - Off-topic goes to #off-topic, Teeworlds related images and videos go to #showroom. 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#5` **Use English whenever possible** - If you want to talk in another language, do so in #off-topic. 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#6` **Don't abuse pings** - Pinging any of the above mentioned roles for anything other than the listed issues is prohibited. 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#7` **Keep drama out of here** - Sort out personal conflicts in DMs. 17:53 <+bridge> [ddnet] 17:53 <+bridge> [ddnet] `#8` **Don't promote or encourage illegal activities** - Includes botting/cheating. 17:53 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/1 17:53 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/2 17:53 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/3 17:53 <+bridge> [ddnet] @Learath2 someone send a big msg that got deleted 17:53 <+bridge> [ddnet] and triggered the bot 17:53 <+bridge> [ddnet] lol 17:53 <+bridge> [ddnet] deen is dev botting, report 17:53 <+bridge> [ddnet] probs this guy here our cryptobro 17:53 <+bridge> [ddnet] wtf 👀 17:53 <+bridge> [ddnet] Rude D: 17:53 <+bridge> [ddnet] truth hurts 17:54 <+bridge> [ddnet] Idc but rude D: 17:54 <+bridge> [ddnet] well he is either trying to scam ppl, or just too ignorant 17:54 <+bridge> [ddnet] He is just offering a job, if you are not interested maybe just block him? 17:55 <+bridge> [ddnet] okay 17:56 <+bridge> [ddnet] He doesn't spam nor does he talk unprompted. He made a claim @ReiTW asked for justification 17:56 <+bridge> [ddnet] what's even the representation of a char with -1 17:56 <+bridge> [ddnet] blocked then 17:56 <+bridge> [ddnet] � 17:57 <+bridge> [ddnet] isnt that U+FFFD 17:57 <+bridge> [ddnet] dunno 17:57 <+bridge> [ddnet] dout 17:57 <+bridge> [ddnet] doubt 17:57 <+bridge> [ddnet] it's a single byte? 17:57 <+bridge> [ddnet] https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character 17:58 <+bridge> [ddnet] ah I see 17:58 <+bridge> [ddnet] funny 17:59 <+bridge> [ddnet] Heh, that too, missed it on account of the overflow being more obvious 😄 18:09 <+bridge> [ddnet] There was a really cool talk I linked here by an Adobe engineer I can't seem to find anymore 18:09 <+bridge> [ddnet] Discords search is so shit :/ 18:11 <+bridge> [ddnet] sometimes it works 18:11 <+bridge> [ddnet] sometimes not 18:11 <+bridge> [ddnet] I think C programmers back in the day thought the more stuff you can fit in the condition of your loop, the better. Even k&r is full of that stuff (although they don't have UB there lmao) 18:11 <+bridge> [ddnet] "talk" mathes "talker", "talking", "talks", "talky". "youtube" doesn't match youtube links 18:12 <+bridge> [ddnet] I don't really understand the concept of UB tho 18:12 <+bridge> [ddnet] Actually unreadable code 18:12 <+bridge> [ddnet] @Cipy29 yes 18:12 <+bridge> [ddnet] imagine that 18:12 <+bridge> [ddnet] I swear ElasticSearch and knn indexes are the worst idea computer science people ever came up with 18:12 <+bridge> [ddnet] Stuff the language doesn't define is UB 18:12 <+bridge> [ddnet] in a class of people who never did programming before 18:12 <+bridge> [ddnet] they can't understand a shit 18:12 <+bridge> [ddnet] Like going past your allocated memory 18:12 <+bridge> [ddnet] i am a developer😎😎😎 18:12 <+bridge> [ddnet] Yes it allows you to search through billions of things. But what use is it if you cant find the things you want 18:12 <+bridge> [ddnet] @jeti from bair, sector 13 18:12 <+bridge> [ddnet] ok ban 18:13 <+bridge> [ddnet] @Learath2 kiss me 18:13 <+bridge> [ddnet] Damn my best developper @jeti from bair, sector 13 u're dead online or wut 18:14 <+bridge> [ddnet] ily bro 18:14 <+bridge> [ddnet] Also stuff the language explicitly says is UB 18:14 <+bridge> [ddnet] If the standard doesnt say anything about it, or if it says it's UB it's UB 😄 18:14 <+bridge> [ddnet] Using C at all? Believe it or not, UB 18:15 <+bridge> [ddnet] What do you think a pointer is 18:15 <+bridge> [ddnet] Can it be a value 18:15 <+bridge> [ddnet] :cammostripes: 18:17 <+bridge> [ddnet] A pointer is an object that points to another 18:18 <+bridge> [ddnet] cuz someone asked it on Rust discord and they answered : pointers are values, that might be in a variable 18:18 <+bridge> [ddnet] but for me a pointer is a variable or an object storing an address 18:19 <+bridge> [ddnet] @Learath2 this one? https://youtu.be/ncHmEUmJZf4 18:19 <+bridge> [ddnet] Well a pointer is an object which does have a value 18:19 <+bridge> [ddnet] so a pointer can't be the value itself 18:20 <+bridge> [ddnet] No, it wasnt a cppcon talk. He was talking about CoW and documents 18:21 <+bridge> [ddnet] Well colloquially we use it mostly interchangably, we refer to both the pointer object and it's value as "a pointer" 18:21 <+bridge> [ddnet] @Ryozuki for you 18:21 <+bridge> [ddnet] But in the standard when you see "pointer" it'll refer to a pointer object 18:21 <+bridge> [ddnet] as an example or the pointer, they gave me that example : `&1 as *const i32` 18:21 <+bridge> [ddnet] as an example for the pointer, they gave me that example : `&1 as *const i32` 18:21 <+bridge> [ddnet] Compiler makes assumptions to optimize code, u break those, unpredictable things happen 18:21 <+bridge> [ddnet] In Rust idk. Idk the low level stuff about rust 18:22 <+bridge> [ddnet] yeah I see 18:22 <+bridge> [ddnet] Ah im on mobile but there is stuff 18:22 <+bridge> [ddnet] My favourite one is null pointer optimization. If you dereference something without checking it'll assume it's non-null 18:22 <+bridge> [ddnet] Rustonomicon is a good place go learn low leven things about rust 18:23 <+bridge> [ddnet] Ah yes, keskonsamuz 18:23 <+bridge> [ddnet] @Ryozuki so for you this is a pointer or just a returned address that you can store in a variable 18:23 <+bridge> [ddnet] @Ryozuki 18:23 <+bridge> [ddnet] ? 18:24 <+bridge> [ddnet] So `int foo(int *p) { *p = 0; if(p) { bingo(); }` will become `*p = 0; bingo(); }` 18:24 <+bridge> [ddnet] A pointer 18:25 <+bridge> [ddnet] Its safe to have a pointer in a variable btw, whats unsafe is to dereference it 18:25 <+bridge> [ddnet] Even in C, when talking about normal stuff you'll say that's a pointer. Making a distinction between objects and their values is a very very languagelawyer thing 18:26 <+bridge> [ddnet] yeah well 18:26 <+bridge> [ddnet] Its safe to have a variable that js a pointer btw, whats unsafe is to dereference it 18:26 <+bridge> [ddnet] I'll still keep the original definition that's in the book by ritchie 18:26 <+bridge> [ddnet] it's the easiest to understand tho 18:27 <+bridge> [ddnet] I think k&r only ever mentions the distinction 1 or 2 times 18:27 <+bridge> [ddnet] https://doc.rust-lang.org/nomicon/aliasing.html 18:27 <+bridge> [ddnet] This book has lots of goodies 18:27 <+bridge> [ddnet] I always recommend ot 18:27 <+bridge> [ddnet] It 18:27 <+bridge> [ddnet] It's when you start to read the standard where it becomes an issue. Because there are rules that apply to values and there are rules that apply to objects 18:28 <+bridge> [ddnet] If it's UB with the 'if' it's also UB without so might as well double down lol 18:28 <+bridge> [ddnet] https://doc.rust-lang.org/nomicon/subtyping.html 18:28 <+bridge> [ddnet] And this one of the most important things 18:28 <+bridge> [ddnet] The compiler says: Huh he dereferenced it, if it was null this would be UB, but that's insane, who would use UB lol, so p is non-null 18:29 <+bridge> [ddnet] @Learath2 i found these two 18:29 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012760788290777218/unknown.png 18:29 <+bridge> [ddnet] but i dunno 18:30 <+bridge> [ddnet] What did you search for? Just "has: link"? 18:30 <+bridge> [ddnet] yuh 18:30 <+bridge> [ddnet] Oh that guy is a genius btw 18:30 <+bridge> [ddnet] I'll dig into all the links I posted later I guess, its not those 2 either, thanks for looking 18:30 <+bridge> [ddnet] those are the youtube videos you posted without "talk" in the message 18:31 <+bridge> [ddnet] Yeah, mind boggling stuff he found 18:31 <+bridge> [ddnet] wait there was one more 18:31 <+bridge> [ddnet] @Learath2 what was the subject 18:31 <+bridge> [ddnet] the topic 18:31 <+bridge> [ddnet] CoW, smart pointers, something about hierarchical documents 18:32 <+bridge> [ddnet] I like rust cows 18:32 <+bridge> [ddnet] :monkalaugh: 18:32 <+bridge> [ddnet] No cows in C++ unless you make your own, which is turbosad 18:32 <+bridge> [ddnet] Cow<'static, str> 18:32 <+bridge> [ddnet] Rly useful 18:33 <+bridge> [ddnet] twinbop sux 18:33 <+bridge> [ddnet] https://deterministic.space/secret-life-of-cows.html 18:33 <+bridge> [ddnet] Cows are even more useful with massive objects that are rarely modified 18:33 <+bridge> [ddnet] i googled "CoW" to see what it is and i got greeted by this: 18:33 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012761706407145512/unknown.png 18:33 <+bridge> [ddnet] wasn't helping :PU_pepeFlowerSad: 18:33 <+bridge> [ddnet] Copy on write 😄 18:33 <+bridge> [ddnet] yea i figured 18:33 <+bridge> [ddnet] ```rust 18:33 <+bridge> [ddnet] use std::borrow::Cow; 18:33 <+bridge> [ddnet] 18:33 <+bridge> [ddnet] fn describe(error: &Error) -> Cow<'static, str> { 18:34 <+bridge> [ddnet] match *error { 18:34 <+bridge> [ddnet] Error::NotFound => "Error: Not found".into(), 18:34 <+bridge> [ddnet] Error::Custom(e) => format!("Error: {}", e).into(), 18:34 <+bridge> [ddnet] } 18:34 <+bridge> [ddnet] } 18:34 <+bridge> [ddnet] ``` 18:34 <+bridge> [ddnet] I miss coding :AnyaSob: 18:34 <+bridge> [ddnet] :KannaSip: 18:34 <+bridge> [ddnet] All I do is math math math math math math math math math math 18:34 <+bridge> [ddnet] My brain is about to leak out of my ears 18:34 <+bridge> [ddnet] Yeah 18:35 <+bridge> [ddnet] I left uni cuz maths but u shouldnt leave xd 18:35 <+bridge> [ddnet] you think it was a youtube video learath 18:35 <+bridge> [ddnet] Yes 18:35 <+bridge> [ddnet] I’m sure it was an Adobe guy too 18:35 <+bridge> [ddnet] He talked about how they handled undo/redo using cow snapshots in photoshop 18:36 <+bridge> [ddnet] The most important thing is that since Cow<'static, str> derefs2 to &str it may act as a drop-in replacement everywhere, where &str is expected. So, if last error variant was added to an already existing code base, all would just work without any major refactoring. 18:36 <+bridge> [ddnet] 18:36 <+bridge> [ddnet] In other languages like C++ you’d probably have to decide, [either] to return allocating version like std::string everywhere or get rid of the details and suffer from poor ergonomics, where you’d need to use such [a] method. Even worse, error entry with extra details may be very rare and yet, you’d need to make everything allocate just to stick it all in. 18:36 <+bridge> [ddnet] 18:36 <+bridge> [ddnet] Rust provides a solution that is zero cost for cases where extra details are not needed. It’s a brilliant example of “pay only for what you use” principle in action. 18:36 <+bridge> [ddnet] Kek 18:37 <+bridge> [ddnet] https://www.youtube.com/watch?v=QGcVXgEVMJg @Learath2 18:37 <+bridge> [ddnet] YES 18:37 <+bridge> [ddnet] this has to be the one 18:37 <+bridge> [ddnet] Meek detective 18:37 <+bridge> [ddnet] I saw that one great great video learned a ton of stuff 18:37 <+bridge> [ddnet] Meek is a link stalker 18:37 <+bridge> [ddnet] Ill watch it later 18:37 <+bridge> [ddnet] i love searching up stuff and finding it 18:38 <+bridge> [ddnet] i dont think there is a job for it 18:38 <+bridge> [ddnet] that im qualified for 18:38 <+bridge> [ddnet] @Learath2 by Free CI did you mean CircleCI? 18:38 <+bridge> [ddnet] This is an excellent talk for anyone interested in how you can have nice free polymorphism 18:38 <+bridge> [ddnet] Github actions is free. We get macOS, Windows, Linux all for free 18:39 <+bridge> [ddnet] yea but I tried to read your configs 18:39 <+bridge> [ddnet] this is hell 18:39 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/master/.github/workflows/build.yaml 18:39 <+bridge> [ddnet] Before that we had go use like 3 providers for free CI. Travis for macOS, Circle for Linux and some thing with poop colored ui for Windows 18:40 <+bridge> [ddnet] rn I'm using gitlab ci/cd feature & watchtower on docker to automatically pull the docker image if the hash is different 18:40 <+bridge> [ddnet] rn I'm using gitlab ci/cd feature & watchtower on docker to automatically pull the docker image if the hash is different & restart the container 18:40 <+bridge> [ddnet] Hm, maybe some government job exists for it? 18:40 <+bridge> [ddnet] But do you host the docker container? 18:40 <+bridge> [ddnet] yes 18:41 <+bridge> [ddnet] only not the image 18:41 <+bridge> [ddnet] Yeah, on github they host the workers for free 18:41 <+bridge> [ddnet] ah 18:41 <+bridge> [ddnet] I mean 18:41 <+bridge> [ddnet] you mean the workers 18:41 <+bridge> [ddnet] I'm using the shared runners 18:41 <+bridge> [ddnet] Gitlab provides them? Do they have macOS too? 18:41 <+bridge> [ddnet] as i said, i don't think i'm qualified for it 18:42 <+bridge> [ddnet] Tips from the NSA :poggers: 18:42 <+bridge> [ddnet] True learath works for the nsa 18:42 <+bridge> [ddnet] 18:42 <+bridge> [ddnet] Why not? I’m sure some on the job training exists for stuff like this. Like some kind of archive office maybe? 18:42 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1012763985306718338/unknown.png 18:42 <+bridge> [ddnet] you have personal runners that you can register, or shared runners yes, but you have a limit per month, good luck to reach it 18:43 <+bridge> [ddnet] meh government jobs are usually for students with background knowledge so they don't have to train them for too long. 18:44 <+bridge> [ddnet] We get 2000 minutes free on github. I wonder how much of it we end up using 18:44 <+bridge> [ddnet] We get PRs too, those would add to the time used 18:44 <+bridge> [ddnet] ig you can find statistics somewhere 18:44 <+bridge> [ddnet] We also run our builds on CI and we build both debug and release 18:44 <+bridge> [ddnet] + tests 18:47 <+bridge> [ddnet] Oh wait, that’s only for private repos. We get infinite free time for public repos 😄 18:47 <+bridge> [ddnet] That is hard to beat 18:48 <+bridge> [ddnet] ho lol 18:49 <+bridge> [ddnet] that's cool 18:49 <+bridge> [ddnet] Anyway, idk how much we use 18:49 <+bridge> [ddnet] I wonder if it’s more than 400 minutes 18:53 <+bridge> [ddnet] ryozuki no rust academia 18:53 <+bridge> [ddnet] wot xd 18:53 <+bridge> [ddnet] ur anime title 18:54 <+bridge> [ddnet] They should teach the stacked borrows on academia 18:54 <+bridge> [ddnet] Well i mean, it came from academia 18:54 <+bridge> [ddnet] https://plv.mpi-sws.org/rustbelt/stacked-borrows/ 18:55 <+bridge> [ddnet] The paper 18:55 <+bridge> [ddnet] where do u even always find all the links, are u like copy pasting the rust discord here? XD 18:58 <+bridge> [ddnet] No 18:58 <+bridge> [ddnet] Years of research 18:58 <+bridge> [ddnet] I just remember em xd 18:58 <+bridge> [ddnet] When I have some time I really need to work with something like logseq to organize my knowledge 18:59 <+bridge> [ddnet] Ye its nice 18:59 <+bridge> [ddnet] Like that polymorphism talk. I really needed it but the only things I remembered about it was that it was am adobe guy and it had sth about cows in it 18:59 <+bridge> [ddnet] 2 tags I could easily search for in a kniwledge cloud 19:00 <+bridge> [ddnet] s\/kniwledge/knowledge/ 19:00 <+bridge> [ddnet] If u dont typo them that is 19:02 <+bridge> [ddnet] Well I’m sure logseq can do some fuzzy searching 19:09 <+bridge> [ddnet] test 19:10 <+bridge> [ddnet] test 19:10 <+bridge> [ddnet] /s/test/test2 19:10 <+bridge> [ddnet] mhh 19:10 <+bridge> [ddnet] /s/mhh/test2/ 19:10 <+bridge> [ddnet] didnt that work in discord a while ago 19:10 <+bridge> [ddnet] Don’t put a / before or at the end 19:11 <+bridge> [ddnet] test 19:11 <+bridge> [ddnet] mhh 19:11 <+bridge> [ddnet] ah 19:11 <+bridge> [ddnet] nice 19:11 <+bridge> [ddnet] Before is useless, after is a silly mistake by discord, they didn’t implement it properly 19:11 <+bridge> [ddnet] just wanted to see if thats a message that gets send to the server, but doesnt pop up in irc, so i guess its a client side command ^^ 19:11 <+bridge> [ddnet] Yeah it’s client side from what I gather 19:13 <+bridge> [ddnet] https://pornro.live/ - filme porno romania 19:14 <+bridge> [ddnet] @Discord Mod 19:15 <+bridge> [ddnet] :HUHH: 19:16 <+bridge> [ddnet] THATS SO ANNOYING 19:24 <+bridge> [ddnet] we have detected suspicious activity in your account. 19:24 <+bridge> [ddnet] 19:24 <+bridge> [ddnet] Due to this you have been blocked from accessing several rooms. 19:24 <+bridge> [ddnet] 19:24 <+bridge> [ddnet] This ban will not be lifted until you confirm your identity. 19:24 <+bridge> [ddnet] 19:24 <+bridge> [ddnet] Enter your email to confirm your identity\: 19:38 <+bridge> [ddnet] that's what u get for not having bot protection 19:38 <+bridge> [ddnet] :greenthing: 21:19 <+bridge> [ddnet] https://news.ycombinator.com/item?id=32611195 21:23 <+bridge> [ddnet] Is there not a way to run the build checks in ddnet github by yourself? 21:34 <+bridge> [ddnet] after u contributed once it does 21:52 <+bridge> [ddnet] SO TRUE AHAHAHA 21:53 <+bridge> [ddnet] people try to use c as another language, its just "work with ur data nobo" 21:55 <+bridge> [ddnet] if you have a fork they should run ok your fork too 21:56 <+bridge> [ddnet] congratulations :justatest: 21:56 <+bridge> [ddnet] Ohh... That makes sense. 21:58 <+bridge> [ddnet] i think if ill search for learaths, heinrichs and ryozukis messages in this chat ill end up as master degree student in cs :kek: 22:27 <+bridge> [ddnet] anyways i think im done with my PR, besides some high level optimization which i have no idea how to handle