00:09 <+bridge> [ddnet] i just gave up with aggregations, i can't wrap my head around coding them. Maybe i'm too tired but it really is frustrating rn.. 03:11 <+bridge> [ddnet] just curious, if you guys were to change the ui in any way, which aspects would you want to change? 03:16 <+bridge> [ddnet] change most of the querying chat commands to pop up boxes with better gfx 06:53 <+bridge> [ddnet] https://youtu.be/sNteZzrMskQ?t=23 @Ryozuki lmao tf is that pov 08:01 <+bridge> [ddnet] another concept i JUST thought of: 08:01 <+bridge> [ddnet] why not modernize the killfeed to include more information? Rather it be icons for how someone is killed, or even misc. things, like stealing someone else's kill, or winning a race? 08:01 <+bridge> [ddnet] this could also crunch down a few elements, like if you restart multiple times or if you score a wrong goal in FNG, so the feed isnt too cluttered? 08:01 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1033983435745808385/unknown.png 08:01 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1033983436228141106/unknown.png 08:02 <+bridge> [ddnet] given some icons might not be needed, this is just a concept doodle 10:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034026560178630666/unknown.png 10:52 <+bridge> [ddnet] today will be a special unix time 11:02 <+bridge> [ddnet] https://tenor.com/view/666-hells-cat-deceiver-father-of-lies-gif-13831823 11:03 <+bridge> [ddnet] https://tenor.com/view/rabbit-dancing-666-devil-gif-9166963 11:32 <+bridge> [ddnet] https://tenor.com/view/pog-gif-18640695 12:07 <+bridge> [ddnet] @Ryozuki I found some old stickers 😀 12:07 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034045415366082640/IMG_7731.jpg 12:08 <+bridge> [ddnet] Ohh 12:09 <+bridge> [ddnet] :poggers2: 16:20 <+bridge> [ddnet] seems to be tomorrow? 16:20 <+bridge> [ddnet] ``` 16:20 <+bridge> [ddnet] $ date -d @1666666666 --iso-8601=seconds 16:20 <+bridge> [ddnet] 2022-10-25T04:57:46+02:00 16:20 <+bridge> [ddnet] ``` 16:21 <+bridge> [ddnet] I see 16:22 <+bridge> [ddnet] @Learath2 what do you think about this? https://github.com/ddnet/ddnet/pull/5949#pullrequestreview-1148360008 16:22 <+bridge> [ddnet] > (Additionally, we could probably add a flag to the `NETADDR` struct so we can pass it through that as well. @Learath2, what would you think about that?) 16:24 <+bridge> [ddnet] NETADDRs having a 7 flag? 16:24 <+bridge> [ddnet] i.e. adding something like `NETTYPE_TW07` to the `NETADDR` struct, since connecting to an tw 0.6 and tw 0.7 server asks the low-level network stuff to do something different 16:24 <+bridge> [ddnet] like the websocket flag 16:24 <+bridge> [ddnet] I honestly don't like the netaddrs we have now. They are just a weird abstraction 16:25 <+bridge> [ddnet] what's wrong with them? 16:25 <+bridge> [ddnet] No wait. It's the netsockets I don't like. Addrs are fine 16:26 <+bridge> [ddnet] I think that level might be too low to be aware of protocol details though, so is a flag there really appropriate? 16:29 <+bridge> [ddnet] Atleast in my eyes system.h is supposed to not be very aware of any details of teeworlds 16:29 <+bridge> [ddnet] yea. maybe just reserve some space there and let the higher levels stuff it in? ^^ 16:29 <+bridge> [ddnet] ideally, using a different type for the engine etc. would be better 16:29 <+bridge> [ddnet] Or maybe higher level code should wrap it? 16:29 <+bridge> [ddnet] but I don't fancy rewriting all the ddnet code to use another type 16:30 <+bridge> [ddnet] ah, maybe we could use `NETADDR` for the high level and a new type for the low-level code 16:30 <+bridge> [ddnet] Or that. NETADDR_in 16:31 <+bridge> [ddnet] in stands for 'internet', I think ^^ 16:31 <+bridge> [ddnet] Mine is for internal 😄 16:31 <+bridge> [ddnet] what don't you like about our `NETSOCKET`s btw? 16:31 <+bridge> [ddnet] Though, I wonder how much of the high level code even uses NETADDRs 16:32 <+bridge> [ddnet] The way they wrap multiple sockets in one just feels like too thick of an abstraction 16:32 <+bridge> [ddnet] Like a hack to add ipv6 without thinking too much about it 16:33 <+bridge> [ddnet] the OSs even support wrapping IPv4 and IPv6 sockets into one, I think 16:34 <+bridge> [ddnet] `IPV6_V6ONLY` 16:34 <+bridge> [ddnet] we just disable it 16:34 <+bridge> [ddnet] But that's not really what we do. We open two or more sockets per netsocket 16:34 <+bridge> [ddnet] perhaps we should use that instead of using two sockets for IPv4 and IPv6 16:35 <+bridge> [ddnet] Oh btw you broke some api promises when you made netsockets or netaddrs allocated. Idk which one 16:35 <+bridge> [ddnet] netsockets 16:35 <+bridge> [ddnet] I think someone submitted a fix(?) 16:36 <+bridge> [ddnet] Documentation promises return of NETSOCKET_INVALID. But we don't do that. It fails silently, it didnt break because we never checked 16:36 <+bridge> [ddnet] xd 16:36 <+bridge> [ddnet] ah, isn't that a nice part of our abstraction btw? using recvmmsg automatically 16:37 <+bridge> [ddnet] That is a good part of the thick abstraction yeah 17:14 <+bridge> [ddnet] What's better, logic world or virtual circuit board? 17:14 <+bridge> [ddnet] Logic world has a worse name 17:15 <+bridge> [ddnet] Vcb is unreadable 17:15 <+bridge> [ddnet] Really hard choice 17:18 <+bridge> [ddnet] you can try logisim 17:18 <+bridge> [ddnet] we used that in school 17:21 <+bridge> [ddnet] ah, apparently your stuff is more of a game 17:36 <+bridge> [ddnet] Vcb 17:37 <+bridge> [ddnet] @heinrich5991 digital is better 17:37 <+bridge> [ddnet] Logisim is unmaintained 17:39 <+bridge> [ddnet] link? 17:41 <+bridge> [ddnet] Github digital 17:41 <+bridge> [ddnet] Im on mobile sry 17:50 <+bridge> [ddnet] turkey admin 17:50 <+bridge> [ddnet] https://github.com/hneemann/Digital 17:50 <+bridge> [ddnet] probably 17:51 <+bridge> [ddnet] @heinrich5991 Why are there no turkish admins? 17:52 <+bridge> [ddnet] I don't know why there aren't any turkish moderators 17:52 <+bridge> [ddnet] Is laser instant? like when you shoot, it immediately appear in full length + bounce? My antiping on ictf feels wrong, i noticed i killed guy with wallshot when shot straight above, maybe old versions had some laser spread speed? 17:52 <+bridge> [ddnet] i think turkish admins are needed 17:52 <+bridge> [ddnet] bounce is delayed 17:53 <+bridge> [ddnet] I believe moderators moderate beyond their usual home server. having a moderator that speaks turkish would be useful though, I guess 17:53 <+bridge> [ddnet] okay :feelsbadman: 17:53 <+bridge> [ddnet] (bounce was always delayed) 17:53 <+bridge> [ddnet] k 17:53 <+bridge> [ddnet] probably just skill issue 17:53 <+bridge> [ddnet] @heinrich5991 So who is the founder? 17:54 <+bridge> [ddnet] i believe founder of ddnet is @deen 17:54 <+bridge> [ddnet] not teeworlds or smth 17:54 <+bridge> [ddnet] I believe moderator recruitment happens in the forums 17:55 <+bridge> [ddnet] where to get admin 17:55 <+bridge> [ddnet] @heinrich5991 do you know eujax 17:55 <+bridge> [ddnet] no, have only read their name a couple of tmies 17:55 <+bridge> [ddnet] no, have only read their name a couple of times 17:55 <+bridge> [ddnet] ah, eujax is a turkish moderator 17:55 <+bridge> [ddnet] I think 2 or 3 Turkish admins should be taken. 18:02 <+bridge> [ddnet] @everyone join now https://discord.gg/e-sexies 18:05 <+bridge> [ddnet] why are you advocating for more admins when youre one of the players who just gets banned on sight everytime :lol: 18:14 <+ChillerDragon> Oof is there a way to shrink a array on the stack? -.- 18:14 <+bridge> [ddnet] why 18:14 <+bridge> [ddnet] just save the size of the array in a second var 18:14 <+ChillerDragon> yea thats probably the wrong approach -.- 18:15 <+bridge> [ddnet] why tho xD 18:15 <+ChillerDragon> but i get user input and i then compress it using huffman tw compress algo magic 18:15 <+ChillerDragon> and then i cast it to some ruby object 18:15 <+ChillerDragon> and it takes the size of my buffer on the stack 18:15 <+ChillerDragon> it wont eat my heap allocated memory 18:16 <+ChillerDragon> wait gimme a minute ill spin up da electron to paste code xd 18:16 <+bridge> [ddnet] no other way to give it an object? 18:16 <+bridge> [ddnet] with size 18:16 <+bridge> [ddnet] idk how to read docs 18:16 <+bridge> [ddnet] iv been starring at it for ages 18:16 <+bridge> [ddnet] *staring 18:16 <+bridge> [ddnet] ```C 18:16 <+bridge> [ddnet] Object huff_compress(const char * pInput, int Size) 18:16 <+bridge> [ddnet] { 18:16 <+bridge> [ddnet] CHuffman Huffman; 18:16 <+bridge> [ddnet] Huffman.Init(); 18:16 <+bridge> [ddnet] unsigned char aOutput[10]; 18:16 <+bridge> [ddnet] Huffman.Compress(pInput, Size, aOutput, sizeof(aOutput)); 18:16 <+bridge> [ddnet] Array out(aOutput); 18:16 <+bridge> [ddnet] return out; 18:16 <+bridge> [ddnet] } 18:16 <+bridge> [ddnet] 18:16 <+bridge> [ddnet] ``` 18:16 <+bridge> [ddnet] so this works 18:17 <+bridge> [ddnet] since when are you using ruby? 18:17 <+bridge> [ddnet] but i always get back a array of size 10 in ruby since my buffer is fixed 10 18:17 <+bridge> [ddnet] is there documentation for this `Array` class? 18:17 <+bridge> [ddnet] i built a tw client in ruby yesterday xd 18:17 <+bridge> [ddnet] https://jasonroelofs.com/rice/4.x/tutorial.html 18:17 <+bridge> [ddnet] didnt find any 18:17 <+bridge> [ddnet] i found the array class in the source code xd 18:17 <+bridge> [ddnet] https://github.com/jasonroelofs/rice/blob/master/test/test_Array.cpp 18:17 <+bridge> [ddnet] they use vectors 18:18 <+bridge> [ddnet] maybe i should push my unsigned char\* into a vector 18:18 <+bridge> [ddnet] but if i could just trim my stack size that would also work but if there isnt any way i guess vectors it is 18:19 <+bridge> [ddnet] ``` 18:19 <+bridge> [ddnet] Object huff_compress(const char * pInput, int Size) 18:19 <+bridge> [ddnet] { 18:19 <+bridge> [ddnet] CHuffman Huffman; 18:19 <+bridge> [ddnet] Huffman.Init(); 18:19 <+bridge> [ddnet] std::array aOutput; 18:19 <+bridge> [ddnet] Huffman.Compress(pInput, Size, aOutput, sizeof(aOutput)); 18:19 <+bridge> [ddnet] Array out(aOutput.begin(), aOutput.end()); 18:19 <+bridge> [ddnet] return out; 18:19 <+bridge> [ddnet] } 18:19 <+bridge> [ddnet] ``` 18:19 <+bridge> [ddnet] 18:19 <+bridge> [ddnet] or do it with ptrs if it allows it 18:19 <+bridge> [ddnet] https://github.com/jasonroelofs/rice/blob/4bae186d95056ceafcc801fbe548aa4acbe04d66/rice/Array.hpp#L43-L44 18:19 <+bridge> [ddnet] what @Not Keks says 18:19 <+bridge> [ddnet] oh but aOutput.data() in compress and aOutput.size() 18:20 <+bridge> [ddnet] ok sizeof might work 18:20 <+bridge> [ddnet] but nicer 18:20 <+ChillerDragon> so instead of hardcoding 10 i can use Size? 18:20 <+bridge> [ddnet] no 18:20 <+ChillerDragon> :( 18:20 <+bridge> [ddnet] its still fixed size 18:20 <+bridge> [ddnet] you can use the start pointer and the end pointer 18:20 <+bridge> [ddnet] ChillerDragon 18:20 <+ChillerDragon> but then it will always be 10 18:20 <+bridge> [ddnet] u can do .begin() and .begin() + 5 18:20 <+bridge> [ddnet] for example 18:20 <+bridge> [ddnet] + 5 = any value u want 18:20 <+bridge> [ddnet] `Array out(aOutput, aOutput + 10);` 18:21 <+ChillerDragon> wouldnt that be out of bounds then? 18:21 <+bridge> [ddnet] you don't even need `std::array`, if I read the source code correctly 18:21 <+bridge> [ddnet] one-past end is allowed 18:21 <+ChillerDragon> my code as of now is compiling and working fine 18:21 <+ChillerDragon> but i always get back an array of size 10 18:21 <+bridge> [ddnet] yes 18:21 <+ChillerDragon> i want to get back an array of size ``Size`` 18:21 <+bridge> [ddnet] then dont pass +10 XD 18:21 <+bridge> [ddnet] but + Size 18:22 <+bridge> [ddnet] `Array out(aOutput, aOutput + Size);` 18:22 <+ChillerDragon> but if it only allocates an array of 10 how does that work? 18:22 <+bridge> [ddnet] what @Not Keks says 18:22 <+ChillerDragon> a 18:22 <+ChillerDragon> Ouuuu now i get it 18:22 <+ChillerDragon> so i omit the vector 18:22 <+ChillerDragon> and just pass in the size 18:22 <+ChillerDragon> ah hot thnks 18:22 <+ChillerDragon> omot the array* 18:23 <+ChillerDragon> works wonderful thanks a lot <3 18:24 <+ChillerDragon> now its very unrubyish passing in a string and its size instead of an byte array but too lazy to figure argument data types out xd 18:25 <+bridge> [ddnet] i find native interfaces suck anyway, same for JNI 😄 18:25 <+ChillerDragon> still better than porting huffman.cpp to ruby :D 18:25 <+ChillerDragon> and cooler/faster 18:25 <+bridge> [ddnet] just use c as a protocol 18:25 <+ChillerDragon> bbbut 18:25 <+ChillerDragon> yea i probably could xd 18:26 <+bridge> [ddnet] no idc just do what u want 18:26 <+ChillerDragon> you can use c protocol even for c++ right? actually im kinda confused what api im even using at this point xd 18:26 <+ChillerDragon> i went as c++ as i could :D 18:27 <+ChillerDragon> so who wants to add huffman tests to ddnet codebase? 18:27 <+ChillerDragon> so i can check if it works 18:35 <+bridge> [ddnet] just use rust like all cool kinds 18:35 <+bridge> [ddnet] cancel ruby 18:36 <+bridge> [ddnet] cancer luby 18:36 <+bridge> [ddnet] cancel cancer 18:36 <+ChillerDragon> works flawless 18:36 <+ChillerDragon> https://zillyhuhn.com/cs/.1666629395.png 18:37 <+bridge> [ddnet] hello V xd 18:37 <+ChillerDragon> -.- 18:37 <+bridge> [ddnet] if u want a challenge use the top20 most used programming languages in your project and all work together 18:37 <+bridge> [ddnet] world is V confirmed 18:48 <+bridge> [ddnet] @noby that's not me 23:51 <+bridge> [ddnet] yes so the person whos been banned hundreds of times with the name Soh isnt you 23:51 <+bridge> [ddnet] of course