01:44 < bridge> <7mzom alonso> guys anyone help me pls 01:45 < bridge> <7mzom alonso> i am playing on phone i cant join ger 10 white list servers 01:45 < bridge> <7mzom alonso> why this proplem 01:45 < bridge> did you whitelist 01:45 < bridge> on mobile 09:38 <+ChillerDragon> click here http://ger10.ddnet.org/ @7mzom alonso 09:39 <+ChillerDragon> also trol for playing on phone xd 11:21 <+ChillerDragon> @Ryozuki in libtw it says "Huffman compression has an extra byte if the actual end is at a byte boundary." did you know that? for you buggy huffman :) 11:22 < bridge> yeah probs 11:22 < bridge> ill fix it someday 11:22 <+ChillerDragon> i see my self using ur crate 11:22 <+ChillerDragon> soon(tm) 11:23 <+ChillerDragon> where can i pre order? 11:24 <+ChillerDragon> @heinrich5991 are the first two bits of the packet header unused? I wanted to double check here https://github.com/heinrich5991/libtw2/blob/master/doc/quirks.md but it didnt mention it 11:24 <+ChillerDragon> what a bloated protocol did we waste 2 bits of bandwith for EVERY tw packet ever sent over the network in the last 4 decades? 11:28 < bridge> Yeah, disgraceful 11:50 < bridge> damn 11:50 < bridge> imagine the alternative 11:50 < bridge> bitpacking nightmare 12:10 < bridge> https://www.dragonflydb.io/ 12:10 < bridge> has anyone tried this 12:10 < bridge> redit alternative 12:10 < bridge> claimingto be way faster 12:10 < bridge> sadly its c++ 12:11 < bridge> this is scaling related so maybe @Avolicious knows the man of scalability 12:17 < bridge> @Learath2 is calloc more efficient than malloc + memzeroing? 12:18 < bridge> calloc zeroes btw 12:19 < bridge> It should be but you can only know by knowing the exact platform to be deployed on 12:20 < bridge> ur lovely x86 12:20 < bridge> Calloc can skip the memset theoretically if the allocator has a piece of memory already zero'd 12:22 < bridge> @Learath2 why is there no version of malloc that has the interface of calloc, elements and single element size? is there no possible optimizations knowing more info? 12:22 < bridge> Also if you calloc I think it's also allowed to be lazy and give you a CoW zero'd page 12:23 < bridge> malloc(n, size) that doesnt zero i mean 12:23 < bridge> xd 12:23 < bridge> Iirc jemalloc had something of sorts. But honestly afaik even calloc doesn't use that information for anything, atleast as far as I know in x86 12:24 < bridge> Maybe in some exotic platform it can be used for alignment? 12:24 < bridge> I guess without knowing the data type for e.g. cache lines it's not really optimizable? 12:25 < bridge> also do u know what malloc_consolidate is, i have a segfault ystday with llvm 12:25 < bridge> i think it happens when everything is doomed 12:25 < bridge> Maybe a malloc that doesn't guarantee the given size is the size of the returned memory would help 12:25 < bridge> `malloc_consolidate(): unaligned fastbin chunk detected` 12:26 < bridge> also do u know what malloc_consolidate is, i had* a segfault ystday with llvm 12:28 < bridge> another morning with my lovely gentoo 12:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1093482242694713344/image.png 12:28 < bridge> If I recall correctly malloc_consolidate is called so unused chunks can be merged back 12:28 < bridge> what more pleasure than compiling ur own software 12:28 < bridge> Why do u even know about it xd 12:28 < bridge> You may have accidentally over or underflowed your allocation corrupting a struct header 12:29 < bridge> @Learath2 probably, this is the problem with C, im using a C api that wraps a c++ api and they have poor docs 12:29 < bridge> I wrote a malloc implementation as an exercise once upon a time. I remember looking into other implementations to see what they do 12:29 < bridge> so im not safe like in rust 12:29 < bridge> just remake llvm in rust 12:30 < bridge> Yeah, malloc_consolidate is called on free to try merge the newly freed memory into the tail of a previously freed chunk 12:30 < bridge> Where are the safe llvm wrappers xd 12:30 < bridge> xd 12:31 < bridge> its hard to make a safe wrapper of such a big api 12:31 < bridge> llvm is quite brittle ngl 12:31 < bridge> What are you doing with the llvm api anyway? 12:32 < bridge> i use the llvm C api to use it from rust 12:32 < bridge> i use it for work and my own language edlang 12:32 < bridge> they claim to have a C api so u can make bindings 12:32 < bridge> c++ is harder to interop 12:32 < bridge> Ryozooki, why don't you link to rust core for your malloc? 12:32 < bridge> but they rly focus more on the c++ side xd 12:33 < bridge> @Learath2 i didnt implement any malloc 12:33 < bridge> this error was from llvm breaking 12:33 < bridge> by me using the api in the wrong way 12:33 < bridge> Ohh, llvm is using the malloc 12:33 < bridge> not me executing my compiled program 12:33 < bridge> yeah 12:33 < bridge> Anyway, asan should find this extremely easily 12:34 < bridge> Ryo u a smartass compiler dev now. Just make own llvm in rust 12:35 < bridge> this is why i dont code in c 12:35 < bridge> i dont wanna use asan absan and ur mom 12:35 < bridge> rust just works 12:35 < bridge> Lmao 12:35 < bridge> btw rust has MIR for unsafe 12:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1093484245621678130/flow.png 12:36 < bridge> miri* 12:36 < bridge> ooops 12:36 < bridge> https://github.com/rust-lang/miri 12:36 < bridge> Then just don't overflow bozo :yeecool: 12:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1093484470738370590/image.png 12:37 < bridge> > You can use Miri to emulate programs on other targets, e.g. to ensure that byte-level data manipulation works correctly both on little-endian and big-endian systems. See cross-interpretation below. 12:38 < bridge> interesting 12:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1093484832547426335/image.png 12:39 < bridge> ez 12:40 < bridge> @Jupeyy_Keks https://developer.chrome.com/blog/webgpu-release/ 12:40 < bridge> webgpu name is a misnomer but yeah 12:40 < bridge> > WebGPU is a new API for the web, which exposes modern hardware capabilities and allows rendering and computation operations on a GPU, similar to Direct3D 12, Metal, and Vulkan. Unlike the WebGL family of APIs, WebGPU offers access to more advanced GPU features and provides first-class support for general computations on the GPU. The API is designed with the web platform in mind, featuring an idiomatic JavaScript API, integration with promises, su 12:41 < bridge> @Jupeyy_Keks https://hothardware.com/news/ddr5-mrdimms-standardized-up-to-17600 12:41 < bridge> hot 12:41 < bridge> 17,600 MT/s 12:43 < bridge> I think we are way past speeds relevant to the consumer. I bet these are great when you are running 500GB of ram on a caching proxy server at a datacenter 12:43 < bridge> Epic 12:43 < bridge> Epic 12:44 < bridge> considering specs required for ai. We are just getting started. Tho maybe not so much system ram ^^ 12:44 < bridge> I want personal ai ofc 12:45 < bridge> If local ai instances are going to become common place I think we'll be getting ai accelerators 12:45 < bridge> Yeah but ais will always require lot of ram and good speed 12:45 < bridge> Or at the very least some die space used for matrix extensions on even home cpu/gpus 12:46 < bridge> https://news.ycombinator.com/item?id=35458746 12:46 < bridge> topkek 12:46 < bridge> I could have told u that without searching for it 12:47 < bridge> Windows slowfender 12:47 < bridge> As soon as we hit speed limits hardware wise the fastest os design wins 12:47 < bridge> oh shit 12:47 < bridge> psql15 dropped 12:48 < bridge> In first run this might be Linux. In long run probs smth completely new 13:13 < bridge> Isn’t psql15 old news? 13:15 < bridge> Are u using a rust news client or what 13:15 < bridge> Ryozuki uses javascript. It takes longer 13:15 < bridge> But yeah very old news lol 13:28 < bridge> ah ye 13:28 < bridge> idk i got it on my gentoo 13:28 < bridge> or forgot to upgrade 13:28 < bridge> xd 13:35 < bridge> https://www.reddit.com/r/rust/comments/12cxpsb/rustcs_stablehasher_just_got_a_lot_faster/ 13:36 < bridge> > What this means: faster incremental builds, since this is the component rustc uses to hash the incremental compilation data. 13:38 < bridge> I heard gccs unordered map is faster than rusts hashmap 13:38 < bridge> Did that change now xd 13:49 < bridge> I started using that at work as a replacement for sanitizers in Rust. It seems a bit slower than sanitizers though, and has some limitations 13:49 < bridge> rust uses a conservative hashmap 13:49 < bridge> hash * 13:49 < bridge> u can change it 13:50 < bridge> do u code in rust? 13:50 < bridge> yeah i think its pretty in development, and is specially made for rust 13:50 < bridge> Mostly python, but some of our testing code is Rust 13:51 < bridge> i see 13:51 < bridge> why testing? xD 13:52 < bridge> My job is writing code that finds bugs, aka testing 😄 13:52 < bridge> ohhh 13:53 < bridge> MIRI is like an abstract machine or smth 13:53 < bridge> > The implementation of the Rust abstract machine - miri - stops execution of Rust programs when they exhibit undefined behavior. 13:53 < bridge> > 13:53 < bridge> > C, C++, etc. don't even have implementations of their abstract machines. They don't have one existing as a goal. And they are happy to make certain operations exhibit undefined behavior even if that implies that it would make an implementation of the abstract machine that traps impossible. 13:53 < bridge> > 13:53 < bridge> > This is why even if you were to combine valgrind with address sanitizer, memory sanitizer, thread sanitizer, undefined-behavior-sanitizer, and other existing C and C++ tools, there is still a lot of classes of undefined behavior that these tools can't detect. 13:53 < bridge> > 13:53 < bridge> > That's fine in C and C++, but not fine in Rust. In Rust, if we add a new type of undefined behavior, the constraint is that it should be (demonstrably) possible to extend miri to detect it, such that if a user doesn't know whether some program exhibits undefined behavior for some inputs, they can just run it under miri, and miri will precisely pinpoint which part of their code exhibited undefined behavior and why, and how their program execution 13:57 < bridge> can a sanitizer catch access to an invalid union field? 13:59 < bridge> i just entered chat and the first thing i thought was "the code can not unionize" 13:59 < bridge> is it possible to do custom commands instead of binding keys? 14:00 < bridge> define custom commands 14:01 < bridge> for example /command exec file.cfg 14:01 < bridge> no wait 14:01 < bridge> xDDD 14:01 < bridge> i want to do bind command exec file.cfg 14:02 < bridge> a whole word instead of just a key 14:03 < bridge> arent those just a long list of binds 14:03 < bridge> yes but im out of keys which i can press fast 14:03 < bridge> mouse only have 5 buttons 14:03 < bridge> do multi binds, like one key you can press to cycle throw a list of binds which will then change the command for another key. U only need 2 keys for that. Use echo messages to tell yourself which "mode" is activated right now 14:03 < bridge> ctrl+k 14:03 < bridge> 1 key, x .cfg files, another key for the bind to be executed 14:04 < bridge> e.g. `n` will change the command and an echo to tell urself which one is it currently, and `m` will execute it. 14:06 < bridge> Yo @Ryozuki what do you work that you build compilers at work? 14:06 < bridge> stuff 14:07 < bridge> im not sure about sharing more personal details about me xd 14:07 < bridge> Just stalk his gh 14:07 < bridge> chiller tell us 14:07 < bridge> what do u work as 14:07 < bridge> He contributes to some stuff xd 14:07 < bridge> or is ur life just staying afk in ddnet 14:07 < bridge> Chiller is millionaire chilling his life 14:07 < bridge> whenver i start ddnet ur there 14:07 < bridge> afk 14:08 < bridge> and if i talk to u ur bot says ur afk 14:08 < bridge> Xdd 14:08 < bridge> In how far does telling what u work leak ur personal information? I mean we all work as programmers, so much is clear 14:08 < bridge> Ok fair same here 14:08 < bridge> (@Ryozuki) 14:08 < bridge> tell me the name of ur company, website, address, etc 14:09 < bridge> in this discord with degens 14:09 < bridge> ah, yea no 14:09 < bridge> definitely not haha 14:09 < bridge> CEO.google.com 14:09 < bridge> its me 14:09 < bridge> well if i worked at google i would say it 14:09 < bridge> xd 14:09 < bridge> I meant what field you work in and what your current project is that it involves such low level things 14:10 < bridge> i dont think its that weird 14:10 < bridge> but yeah my company likes to try new stuff 14:10 < bridge> honestly im happy im paid to do this interesting stuff 14:10 < bridge> I would be ashamed to work for google xd 14:10 < bridge> I want to join u 14:10 < bridge> Google > EA 14:10 < bridge> jk it’s a flex. to work at evil corp 14:10 < bridge> did u know they write compilers for machine learning 14:10 < bridge> and they use this https://mlir.llvm.org/ 14:11 < bridge> Epic 14:11 < bridge> Win 14:11 < bridge> fortnite 14:11 < bridge> cring 14:11 < bridge> Epic ryo moment 14:11 < bridge> Plis bay me sum vbuggs 14:11 < bridge> kids dont play fortnite 14:12 < bridge> they play roblox 14:12 < bridge> its insane 14:12 < bridge> no 14:12 < bridge> the market 14:12 < bridge> roblox is played by 15 year olds 14:12 < bridge> much bigger player base 14:12 < bridge> fortnite is dying anyway 14:12 < bridge> nobody cares anyways 14:12 < bridge> Roblox Market Cap 14:12 < bridge> Roblox has a market cap or net worth of $27.47 billion as of April 6, 2023. Its market cap has decreased by -8.34% in one year. 14:15 < bridge> Roblox has such a cursed look 14:26 < bridge> the cfg file can be a normal text file right? 14:26 < bridge> do i store it in the appdata or in the folder with the ddnet exe? 14:28 < bridge> if i press key to exec the file it just says it failed to open the file 14:30 < bridge> it should be in appdata in the same folder as settings_ddnet.cfg 14:30 < bridge> yes it is 14:30 < bridge> does it have to be the same fily type? 14:31 < bridge> No 14:31 < bridge> Can u enable file type in your explorer 14:32 < bridge> yes i got windows 14:32 < bridge> Then do it 14:32 < bridge> Then copy the full name and exec the full name 14:33 < bridge> It's enabled if u see settings_ddnet.cfg as one word 14:33 < bridge> Including the. Cfg 14:35 < bridge> doesnt work 14:35 < bridge> Do screenshot of Ur config dir 14:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1093516862870011934/Unbenannt.PNG 14:45 < bridge> U didn't do this 14:46 < bridge> U have a file extension twice probably 14:46 < bridge> .cfg.cfg 14:46 < bridge> Or .cfg.txt 14:47 < bridge> ahh yes 14:48 < bridge> now it works 16:21 < bridge> i think i have to do the yearly thermal paste change 16:22 < bridge> got some new fans too including cpu one 16:22 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1093541235551129600/image.png 16:22 < bridge> gotta prepare for the summer heat in this world with climate change kek 16:46 < bridge> why yearly? 16:46 < bridge> u need to do this maybe all 5 years 16:46 < bridge> or is ur computer getting so hot lately? 16:48 < bridge> i think i added too little last time 16:48 < bridge> my cpu is getting at 85C 16:48 < bridge> when compiling for a bit 16:48 < bridge> it shouldnt even get hot without paste 16:48 < bridge> (hotter than expected) 16:49 < bridge> whats the expected for 5800x 16:49 < bridge> i dunno 16:49 < bridge> but my case fans are rly old 16:49 < bridge> like 4 or more years old 16:49 < bridge> and they are not PWM 16:49 < bridge> so i got pwm ones 16:49 < bridge> less noise when nothing and more power when full 16:49 < bridge> + the noctua fan for the cpu cooler 16:49 < bridge> that shit costs 36€ xd 16:50 < bridge> 2000rpm 16:50 < bridge> wow my CPU is almost 4 years old already.. time passed so fast damn 16:50 < bridge> yeah 16:51 < bridge> the thermal paste is rly important iirc 16:51 < bridge> i think i seen benchmarks where they used none, it was ok 16:51 < bridge> but ofc the paste will close the gaps 16:52 < bridge> > In general, changing thermal paste every one to two years is a good idea. However, we would not recommend relying solely on timeframes to monitor when you need to change your thermal paste. 16:52 < bridge> random website 16:52 < bridge> xD 16:52 < bridge> let me ask chatgpt our lord and savior 16:53 < bridge> i bet u never changed the thermal paste of your GPU in your life 16:53 < bridge> 😉 16:53 < bridge> i did once 16:54 < bridge> for my old r9 390 16:54 < bridge> that shit was hot af 16:54 < bridge> 90C sometimes 16:54 < bridge> xd 16:56 < bridge> oh gg 16:56 < bridge> openening a gpu is really struggle xd 16:56 < bridge> so many cool pats 16:57 < bridge> gpt says almost the same lmao, it read that website 16:59 < bridge> kek 16:59 < bridge> so many cool pads 17:25 < bridge> I like dragonflydb but havent got a chance to use it by now, its still on my todo 17:28 <+ChillerDragon> @heinrich5991 hmm im a bit confused by https://github.com/heinrich5991/libtw2/blob/7885c99974ee445ce13297b72ae3e7c6ea3b969d/wireshark-dissector/src/tw7.rs#L319 17:28 <+ChillerDragon> you call it accept_connection which in my head maps to CONNECTION_ACCEPT which was replaced by ACCEPT in 0.7 17:29 <+ChillerDragon> https://github.com/teeworlds/teeworlds/commit/d3fc0807d5f59d88661c8e58854805b064db3c4d 17:30 < bridge> i think heinric is in a asian timezone 17:30 < bridge> he is always wake late 17:30 <+ChillerDragon> so imo in tw.rs is should still say accept_connection but in tw7.rs it should say just accept 17:30 <+ChillerDragon> weeb5991 17:31 <+ChillerDragon> @Ryozuki how u know? u saw his insta story? xd 17:31 < bridge> by when he is online 17:31 <+ChillerDragon> sherlock 17:32 <+ChillerDragon> ryo doxing heinric location! 17:32 <+ChillerDragon> using metadata 17:46 < bridge> Friend of mine had a gpu that performed like horseshit out of the factory. It was overheating too, when I opened it up the thermal paste wasn't anywhere near the gpu die, like half the die was uncovered. So not a horrible idea to check if you get unexpected temps 18:21 < bridge> thank god that i use a microwave oven 😮‍💨 19:15 <+ChillerDragon> python has the worst eco system of them all. Its even worse than c++. Change my mind. 19:16 <+ChillerDragon> I rather have no package manager than 30 competing ones that are broken in their own way omg 19:21 < bridge> whats your opinion on the node (npm) one? 19:22 <+ChillerDragon> its bad too but better from my expirience so far 19:22 < bridge> cargo build 19:23 <+ChillerDragon> also bad but much better 19:23 <+ChillerDragon> so far the only problem i have with cargo is its super big and slow git index you have to keep updated 19:23 <+ChillerDragon> but they are on it heinrich promised me 19:24 < bridge> there is a fix already 19:25 < bridge> its not enabled by default yet but it will soon 19:25 <+ChillerDragon> ok then cargo the only eco sys i have no problems with yet 19:25 < bridge> ```python 19:25 < bridge> def foo(): 19:25 < bridge> return 8 * 8 19:25 < bridge> ```@Learath2 leratooooooooooooo!!! 19:25 < bridge> daily python trivia!!!!!!!!!!!!!!!!!!!do you pay for for the 8 \* 8 multiplication at runtime? 19:25 < bridge> https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html#cargos-sparse-protocol 19:25 < bridge> read 19:25 < bridge> probs not 19:25 <+ChillerDragon> yes dis heinrich sent last timne i bitched about it xd 19:25 <+ChillerDragon> indeed ryo pro 19:25 < bridge> i mean its rly obvious 19:26 < bridge> and stupid if not optimized 19:26 < bridge> ```python 19:26 < bridge> >>> import dis 19:26 < bridge> >>> def foo(): 19:26 < bridge> ... return 8 * 8 19:26 < bridge> ... 19:26 < bridge> >>> foo() 19:26 < bridge> 64 19:26 < bridge> >>> dis.dis(foo) 19:26 < bridge> 2 0 LOAD_CONST 1 (64) 19:26 < bridge> 2 RETURN_VALUE 19:26 < bridge> >>> 19:26 < bridge> ``` 19:26 <+ChillerDragon> you can get python bytecode with python o.O 19:28 < bridge> wtf are these code words 19:29 <+ChillerDragon> wot? 19:29 < bridge> dis? foo? 19:29 <+ChillerDragon> foo is my function 19:29 < bridge> you can not say these with a straight face 19:29 <+ChillerDragon> dis is from python to get python bytecode 19:30 < bridge> ```python 19:30 < bridge> def foo(): 19:30 < bridge> a = 2 19:30 < bridge> return a * a 19:30 < bridge> ```@Ryozuki you reached level 2 of daily lerato.py trivia! 19:30 < bridge> same question new code 19:31 < bridge> same 19:31 <+ChillerDragon> and here your streak ends 19:31 <+ChillerDragon> python slow 19:31 < bridge> then python sucks 19:31 < bridge> ```python 19:31 < bridge> >>> def foo(): 19:31 < bridge> ... a = 2 19:31 < bridge> ... return a * a 19:31 < bridge> ... 19:32 < bridge> >>> foo() 19:32 < bridge> 4 19:32 < bridge> >>> import dis 19:33 < bridge> >>> dis.dis(foo) 19:33 < bridge> 2 0 LOAD_CONST 1 (2) 19:33 < bridge> 2 STORE_FAST 0 (a) 19:33 < bridge> 19:33 < bridge> 3 4 LOAD_FAST 0 (a) 19:33 < bridge> 6 LOAD_FAST 0 (a) 19:33 < bridge> 8 BINARY_MULTIPLY 19:33 < bridge> 10 RETURN_VALUE 19:33 < bridge> >>> 19:33 < bridge> ``` 19:33 < bridge> so bad 19:33 < bridge> maybe this pyc code is not optimized 19:33 < bridge> well whathever this is 19:33 <+ChillerDragon> idc if there are optimization levels of python bytecode 19:33 <+ChillerDragon> idk* 19:33 < bridge> https://en.wikipedia.org/wiki/Constant_folding 19:37 <+ChillerDragon> https://stackoverflow.com/a/62656844 i fear there is no python way to tell the compiler to optimize 19:41 <+ChillerDragon> i feel like the best way to write python is to write rust ._. 19:49 < bridge> ofc 20:50 < bridge> also depends on DRAM vendor, some allow to zero out directly in place 20:51 < bridge> oh didnt know 20:51 < bridge> but x86 has optimization to only mark null cache line instead of transferring them 20:55 < bridge> which ironically allows some nice data leak 😄 21:20 < bridge> hi is there any plan to port the game to consoles? didnt find anything about this just curious 21:23 < bridge> money 21:47 < bridge> wha- 21:48 < bridge> Nope, honestly the game doesn't work very well with controllers to begin with 22:03 < bridge> is it a thing? i remember cen94ok showed me his controller gameplay on 0.7 and everything seemed good to him 22:04 < bridge> You can play with a controller in ddnet right now too, I didn't enjoy it too much but maybe you'd 22:51 < bridge> The thing is i use ps4 pro with keyboard and mouse 22:52 < bridge> Dont have a setup to play tw with, so was wondering if it could work out or nah 22:53 < bridge> And i play tw since 2011 so it wont feel great not to be able to play