00:06 < bridge> ur playlist 00:06 < bridge> @learath2 00:06 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1220871244426117190/GJSjfvPXsAIRkNU.png?ex=661083f3&is=65fe0ef3&hm=90eda89242e9d5880f26d49d4466693b794cb710ba31223ea3c6acd750ef4ae7& 00:53 < ws-client> robsti u wakey? 02:29 < bridge> why u use spanish hahah 03:19 < bridge> because he’s spanish 11:09 < bridge> @learath2 i just learned about gentoo profiles 11:09 < bridge> apparently im at 17.1 11:09 < bridge> there is some news about upgrading? isnt gentoo rolling 11:28 < bridge> Profiles are for breaking changes that need manual intervention by the user to upgrade. Iirc 17.1 removed symlinking for lib64 11:28 < bridge> im at 17.1 11:28 < bridge> `eselect news` to read about it 11:28 < bridge> im going to 23.0 11:29 < bridge> Ah a new one 11:29 < bridge> ye today 11:29 < bridge> Well I haven't turned on my computer yet 11:29 < bridge> the merged usr 11:29 < bridge> but there is a unmerged one 11:29 < bridge> also the bin packages 11:29 < bridge> The news item will tell you how to upgrade 11:29 < bridge> gentoo turning normie 11:29 < bridge> jkjk 11:29 < bridge> yeah im doing it 11:30 < bridge> rebuilding gcc 11:30 < bridge> Looks like a boring update, just some new flags 11:31 < bridge> for u? 11:32 < bridge> @learath2 why do i go from 17 to 23 11:32 < bridge> what about 18 19 20 21 22 11:33 < bridge> I don't remember how they were named 11:33 < bridge> ah 11:33 < bridge> is it year based? 11:33 < bridge> It might be the last 2 digits of the year when they were first created 11:33 < bridge> damn profiles must be rare then 11:35 < bridge> i compiled gcc in 14 mins 11:35 < bridge> holy moly 11:36 < bridge> In a decade of using gentoo, I never had a mandatory profile upgrade 11:36 < bridge> before i did 22 11:36 < bridge> I only did one profile upgrade ever 11:36 < bridge> @learath2 but they say the deprecating old profiles 11:37 < bridge> @learath2 but they say they deprecating old profiles 11:37 < bridge> In 2 years, but yeah just get it out of the way if you have some time 11:37 < bridge> 1 year* 11:37 < bridge> you know me 11:37 < bridge> i run on shiny new stuff 11:37 < bridge> 😄 11:38 < bridge> btw i discovered i cant run 4 dimm slots at 6000mhz 11:38 < bridge> idk if it runs at lower 11:38 < bridge> but it wont boot 11:38 < bridge> i can run with 2 dimm at 6000mhz 11:38 < bridge> i think its some limitation 11:38 < bridge> 2x16gb 11:38 < bridge> i think it can work with 2x32gb 11:38 < bridge> Idk anything at all about ddr past ddr3 😛 11:38 < bridge> I'm stuck in the past 11:39 < bridge> im at ddr5 11:42 < bridge> https://www.youtube.com/watch?v=20Ka9nt1tYU 11:43 < bridge> I need to get a new laptop 11:53 < bridge> @learath2 i gotta rebuild world 11:53 < bridge> damn 12:04 < bridge> You don't HAVE to, but I can imagine it'd bother you forever 😄 12:04 < bridge> well the steps mention it 12:04 < bridge> 16. Rebuild world: 12:04 < bridge> emerge --ask --emptytree --getbinpkg @world 12:04 < bridge> Oh damn, it's been a while since I saw a profile upgrade requiring a full rebuild 12:05 < bridge> its cuz it moved lib folders probs 12:06 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1221052350064627762/image.png?ex=66112c9e&is=65feb79e&hm=14c4b57f73ed32a480ad1ea6af396749a8fb733507d2d42d822717a777f306b5& 12:06 < bridge> I guess they want the new hardening flags in effect everywhere 12:07 < bridge> Must be nice having a beast computer 12:07 < bridge> I should get a new one sometime 12:07 < bridge> ye 12:08 < bridge> if u get these new gen cpus 12:08 < bridge> get just 2 ram sticks 12:08 < bridge> at max u can 12:08 < bridge> idk why 4 sticks its a big problem and u need to tinker 12:08 < bridge> with timings 12:08 < bridge> unless u dont run the high speed 12:09 < bridge> well idk its just my personal xp 12:09 < bridge> apparently its not plug and play 12:09 < bridge> its plug and pray 12:09 < bridge> igot 6000mhz but the cpu theorically uses 5400 mhz iirc 12:10 < bridge> Is it actually supported? I would be surprised if they said its supported but it isn't 12:10 < bridge> https://www.reddit.com/r/Amd/comments/159xoao/stable_128gb4x32gb_ddr56000_cl30_on_agesa_1007b/ 12:10 < bridge> look the work this guy did 12:10 < bridge> to get this shit working 12:10 < bridge> The problem is quite obvious. 6000MHz is an insane speed, I can imagine it's very very difficult to hit the timings at that speed 12:11 < bridge> ye it hits some limits 12:11 < bridge> However if they say it's supported, it's weird because those traces are laser tuned to be perfect 12:12 < bridge> > DDR5 6000 MT/s at dual channel = 96000 MiB/s or 93.75 GiB/s theoretical maximum memory bandwidth / speed. [ 3000 MHz DRAM clock speed * 2 (for double data rate or DDR) * 8 byte wide bus width (IMC to DRAM bus on x86-64 architecture) * 2 (if you're running dual channel) = 96000 MiB/s ] 12:12 < bridge> > Your DDR5-6000 setup brings read speed at ~83.45% and write at ~89.8% speed of the maximum possible bandwidth. 12:12 < bridge> > 12:12 < bridge> > Generally the effective (practical) speed should be close to around 92% to 98% of the 93.75 GiB/s, if not pretty close. But it isn't. 12:12 < bridge> > 12:12 < bridge> > Basically, the actual write speed of your setup is close to DDR5-5400 and read is close to DDR5-5000. It means there isn't any reason to run at DDR5-6000 if you're not getting any extra bandwidth over lower speed or significant latency improvement. 12:12 < bridge> > 12:12 < bridge> > I'm not familiar with Zen based systems, but it looks like there is bottleneck somewhere, either the IMC is not fast enough, or the cores of Zen 4 aren't fast enough for that DRAM speed, or may be the Aida64 has got some problem with Zen 4. 12:12 < bridge> Don't you get more throughput with 4 RAM sticks if CPU and MB support quad-channel? 12:12 < bridge> > 4 DIMMs will always lose performance versus 2 on a dual channel system, it's a consequence of the IMC needing to handle multiple signals with different trace lengths (due to daisy chain). Particularly since these are 32gb DIMMs, ie dual-rank. 12:13 < bridge> i never seen quad channel 12:13 < bridge> Interesting 12:14 < bridge> Oh it's 6000 MT/s not 6000 MHz clocked dram 12:14 < bridge> I was a bit surprised at the insane speed 😄 12:14 < bridge> xd 12:15 < bridge> X99-A/USB 3.1, i7-5820k and 4x8GB RAM :justatest: 12:15 < bridge> :justatest: 12:15 < bridge> Asus X99-A/USB 3.1, i7-5820k and 4x8GB RAM :justatest: 12:15 < bridge> High speed signaling is truly wizardry. The things that get important at those speeds are just so unintuitive 12:15 < bridge> i got MSI X670E, 7900x3d and 2x16gb 12:16 < bridge> the simple upgrade for me is to get 2x32 12:16 < bridge> xd 12:16 < bridge> i dont wanna bother with 4 sticks 12:16 < bridge> Or run at 5600? 12:17 < bridge> idk xd 12:17 < bridge> I got 2 sticks later than the others even though they are the same model, that probably explains why one stick sometimes doesn't get detected until I increase the voltage a bit :pepeW: 12:17 < bridge> i never fiddled with voltages and stuff 12:17 < bridge> im scared to break stuff xd 12:40 < bridge> GELMEYENİN ANASINI SİKİM! https://discord.gg/chC6hJQYd5 12:40 < bridge> GELMEYENİN ANASINI SİKİM! https://discord.gg/chC6hJQYd5 12:40 < bridge> GELMEYENİN ANASINI SİKİM! https://discord.gg/chC6hJQYd5 12:41 < bridge> What? 13:10 < bridge> What? 13:22 < bridge> What? 14:27 < dede> someone know why i cantz install 1.81 14:27 < dede> showing me its a virus even if i turn defender off 14:28 * dede slaps heinrich5991 around a bit with a large fishbot 15:35 < bridge> the tee centipade 15:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1221105037661573251/Kepernyofelvetel_68.png?ex=66115db0&is=65fee8b0&hm=fdf38956a6f1afff10cf849cb7d2129c3eb3534a37f857709f5ddb46cc56a8a5& 16:36 < bridge> #showroom 17:25 < bridge> btop breaks if you run it during high load for a long time 17:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1221132640376062024/btop.png?ex=66117765&is=65ff0265&hm=991e6c35c7d1136f127aad5897ae12a3ed026626336da54d383e4c5827b110d7& 18:11 < bridge> lol 18:11 < bridge> nice 18:12 < bridge> i cant get the tunes to be correct for slowing down the game xd 18:13 < bridge> some of them apparently scale linearly and some dont 18:13 < bridge> also there is saturated add. i have no idea:pepeW: 18:17 < bridge> gravity 0.25 for example doesnt make the jump last twice as long when calculating the jump impulse to be the same height as when gravity 0.5 (default) 18:17 < bridge> i counted 28 ticks for 0.5 and 40 ticks for 0.25 (in the demo editor) 18:21 < bridge> ```c++ 18:21 < bridge> Tuning()->Set("ground_jump_impulse", (g + std::sqrt(g * (g + 1341.12))) / 2); 18:21 < bridge> Tuning()->Set("air_jump_impulse",(g + std::sqrt(g * (g + 1104.f))) / 2); 18:21 < bridge> ``` 18:21 < bridge> this is my function to calculate the jump impulses resulting in the default jump height based on the gravity 18:21 < bridge> this works. 18:21 < bridge> but how does gravity relate to the server tick speed? 18:22 < bridge> Gravity is applied to the velocity every tick 18:23 < bridge> Velocity then changes the position every tick, so the effect of gravity on position is quadratic 18:24 < bridge> https://open-source-eda-letter.eu/ 18:24 < bridge> ```cpp 18:24 < bridge> #include 18:24 < bridge> 18:24 < bridge> #define TICKS 50 18:24 < bridge> #define Gravity 0.5 18:24 < bridge> int main() { 18:24 < bridge> float pos = 0.f; 18:24 < bridge> float vel = 0.f; 18:24 < bridge> 18:24 < bridge> for (int i = 0; i < TICKS; ++i) { 18:24 < bridge> vel += Gravity; 18:24 < bridge> pos += vel; 18:24 < bridge> } 18:24 < bridge> 18:24 < bridge> std::cout << "pos: " << pos << std::endl; 18:25 < bridge> 18:25 < bridge> return 0; 18:25 < bridge> } 18:25 < bridge> ``` 18:25 < bridge> made a little minimal example to try out on godbolt 18:25 < bridge> robyt yea thats correct 18:25 < bridge> so just so i just use (1/2)v²? 18:38 < bridge> ```cpp 18:38 < bridge> #include 18:38 < bridge> 18:38 < bridge> #define TICKS 50 18:38 < bridge> #define GRAVITY 0.5f 18:38 < bridge> 18:38 < bridge> float predict() { 18:39 < bridge> // s = (1 / 2) *​ g * (t * t) 18:39 < bridge> return 0.5f * GRAVITY * TICKS * TICKS; 18:39 < bridge> } 18:39 < bridge> 18:39 < bridge> int main() { 18:39 < bridge> float pos = 0.f; 18:39 < bridge> float vel = 0.f; 18:39 < bridge> 18:39 < bridge> for (int i = 0; i < TICKS; ++i) { 18:39 < bridge> vel += GRAVITY; 18:39 < bridge> pos += vel; 18:39 < bridge> } 18:39 < bridge> 18:39 < bridge> std::cout << "pos: " << pos << std::endl; 18:39 < bridge> std::cout << "prediction: " << predict() << std::endl; 18:39 < bridge> 18:39 < bridge> return 0; 18:39 < bridge> } 18:39 < bridge> 18:39 < bridge> ``` 18:39 < bridge> hmm.. why is this not the same? 18:39 < bridge> output: 18:39 < bridge> ``` 18:39 < bridge> pos: 637.5 18:39 < bridge> ```cpp 18:39 < bridge> #include 18:39 < bridge> 18:39 < bridge> #define TICKS 50 18:39 < bridge> #define GRAVITY 0.5f 18:39 < bridge> 18:39 < bridge> float predict() { 18:40 < bridge> // h = (1 / 2) *​ g * (t * t) 18:40 < bridge> return 0.5f * GRAVITY * TICKS * TICKS; 18:40 < bridge> } 18:40 < bridge> 18:40 < bridge> int main() { 18:40 < bridge> float pos = 0.f; 18:40 < bridge> float vel = 0.f; 18:40 < bridge> ```cpp 18:40 < bridge> #include 18:40 < bridge> 18:40 < bridge> #define TICKS 50.0f 18:40 < bridge> #define GRAVITY 0.5f 18:40 < bridge> 18:40 < bridge> float predict() { 18:40 < bridge> // h = (1 / 2) *​ g * (t * t) 18:40 < bridge> return 0.5f * GRAVITY * TICKS * TICKS; 18:40 < bridge> } 18:40 < bridge> 18:40 < bridge> int main() { 18:40 < bridge> float pos = 0.f; 18:40 < bridge> float vel = 0.f; 18:40 < bridge> 18:40 < bridge> for (int i = 0; i < TICKS; ++i) { 18:40 < bridge> vel += GRAVITY; 18:40 < bridge> pos += vel; 18:40 < bridge> } 18:40 < bridge> 18:41 < bridge> std::cout << "pos: " << pos << std::endl; 18:41 < bridge> std::cout << "prediction: " << predict() << std::endl; 18:41 < bridge> 18:41 < bridge> return 0; 18:41 < bridge> } 18:41 < bridge> 18:41 < bridge> ``` 18:41 < bridge> hmm.. why is this not the same? 18:41 < bridge> output: 18:41 < bridge> ``` 18:41 < bridge> pos: 637.5 18:42 < bridge> what if you invert vel += and pos += ? 18:42 < bridge> i get 612.5 18:43 < bridge> just as if id iterate one less 18:43 < bridge> you mean switching the lines? 18:43 < bridge> yes 18:43 < bridge> ok 18:44 < bridge> gpt isnt a help either 18:47 < bridge> ok i just looked at what heinrich said yesterday seems like it should be 18:47 < bridge> `return 0.5f * GRAVITY * TICKS * (TICKS - 1.f)` 18:47 < bridge> wouldnt you need to calculate gravity * ticks? 18:47 < bridge> ye 18:48 < bridge> but just doing `vel += GRAVITY * TICKS;` should do the trick 18:48 < bridge> or +1 depending on the order 18:48 < bridge> thats not what i want xd 18:49 < bridge> should also be pos += vel * t 18:50 < bridge> okay g = 1275/(t*(t+1)) 18:50 < bridge> this is the answr 18:50 < bridge> cool 18:51 < bridge> so you're not using the actual physical model of gravity, but your own? :D 18:52 < bridge> the one of teeworlds xD 18:52 < bridge> oh wait this is for teeworlds? why tf are you using std::cout 18:52 < bridge> :justatest: 18:52 < bridge> just a minimal example 18:52 < bridge> chill 18:52 < bridge> XD the moment i saw you using std::cout i thought this is for something else so i wondered, no worries lol 18:54 < bridge> i wonder why teeworlds uses g = 1275 instead of g = 9.81, would it mess something up? why arent we using generalized things 18:54 < bridge> has anyone played around with c++23 modules? asking for a friend :justatest: 18:54 < bridge> thats like a math question where someone says "calculate with pi = 3" 18:54 < bridge> i did try out the export module stuff a bit 18:55 < bridge> did u use `import std;` 18:58 < bridge> ye, worked like a charm 18:58 < bridge> Which compiler? 18:58 < bridge> MSVC 18:58 < bridge> Okay, gcc and clang still don't support it afaik 18:58 < bridge> windows detected, opinion rejected :feelsbadman: 18:58 < bridge> `import std;` that is 18:59 < bridge> Hopefully by gcc 15... 18:59 < bridge> Not that I really like modules, I don't view headers as a problem to begin with 18:59 < bridge> i use nixOS btw, ( in wsl2 that is, until i figure out how to single GPU passthrough correctly) 19:00 < bridge> i spent half of day triyng to make import std work and it doesn't work :feelsbadman: 19:00 < bridge> well using "import std" removes unneccessary boilerplate in including every library on their own, for example you dont need to import vector, and iostream, you can just include stdf 19:00 < bridge> well using "import std" removes unneccessary boilerplate in including every library on their own, for example you dont need to import vector, and iostream, you can just import std 19:00 < bridge> i just looked it up, it seems yet to be only functional using MSVC 19:01 < bridge> i wanted to make my program in c++23 but doens't seem like a good idea :\ 19:02 < bridge> g = 0.5 19:02 < bridge> 💀 19:02 < bridge> 1275 is just a factor that came out while doin the math 19:02 < bridge> just use c++21, c++23 is still not completly riped out, so i've read 19:02 < bridge> :MonkaS: 19:03 < bridge> any way i was stupid. that function cant work 19:04 < bridge> trying to replicate real world physics would lead to a game not called teeworlds 19:04 < bridge> non credible physics is what makes the game fun 19:04 < bridge> when irl hammer fly :justatest: 19:04 < bridge> come over we try 19:04 < bridge> hookfly 19:56 < bridge> where does the data for $points come from? 19:59 < bridge> https://ddnet.org/players/?json2=melo%C6%9E 20:00 < bridge> or so i thought, bot doesnt seem to display my points correctly.. 20:00 < bridge> no 20:00 < bridge> this doesnt have historical data 20:01 < bridge> `query = 'SELECT timestamp, points FROM stats_finishes WHERE name = $1 ORDER BY timestamp;'` this is what i found in code 20:03 < bridge> but it doesnt explain anything 20:41 < bridge> i found a weird mismatch: 20:41 < bridge> 20:41 < bridge> 20:41 < bridge> the german translation translates Antiping = Anti-Ping, the entire segment uses Localize "AntiPing: predict *", why are weapons and grenade path not "translated" ? 20:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1221181988753510420/image.png?ex=6611a55a&is=65ff305a&hm=dfa60b83e37aa56b3c2af58996cbf5ae3875fae3aea9e475e22def09d9847e6d& 20:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1221181989122474144/image.png?ex=6611a55a&is=65ff305a&hm=41088641f2ffb65342cc6281c562c07861094334cd14befdd90bb1039b9eff22& 20:44 < bridge> im guessing the translations were done at different times by different people 20:48 < bridge> the newer stuff without translations always ends up at the bottom of the file so its easy to lose context 20:48 < bridge> not very practical 🤷‍♀️ 20:49 < bridge> git blame doesnt even tell me for some god forsaken reason >:c 20:50 < bridge> could we specify AntiPing to be a Proper name that we dont translate? or should we stick with Anti-Ping? 20:51 < bridge> 🤷‍♂️ 20:51 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1221184524851871754/image.png?ex=6611a7b7&is=65ff32b7&hm=dd7c5aea08b3d5f052133f65395bd57357560d1e36c5ebef26daeacfc36ed522& 20:51 < bridge> "translating" it to Anti-Ping seems odd 20:51 < bridge> nvim trolling gg 20:51 < bridge> translating a game like ddnet feels weird 20:52 < bridge> imagine saying kukła instead of dummy 20:52 < bridge> i agree, lets keep it german. 20:52 < bridge> big improvements 🚀 20:52 < bridge> :kek: 20:58 < bridge> another improvement by Melon senpai 😍 😍 😍 20:59 < bridge> :simp: 20:59 < bridge> 😄 21:08 < bridge> Chiller i love how you got bombarded with "wrongs" on #8141 - scrolling to each requested change made me giggle a little more :kek: 21:08 < bridge> https://github.com/ddnet/ddnet/pull/8141 22:44 < bridge> I'm sorry but who thought formatting code with sed is a good idea? 22:45 < bridge> especially c++