02:30 < ws-client> @ryozuki i did not find your neovim config on github :C Do you have some lsp settings for ddnet? So it doesn't get confused with include paths 09:07 < bridge> using clangd You Just define the clangd path in your Compiler Flags for the LSP to be Happy 09:37 < bridge> Or just use Mason and everything just works :gigachad: 10:02 < bridge> Yuzu got discontinued 10:02 < bridge> Rip 10:02 < bridge> i want my 7900x3d already 10:02 < bridge> will make llvm dev easier 10:04 < bridge> U still don't have it? 10:05 < bridge> i orderered the whole thing without gpu and m2 and have it built 10:05 < bridge> ill get it by end of month 10:05 < bridge> i was lazy and have money so 10:05 < bridge> xd 10:06 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214499181444726794/image.png?ex=65f95581&is=65e6e081&hm=090ea9e57cccfc65d9bf96836a4dab191f901bd77bc5828d3c3ca34a507d860f& 10:06 < bridge> here i am once again building llvm 10:06 < bridge> I never really liked how they were semi-paywalled 10:06 < bridge> i dont like nintendo 10:06 < bridge> or derivatives 10:07 < bridge> Probably why they folded so quick. Making money off of emulators is a no no 10:07 < bridge> the console has 0 appeal 10:07 < bridge> ppl only use it cuz its a walled garden 10:07 < bridge> The appeal is the exclusives 10:07 < bridge> i laugh at 30 fps gamers 10:07 < bridge> in 2024 10:07 < bridge> If nintendo released their games on other consoles too no one would prefer a switch 10:08 < bridge> and they laugh at their customers 10:08 < bridge> with those graphics 10:08 < bridge> did u see the pokemons 10:08 < bridge> lmao 10:08 < bridge> billions of $$ and that 10:08 < bridge> I never quite understood it too 10:08 < bridge> They should have just used Patreon as a way to fund development 10:08 < bridge> and not for early access to new stuff 10:09 < bridge> I honestly don't agree with this being an issue. For me if it looks fluid it's fine. Movies are 24fps and we don't complain about that either 10:09 < bridge> @scrumplex btw im using prism, any modpack u recommend? preferably on modrinth since it seems free software 10:09 < bridge> i thought of trying these 10:09 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214499960951803985/image.png?ex=65f9563b&is=65e6e13b&hm=3496dedb128b6a4e8d3c64587c5d3548d571c6382d23f63eade4ef01e09026f9& 10:09 < bridge> At least people were redistributing the early access code as it's G:PLed 10:09 < bridge> At least people were redistributing the early access code as it's GPLed 10:09 < bridge> https://github.com/pineappleEA/pineapple-src 10:09 < bridge> for me its a big issue, i need the smooth 10:09 < bridge> I usually make my own xD 10:10 < bridge> i dont think i will make my own xd 10:10 < bridge> But movies are not interactive 10:10 < bridge> i like the kitchen sink stuff 10:10 < bridge> like sky factory 2 10:10 < bridge> I think it's more about input latency than FPS, but those two are correlated 10:10 < bridge> Should probably archive all these repos. Recently I've been noticing governments and companies can actually disappear stuff off the internet 10:10 < bridge> ill mirror that on my forgejo instance 10:10 < bridge> Nintendo could probably take this repo down 10:11 < bridge> Do you feel movies aren't smooth? Input lag is indeed a far more annoying phenomenon 10:11 < bridge> @scrumplex btw im hosting forgejo feel free to use it https://git.edgarluque.com/explore/repos 10:11 < bridge> Careful. Don't get nintendo'd 10:11 < bridge> IMO movies being 24fps is fine enough 10:11 < bridge> ill make it private maybe 10:12 < bridge> YouTube videos being 30 FPS or 60 FPS is fine. I think fast paced stuff is better if it's 60 FPS, but it's not like I'll complain 10:12 < bridge> doubt they can disappear something so popular 10:12 < bridge> But games have to be at least like 40-50 FPS for me 10:12 < bridge> But I also think stable framerates are much more important than high framerates 10:13 < bridge> like 150 FPS with 1% lows at 60 is much more annoying than a stable 60 FPS 10:13 < bridge> A couple weeks ago I played a bit of gta san andreas for a bit of nostalgia. The game is locked to 25fps. I did not even think about it until right now since we are talking about it 10:13 < bridge> Because the game has exquisite frame pacing, it just feels good 10:13 < bridge> But GTA SA isn't really a face paced game 10:13 < bridge> did u play with mta 10:14 < bridge> But GTA SA isn't really a fast paced game 10:14 < bridge> I'm sure it'd feel worse the faster paced the game is, but mario isn't exactly a twitch shooter 10:14 < bridge> yeah 10:14 < bridge> Yep 10:14 < bridge> Though I did always notice how choppy Animal Crossing was on the Switch. Even though it's a very slow and cozy game 10:14 < bridge> What, that confuses me even more. U have ur CPU already? 10:15 < bridge> I think the low framerates are more annoying with games like Zelda 10:15 < bridge> I also played through hollow knight on my switch. The 30 fps didn't really bother me that much there either. Though the input does feel less responsive than on pc, I'd be lying if I said I did not get used to it almost instantly 10:15 < bridge> i dont? xD thats why isaid i wish i had it 10:15 < bridge> Again, not very fast paced, but because it has combat I think the low framerates might be annoying 10:16 < bridge> @jupeyy_keks i ordered to have my pc built 10:16 < bridge> i got new case and stuff 10:16 < bridge> I c 10:16 < bridge> Unepyc moment 10:16 < bridge> Though I might have a higher tolerance to lag than the average person. I played games with 90 ping for most my life 😄 10:16 < bridge> but i ordered it without gpu or m2 10:16 < bridge> what are the specs? :O 10:16 < bridge> sec 10:17 < bridge> this + a nvidia 3080 and my m2 ssds 10:17 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214501973643235348/image.png?ex=65f9581a&is=65e6e31a&hm=e7acce50d4fa6b6c479780371fbb72ec7d28a42ff27fd8ca583c752c0678b25d& 10:17 < bridge> I'd argue it heavily depends on the game. 10:17 < bridge> Teeworlds/DDNet at 90 ms? HELL NO 10:17 < bridge> Minecraft at 90 ms? Fine enough 10:17 < bridge> i got the case big enough for a 4090 10:17 < bridge> Ez 10:17 < bridge> i dont recognize the first three brands 👀 10:18 < bridge> If I'm honest with u, it's a weird time to buy high end 10:18 < bridge> 300€ mobo xd 10:18 < bridge> smth happened and i got quite big spare cash 10:18 < bridge> I played tw with 90ms for a very long time. Until Turkey got good peerings with the EU. It is indeed annoying 10:18 < bridge> lets say smth like a extra pay xd 10:18 < bridge> And it was before antiping was a thing 10:18 < bridge> In q3 new gen comes 10:18 < bridge> then ill buy it 10:18 < bridge> I think if you have consistent 90ms with anti ping you should be fine for the most part 10:18 < bridge> :gigachad: 10:19 < bridge> well ill wait until more revisions come 10:19 < bridge> Epyc rich moment 10:19 < bridge> first batch always has issues 10:19 < bridge> Lmao 10:19 < bridge> The hardest part was catching falling tees before antiping. I couldn't play for a while after the internet got better since I was leading my aim so much 10:19 < bridge> Apple already beta tested 3nm 10:19 < bridge> I don't agree with your choice of cooler. Arctic released their new Liquid Freezer 3 recently and it's the best cooler full stop. Like it's cheaper than most competitors AND performs the best regarding cooling as well as noise 10:20 < bridge> I feel this. I don't use Anit Ping because I am trained for 30ms ping 10:20 < bridge> I feel this. I don't use Anit Ping because I am trained for 20-30ms ping 10:20 < bridge> oh lol its ok i didnt rly look into it much, as long as it cools 10:20 < bridge> I feel this. I don't use Anti Ping because I am trained for 20-30ms ping 10:20 < bridge> wanted to try a liquid cooling since it makes the pc look prettier 10:20 < bridge> but i think its the same as air cooling 10:21 < bridge> Yep, I still don't use it exactly for that reason 10:21 < bridge> IMO it's nicer to work with, because if you ever need to reach your RAM or anything else that's close to the CPU a big air cooler is always in the way 10:21 < bridge> yeah 10:21 < bridge> IMO a liquid cooler nicer to work with, because if you ever need to reach your RAM or anything else that's close to the CPU a big air cooler is always in the way 10:21 < bridge> and its close to the gpu sometimes 10:21 < bridge> IMO a liquid cooler is nicer to work with, because if you ever need to reach your RAM or anything else that's close to the CPU a big air cooler is always in the way 10:21 < bridge> but i think this case allows vertical gpu or smth 10:22 < bridge> When I get some money and time on my hand, I'm definitely doing hard tubing liquid cooling. It looks so cool 10:22 < bridge> Sadly my water cooler's pipes hug the GPU so if I ever want to take out my GPU, I need to take out my CPU cooler 10:22 < bridge> damn 10:22 < bridge> Custom loop? 10:22 < bridge> front mounted the radiator with the pipes coming out at the bottom of the case (so the air bubbles get trapped in the radiator, far away from the pipes 10:22 < bridge> nah 10:22 < bridge> the cool thing is, ill have a 2nd home pc! 10:22 < bridge> with a ryzen 5800x kek 10:22 < bridge> I have a noctua nh-d14. I can't do anything in my case without removing it. So annoying 10:23 < bridge> Even when using Mason, clangd didnt find Std Headers for me when i used cmake :feelsbadman: 10:23 < bridge> Make a ddnet tournament, the winner gets the pc 10:23 < bridge> lol no xd 10:23 < bridge> i dont even play ddnet 10:23 < bridge> Too baf 10:23 < bridge> Bad 10:23 < bridge> baf baf 10:24 < bridge> https://tenor.com/view/cat-cats-cat-meme-meme-meme-cat-gif-14470917232397934693 10:24 < bridge> Bam mentioned 10:24 < bridge> this cat looks like me looking at C and python coders 10:24 < bridge> Wtf. I'm taking your dev role 10:24 < bridge> lol no xd 10:24 < bridge> i play like maybe to talk to ppl 10:24 < bridge> once a week 10:24 < bridge> Ok good 10:24 < bridge> I play it almost every day 10:24 < bridge> also i got a pr merged a week ago! 10:24 < bridge> im a active dev 10:24 < bridge> Best game 10:24 < bridge> :owo: 10:25 < bridge> @jupeyy_keks i know its the best game, but i feel i dont have like a partner to play with a lot 10:25 < bridge> When hostile 3 2p ? Im on at 16:00 :gigachad: 10:25 < bridge> Actually one reason I play it every day is, that it starts in one second 10:25 < bridge> When hostile 3 2p ? Im on at 16:00 UTC+2 :gigachad: 10:25 < bridge> xd 10:25 < bridge> Most games are horrible loading wise 10:25 < bridge> well it doesnt have much to load lets be real 10:25 < bridge> Best reason 😬 10:26 < bridge> KISS 10:26 < bridge> No man's Sky and destiny 2 silently hoping they dont get mentioned 10:26 < bridge> gta 5 online 10:26 < bridge> kek 10:26 < bridge> Ikr. Performance is everything 10:26 < bridge> :kek: 10:26 < bridge> Lmao 10:26 < bridge> I hate this shit so much 10:26 < bridge> I play while I'm in queue for league 10:26 < bridge> ew 10:26 < bridge> :ban: 10:26 < bridge> does league have long queues 10:26 < bridge> the situation reversed 10:26 < bridge> Oh yea, u have seen my 5fps crap 😏 10:26 < bridge> i find fast in dota 10:26 < bridge> When I play with my friends yes. Our ranks are too far apart 10:27 < bridge> do u have friends? 10:27 < bridge> get out 10:27 < bridge> U already quintupled it 10:27 < bridge> Nice 10:27 < bridge> 10:27 < bridge> :sadge: 10:27 < bridge> brb making coffee 10:27 < bridge> Rn i go over all tiles 10:27 < bridge> Send Pics of fishies 10:27 < bridge> I have to start working again in 3 Minutes 10:27 < bridge> God Help me 10:28 < bridge> I think i can apply some mafs to loop only over elements in view 10:28 < bridge> @learath2 do u drink coffee with milk or not 10:28 < bridge> if so how much % of milk 10:28 < bridge> My PC 10:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214504909190471680/1f0d8f04-ade6-443f-901f-d6fc1235eb36.jpg?ex=65f95ad6&is=65e6e5d6&hm=890e9ed119e1ae1b5b4cb63801b9c1979a7eb1ca94dfa6de2636c566e0e3adff& 10:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214504909664165888/de72b071-109f-4aee-accc-923c53d25b8f.jpg?ex=65f95ad6&is=65e6e5d6&hm=d427fca3a665d812d2bd6133e402e251a2e7b8a3a42ee902a987dd68041476ea& 10:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214504910092242974/66139dc4-08c2-416b-ba46-5af9a729cb58.jpg?ex=65f95ad6&is=65e6e5d6&hm=0bfa37eea8748b54f1796ecc2d3c9a20f4f696be2340a69343b420d669579d4f& 10:29 < bridge> Coffee -> #off-topic 10:29 < bridge> Tea -> #developer 10:29 < bridge> I'll usually have it with no milk at home. But sometimes I enjoy a latte 10:29 < bridge> Hot 10:29 < bridge> I am honestly not quite happy with my liquid cooler mount 10:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214505257673953330/PXL_20240305_092939620.jpg?ex=65f95b29&is=65e6e629&hm=246cf872f6f74a98207c30c50f9e6fa9b790528f82a2c141b9d815130c645148& 10:30 < bridge> The fans are blowing onto the radiator from the front of the case. Which means all the dust gets pushed into the radiators 10:30 < bridge> The fans are blowing onto the radiator from the front of the case. Which means all the dust gets pushed into the radiator 10:30 < bridge> I like my latte about 30-35% milk, but it's a subjective thing 10:30 < bridge> same more coffee than milk 10:30 < bridge> And it depends on the coffee. Darker roasts can tolerate more milk before you lose the flavors 10:31 < bridge> lols non gamer 10:31 < bridge> looks* 10:31 < bridge> i disabled all the rgb 10:31 < bridge> Coffee addiction is the weirdest majority human thing 10:31 < bridge> btw im a gamer and i spilled coffee on my old 200€ keyboard 10:31 < bridge> but i got a new one 10:31 < bridge> corsair k70 10:31 < bridge> are those 2 dacs? 10:32 < bridge> tbh the liquid cooling doesnt look cool there 10:32 < bridge> Why? It's a relatively harmless stimulant that's completely legal. It'd be more weird if a majority of people didn't use it 10:32 < bridge> and noctua being noctua with the color xd 10:32 < bridge> dac and amp 10:32 < bridge> nice 10:32 < bridge> it was a leftover from my previous case xD 10:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214505978607833088/PXL_20240305_093257279.jpg?ex=65f95bd5&is=65e6e6d5&hm=33502c37177b78c03abc82cb6e0a8a87c8ae9eab44fa708b3a8a74fd0c81497a& 10:33 < bridge> :owo: 10:33 < bridge> Yeah I think I'd have to flip it for it be okay. But then I might get dripping noises over time 10:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214506081603166258/2024-03-05-10-32-25-278.jpg?ex=65f95bee&is=65e6e6ee&hm=8fe0b4c4bb690c2669f0d521843090a885231800e0a571e219bcfb157758369c& 10:33 < bridge> unfiltered view of my desk 10:33 < bridge> usually i would clean up a little before taking a picture xD 10:34 < bridge> my setup 10:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214506250373693440/PXL_20240304_093728447.png?ex=65f95c16&is=65e6e716&hm=96e275d516b4e6c0cfbcc18f9cf48a0a2b998831a4cc4ef351666e8d870dd6c7& 10:34 < bridge> i need a ferris plushie 10:34 < bridge> Why are your desks so clean wtf 10:35 < bridge> why is yours not lol 10:35 < bridge> xd 10:35 < bridge> gotta e a refined gamer 10:35 < bridge> I'm unsure whether I should show you mine so you can judge me 10:35 < bridge> kek 10:35 < bridge> Before anyone calls me out on it: that macbook on the right is from work 🤮 10:36 < bridge> The state of this desk is unmanageable 10:36 < bridge> i also got a m1 from work 10:36 < bridge> same 10:36 < bridge> but I want a Linux notebook :(( 10:36 < bridge> I hate macOS' window management 10:36 < bridge> how can u live with small keyboards 10:36 < bridge> i cant 10:36 < bridge> and keyboard shortcuts 10:36 < bridge> i need 100% 10:36 < bridge> or 110% 10:36 < bridge> At least I got my framework hiding next to me in the shelf 10:37 < bridge> The only problems I have with this is pressind F1-F12 and a number at once 10:37 < bridge> like in Minecraft to do some debugging stuff (I can't do F3+3 for example) 10:37 < bridge> xD 10:37 < bridge> The only problems I have with this is pressing F1-F12 and a number at once 10:38 < bridge> Also ~ is a bit annoying 10:38 < bridge> I bound it to Fn+Esc 10:38 < bridge> or rather Fn+Shift+Esc for ~ and Fn+Esc for ` 10:38 < bridge> also Home/End is a little annoying (Fn+PgUp/PgDown) 10:38 < bridge> but besides that. I am quite happy with this 10:39 < bridge> pains 10:39 < bridge> but besides that, I am quite happy with this 10:39 < bridge> do you really need a numpad though? :O 10:39 < bridge> i like it 10:39 < bridge> i used it in blender 10:41 < bridge> Here judge me 10:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214507977332232202/20240305_103938.jpg?ex=65f95db2&is=65e6e8b2&hm=33f17ebc76341663e894c2468c207e05f7d655159502b74ba047d5db8b41b5ca& 10:41 < bridge> I dunno. It smells like shit. Coffee machines are expensive and often break. They get pretty uncomfortable without their coffee. Coffee itself only grows on very few places in the world. 10:41 < bridge> 10:41 < bridge> It's just weird that so many ppl like it ( for me) 10:41 < bridge> not bad 10:41 < bridge> nice lamp xd 10:41 < bridge> same mouse? also whats that keyboard 10:42 < bridge> Nice Rubik's cubes 10:42 < bridge> filthy anime user! 10:42 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214508258065129512/image.png?ex=65f95df5&is=65e6e8f5&hm=2ec2b8e452371be544ff5fddafad167565e55e5fb9594cf34e2388057d1c0907& 10:42 < bridge> looks okay to me 10:42 < bridge> Smells like shit is the issue. Most people would disagree with you on that one 10:42 < bridge> i like coffee smell 10:42 < bridge> lmao 10:42 < bridge> Coffee smell goos 10:42 < bridge> It's a leopold fc660m. So nice to have arrows in a 60% 10:42 < bridge> Coffee smell good 10:42 < bridge> And gives bad breath 10:42 < bridge> Tea yummier though 10:43 < bridge> like if you want something that keeps you awake, black tea can also do the jon 10:43 < bridge> like if you want something that keeps you awake, black tea can also do the job 10:43 < bridge> I only drink herb tea. Without coffeine 10:43 < bridge> I wonder if I can still solve them. It's been a while since I was interested in them 10:43 < bridge> The cup you can see on my desk is fennel tea 10:44 < bridge> I am such a tea snob that I bought 1kg of fennel seeds that I grind myself and brew tea with 10:44 < bridge> But tbh I generally only drink tea in winter, if at all 10:44 < bridge> Water is best 10:44 < bridge> Water is just so amazing 10:44 < bridge> Tea is so good too. Especially some pu'er tea :chefsKiss: 10:44 < bridge> i have a coworker that cooks the coffee beans or smth i forgot word 10:44 < bridge> It's the best refresh 10:44 < bridge> i assume roast? :o 10:44 < bridge> ye 10:45 < bridge> xd 10:45 < bridge> Drinking 500ml water at once feels amazing 10:45 < bridge> Like u clean your body 10:45 < bridge> I use one of these things to grind my seeds: 10:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214509113761857577/HI2liQr.png?ex=65f95ec1&is=65e6e9c1&hm=7e37b515fe5e48cf49aac8463e3730e294048ef0eb0d552845a855f6ba2c7b76& 10:45 < bridge> I feel like someone who smokes weed 10:45 < bridge> sure to grind seeds bro 10:45 < bridge> :biggest_abuser_and_weed_user: 10:45 < bridge> I use one of these things to grind my fennel seeds: 10:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214509113761857577/HI2liQr.png?ex=65f95ec1&is=65e6e9c1&hm=7e37b515fe5e48cf49aac8463e3730e294048ef0eb0d552845a855f6ba2c7b76& 10:45 < bridge> My turkish genes compel me to always drink tea. Even if it's 40degC outside, I'll have atleast my breakfast tea and afternoon tea 10:45 < bridge> Lmao 10:46 < bridge> thats called a grinder 10:46 < bridge> Wow tea in summer is a skill ngl 10:46 < bridge> I'd probably just die 10:47 < bridge> turkish (and arabic) tea hits hard ngl 10:47 < bridge> Also, the coins I hoarded are the biggest issue. I can't get rid of them because my bank branch doesnt have a coin machine :pepeW: 10:47 < bridge> i feel like i need a anime figure or smth now 10:48 < bridge> i will buy a frieren one 10:48 < bridge> and pray 10:48 < bridge> https://tenor.com/view/burger-eating-frieren-frieren-beyond-journey%27s-end-sousou-no-frieren-gif-13425073513713719938 10:48 < bridge> I used to avoid all anime things. Then I noticed I'm dying alone either way, might aswell enjoy my hobbies 10:48 < bridge> just hide it if someone comes kek 10:48 < bridge> :justatest: 10:49 < bridge> No one comes. No one will come. So that's a non issue 10:49 < bridge> not like anyone comes 10:50 < bridge> llvm compiled finally 10:50 < bridge> :Celebrate: 10:50 < bridge> ``` 10:50 < bridge> ❯ ./bin/llvm-lit tools/mlir/test/CAPI/ 10:50 < bridge> -- Testing: 10 tests, 10 workers -- 10:50 < bridge> PASS: MLIR :: CAPI/quant.c (1 of 10) 10:50 < bridge> PASS: MLIR :: CAPI/pdl.c (2 of 10) 10:50 < bridge> PASS: MLIR :: CAPI/transform_interpreter.c (3 of 10) 10:50 < bridge> PASS: MLIR :: CAPI/transform.c (4 of 10) 10:50 < bridge> PASS: MLIR :: CAPI/sparse_tensor.c (5 of 10) 10:50 < bridge> PASS: MLIR :: CAPI/llvm.c (6 of 10) 10:50 < bridge> PASS: MLIR :: CAPI/translation.c (7 of 10) 10:50 < bridge> PASS: MLIR :: CAPI/pass.c (8 of 10) 10:51 < bridge> PASS: MLIR :: CAPI/ir.c (9 of 10) 10:51 < bridge> PASS: MLIR :: CAPI/execution_engine.c (10 of 10) 10:51 < bridge> 10:51 < bridge> Testing Time: 0.26s 10:51 < bridge> 10:51 < bridge> Total Discovered Tests: 10 10:51 < bridge> Passed: 10 (100.00%) 10:51 < bridge> ``` 10:51 < bridge> atleast they got nice testing tools 10:51 < bridge> llvm-lit 10:51 < bridge> its lit 11:07 < bridge> She has such a juicy ass 11:07 < bridge> Fuck you can jerk off here - https://discord.gg/33dcJZS2 11:25 < bridge> hey! I wanted to visit you one day 11:25 < bridge> is it you who keeps sabotaging that? :p 11:30 < bridge> ```cpp 11:30 < bridge> MlirAttribute compile_unit = 11:30 < bridge> mlirLLVMDICompileUnitAttrGet(ctx, id, 0x1C, file, foo, false, 0x1); 11:30 < bridge> 11:30 < bridge> // CHECK: #llvm.di_compile_unit, sourceLanguage = 11:30 < bridge> // DW_LANG_Rust, file = <"foo" in "bar">, producer = "foo", isOptimized = 11:30 < bridge> // false, emissionKind = Full> 11:30 < bridge> mlirAttributeDump(compile_unit); 11:30 < bridge> ``` 11:30 < bridge> obviously the test i add to llvm would mention rust 11:52 < bridge> :monkaS: 11:56 < bridge> when i ever meet cyberFighter I'll ride to him with a horse 11:56 < bridge> have you tried paying ppl to come to you? 11:58 < bridge> That's the lamest thing I've ever heard 11:58 < bridge> still sounds more sane than getting depressions for being alone 11:59 < bridge> Then you'll be depressed for being lame. There is no out 12:00 < bridge> xDD 12:10 < bridge> u can pay them to play starkiller maps with you 12:23 < bridge> new llvm pr https://github.com/llvm/llvm-project/pull/83992 12:27 < bridge> the legend strikes again, epyc 12:28 < bridge> and it's so much less laggy, holly 12:28 < bridge> Just invite us all - im down :owo: 12:44 < bridge> already got texture support? 12:44 < bridge> no but it feels so good 12:45 < bridge> to not render 300k tiles each time 12:45 < bridge> xd 12:45 < bridge> but it still laggy asf when zoom out :feelsbadman: 12:45 < bridge> that won't go away with your approach 12:46 < bridge> it's ok with 2-3k but higher is joe over 12:46 < bridge> how does ddnet render tiles? :owo: 12:46 < bridge> it buffers all tiles in GPU memory. 12:46 < bridge> 12:46 < bridge> so they are not built on fly 12:47 < bridge> 12:47 < bridge> additionally there is not 1 draw call for every tile, instead for a whole tile row 12:47 < bridge> i didnt even know that shaders have macros :justatest: 12:47 < bridge> yeah GLSL is c like 12:52 < bridge> @milkeeycat you should try to make a renderer using geometry shaders and then do a mix out of ddnet's approach and patiga's approach. 12:52 < bridge> 12:52 < bridge> i really wonder how well a GPU can spawn vertices vs the CPU creating draw calls of existing vertices (but having to do it row by row) 12:52 < bridge> so basically patigatus21's twgpu does everything on the GPU 12:53 < bridge> but he does most stuff on the fragment shader 12:53 < bridge> this code is already patiga's twmap + ddnet graphics + my js glue to make it work 12:53 < bridge> :justatest: 12:53 < bridge> xdd 12:55 < bridge> oh and libtw2 12:55 < bridge> ❤️ 12:56 < bridge> when libtw1 😬 12:56 < bridge> teeworlds 1.0 release 12:56 < bridge> 12:56 < bridge> chiller's wet dream 13:34 < bridge> pls go back to "patiga" 😅 13:37 < bridge> btw I revisted my tilemap renderer, and optimized it quite aggressively. iirc, it might be 5x faster than before. the fragment shader now does the discard think, the math is a single matrix multiplication, and the memory of the gpu-tilemap is 8x smaller :owo: 13:38 < bridge> But it sounds like u a Knight xd 13:38 < bridge> heh, thats actually kinda accurate for how I got that name 13:39 < bridge> I think I lost multiple gmail addresses when I was younger, so patiga, patiga21 and all that stuff was gone 13:39 < bridge> and in german class we just had that you can make names sound old by adding "tus" or smth, so that was my next email address :d 13:39 < bridge> Oh that's very impressive 13:39 < bridge> I should try it out 13:40 < bridge> btw I revisted my tilemap renderer, and optimized it quite aggressively. iirc, it might be 5x faster than before. the fragment shader now does the discard thing, the math is a single matrix multiplication, and the memory footprint of the gpu-tilemap is 8x smaller :owo: 13:40 < bridge> But discards are usually not faster, that surprises me 13:40 < bridge> on the `new-approach` branch 13:40 < bridge> I think the discard did essentially nothing 13:40 < bridge> Maybe the compiler optimizes the shader based on it 13:40 < bridge> but I included it for testing 13:40 < bridge> Ah 13:40 < bridge> I didnt really see a different with or without 13:41 < bridge> *difference 13:42 < bridge> (and mipmaps are next, although my naive downscaling didn't work straight away) 13:42 < bridge> How did you measure the increase in performance? Did you find a nice tool? 13:43 < bridge> no time for that xd 13:43 < bridge> just my good ol fps counter 13:44 < bridge> 5x fps would be insane 13:44 < bridge> Nice nice 13:45 < bridge> well if you can measure it too I'd be interested in your findings as well, I was also a bit sceptical 13:45 < bridge> Considering the fragment shader calculates for 3 million pixels it defs has high potential ^^ 13:45 < bridge> hm I think on my laptop, the improvement wasn't as drastic 15:24 < bridge> ChillerDragon: how does `-i''` help with macos? 15:24 < bridge> that should be precisely equivalent to `-i` 16:07 < bridge> @learath2 have you continued the message queue stuff? 16:09 < bridge> I'm still brainstorming about it, the things I want from it make me think maybe something out of the box like qpid would be bettet than me implementing it from scratch 16:09 < bridge> Better* 16:11 < bridge> I mean kog also has a solution, don't remember what that was 16:11 < bridge> They have some grpc stuff 16:12 < bridge> hmm. that sounds orthogonal to the stuff the queue should do 16:12 < bridge> I think I definitely want node discovery. Manually configuring the shape of the network down to the gameserver doesn't sound very appealing to me 16:13 < bridge> node discovery with a central server? 16:13 < bridge> or more complicated? 16:14 < bridge> With a central server 16:14 * bridge aproves 16:14 * bridge approves 16:15 < bridge> I think I also definitely want proxies. I don't want all gameservers directly talking to the central server 16:16 < bridge> yes, I agree 16:16 < bridge> both of that seem pretty necessary 16:17 < bridge> One thing I'm having trouble with is how to name nodes in a unique way so messages can be addressed to them 16:17 < bridge> location+port? 16:18 < bridge> I was thinking something similar to that. Dot seperated, something like `main.ger2.8303` 16:19 < bridge> sounds good 16:19 < bridge> Or `s/main/central/` whatever 16:22 < bridge> Another thing that bugs me is how to handle caching and coherency. Say you issue a global ban from `main.ger2.8303` that generates a message to `main.banmaster`. However our link to `main` is down. Now that ban could wait until it's back up, but that's not desirable. It should be in effect locally atleast 16:24 < bridge> But if it is active locally, that message still needs to be delivered when the link is back up. Some node needs to be watching and keeping track of the link state and resynchronizing stuff when it's back up 16:24 < bridge> Maybe I should just implement the backbone of the messaging infrastructure and think about these details later 16:27 < bridge> that seems like the thing you're using isn't aligned with how you want to model it 16:27 < bridge> but I guess that also means conflict resolution once you no longer want to require the central server to be there 16:27 < bridge> Exactly why I'm hesitant to go ahead. Because maybe there is some protocol level way to achieve this without bolting on external synchronization 16:28 < bridge> i.e. maybe we'd need to look more for a p2p system that we coudl use centrally 16:28 < bridge> But bans are just one thing that we can use this system with. Should we really design it around them? 16:30 < bridge> what else do we want to use it for? 16:31 < bridge> I would ideally want to move everything onto that one link slowly one by one. Like broadcasts, executing rcon commands 16:32 < bridge> broadcasts would be the same as executing rcon commands, or do they need something special? 16:32 < bridge> Yeah they are the same, just thinking quickly 16:32 < bridge> what properties do we want for this? 16:32 < bridge> The hardware status python thing that we run would be nice to have over this aswell 16:33 < bridge> this is about ddnet infra internally right? 16:33 < bridge> it's executed at most once 16:34 < bridge> reading this again made me yet again remind me of elixir and that i should learn it more 16:34 < bridge> should it be executed later when the link comes online again? 16:34 < bridge> Another nice to have would be log/audit streams, so you could do something like `tail-log main.ger10.8306` and get logs. I know we can bolt all of these things on with bash scripts and call it a day but I don't really like it 16:34 < bridge> or should it only be executed if the lnk is there when the command is issed? 16:35 < bridge> Another thing that might be nice is having records go over this link too, without the weird fallback databases we sync back up every night 16:35 < bridge> this maybe is off topic, but u can even not define a main server, and let a consensus algorithm define it, something like https://raft.github.io/ 16:35 < bridge> I was thinking only when connected. So the link has to be up for you to issue a rcon command 16:36 < bridge> ok, that's trivial 16:36 < bridge> any system will be able to support that 16:36 < bridge> basically a broadcast 16:36 < bridge> Heck, I could probably bolt on bans better without any messaging infrastructure. Just run a db on every server and rely on the databases own sync mechanism 16:38 < bridge> the db thing doesn't look suited tbh 16:38 < bridge> the db thing doesn't look well-suited tbh 16:38 < bridge> cause the server needs to handle the bans itself, it'd need to subscribe to updates 16:39 < bridge> What becomes annoying without a central server is the routing and addressing. Without a defined hierarchy you need to announce stuff around so everyone can get a network map 16:39 < bridge> erlang has a db thing in OTP 16:39 < bridge> mnesia 16:39 < bridge> https://en.wikipedia.org/wiki/Mnesia 16:39 < bridge> Easy enough to bolt on a query into the server so it can just query the db about it instead 16:39 < bridge> no, too slow 16:40 < bridge> Or db update hooks to execute fifo commands, even more jank 16:41 < bridge> Anyway, implementing a whole new messaging protocol just to stream some bans over it sounds silly to me 16:42 < bridge> syncing rcon access is also interesting 16:42 < bridge> also a list that would be synchronized 16:45 < bridge> Both can be implemented as db insert/update/delete trigger now that I think about it 16:48 < bridge> https://news.ycombinator.com/item?id=39395020 :lol: 17:06 < bridge> @learath2 perhaps something like redis would work? https://redis.io/docs/data-types/streams/ 17:06 < bridge> the replication consistency looks a bit lackluster though: https://redis.io/docs/management/replication/ 17:07 < bridge> I doubt it would work any better than just postgres 17:07 < bridge> it has a stream, which would be useful for executing commands in order 17:08 < bridge> does postgres have something like that? 17:08 < bridge> And working with redis on this is meh since it's technically a key value store. What would be the key of a ban even? It'll just be a ban id of sort 17:08 < bridge> Postgres has streaming replication too. Not sure if there is any order guarantee 17:08 < bridge> no, I mean it has "streams" 17:08 < bridge> a thing where you can put a message 17:09 < bridge> and other people receive it, and they can receive all messages they've missed, too 17:09 < bridge> I looked at the set datatype, which seemed appropriate for bans (if you can listen for changes, was trying to figure that otu) 17:10 < bridge> It's not enough, even 18 is too young 17:10 < bridge> You can't use C++20 until you can at least drink 17:11 < bridge> @learath2 how to make a uint64_t literal 17:11 < bridge> omg 17:12 < bridge> i guess i cant take a reference to a literal like in rust 17:12 < bridge> Cannot take the address of an rvalue of type 'int'clang(typecheck_invalid_lvalue_addrof 17:13 < bridge> UINT64_C 17:13 < bridge> ```c 17:13 < bridge> uint64_t args[] = { 1 }; 17:13 < bridge> MlirAttribute expression_elem = 17:13 < bridge> mlirLLVMDIExpressionElemAttrGet(ctx, 1, 1, args); 17:13 < bridge> ``` 17:13 < bridge> i just went the long wae 17:13 < bridge> Is this C++ or C? 17:13 < bridge> pure C baby 17:13 < bridge> im making the llvm C api for mlir 17:14 < bridge> https://github.com/llvm/llvm-project/pull/83992 17:14 < bridge> Okay you are about to witness my favourite C feature 17:14 < bridge> ah, another nice thing would be support for the redirect on map change stuff @learath2 17:14 < bridge> https://github.com/ddnet/ddnet/issues/6754 17:14 < bridge> `MlirAttribute expression_elem = mlirLLVMDIExpressionElemAttrGet(ctx, 1, 1, (uint64_t){1});` 17:14 < bridge> well its only test code 17:14 < bridge> ohh 17:15 < bridge> should the cast go into the braces? 17:15 < bridge> Incompatible integer to pointer conversion passing 'uint64_t' (aka 'unsigned long') to parameter of type 'const uint64_t *' (aka 'const unsigned long *'); take the address with & (fix available)clang(-Wint-conversion) 17:15 < bridge> Take the address, it's fine 17:15 < bridge> ``` 17:15 < bridge> Incompatible integer to pointer conversion passing 'uint64_t' (aka 'unsigned long') to parameter of type 'const uint64_t *' (aka 'const unsigned long *'); take the address with & (fix available)clang(-Wint-conversion) 17:15 < bridge> 17:15 < bridge> ``` 17:15 < bridge> ``` 17:15 < bridge> MlirAttribute expression_elem = 17:15 < bridge> mlirLLVMDIExpressionElemAttrGet(ctx, 1, 1, &(uint64_t){1}); 17:15 < bridge> ``` 17:15 < bridge> this worked 17:15 < bridge> xd 17:15 < bridge> Yep 17:15 < bridge> Nope 17:15 < bridge> whats the feature called 17:16 < bridge> Compound Literals, C99:6.5.2.5 17:16 < bridge> One day C++ people will stop discussing about it and add it to their language hopefully 17:16 < bridge> @learath2 look at my pr 17:16 < bridge> only the tests are pure C tho 17:17 < bridge> Would `1UL` not work? 17:17 < bridge> i tried 17:17 < bridge> and u cant take a addr to it 17:17 < bridge> Literals are rvalues, they don't have addresses 17:18 < bridge> they do in rust 17:18 < bridge> 🤓 17:18 < bridge> Ah I didn't read enough 17:18 < bridge> I just read "literal" when what is required is not really a literal 17:18 < bridge> I very much doubt Rust even has the concept of an rvalue, but I would also be surprised if they don't "materialize" the literal somehow before taking the reference 17:20 < bridge> they "materialize" it, if you want to call it that way 17:20 < bridge> it does 17:20 < bridge> btw, technically the correct literal for a `uint64_t` is `UINT64_C(1)` 17:20 < bridge> because i know the rust middle IR 17:20 < bridge> it mentions rvalue everywhere 17:20 < bridge> https://doc.rust-lang.org/stable/nightly-rustc/rustc_middle/mir/enum.Rvalue.html 17:21 < bridge> but well being pedantic, its a rvalue in MIR not in rust itself xd 17:21 < bridge> idk any deep rust so can't say much 😛 17:21 < bridge> i copied this to make edlang 17:21 < bridge> kek 17:23 < bridge> Wdym, is that a standard thing? 17:23 < bridge> Interesting feature of redis that I did not know, if it replicates well maybe it can be used 17:23 < bridge> I know the "UL" is "unsigned long" which on every platform that matters is what uint64_t is going to be typedef'd to 17:23 < bridge> Actually maybe not on windows 17:23 < bridge> So I guess ULL is the safer one 17:24 < bridge> Yes, C99:7.18.4.1 17:24 < bridge> I've never seen anyone use this syntax, I'll take a look 17:25 < bridge> It's a macro that expands to whatever is the correct literal type on that platform 17:25 < bridge> s\/platform/implementation/ 17:25 < bridge> In general I'm not a fan of putting the bit width in type names 17:25 < bridge> and C++11:18.4.1p1 17:25 < bridge> I'm a fan of putting bit width in type names 17:26 < bridge> why aren't you? 17:26 < bridge> The amount of times I've done a typo for "23" instead of "32" is enough for me to dislike it 17:26 < bridge> Why did you think replication looked lackluster? 17:26 < bridge> https://github.com/npm/npm/issues/2933 17:28 < bridge> > Synchronous replication of certain data can be requested by the clients using the WAIT command. However WAIT is only able to ensure there are the specified number of acknowledged copies in the other Redis instances, it does not turn a set of Redis instances into a CP system with strong consistency: acknowledged writes can still be lost during a failover, depending on the exact configuration of the Redis persistence. However with WAIT the pro 17:28 < bridge> this one 17:28 < bridge> Beyond bit field uses they are also pointless 17:28 < bridge> I think it's important to acknowledge which bit width you want 17:29 < bridge> especially since you usually don't want to change it across systems 17:29 < bridge> Sure, typedef it to "size" or something and leave it at that 17:29 < bridge> I think forcing it into your APIs is a bad idea though 17:29 < bridge> why? 17:31 < bridge> Why do it? 17:31 < bridge> It's a niche thing beyond bit fields 17:31 < bridge> Across modern systems, say you need 16bits of storage, but doing math with 32bit integers is faster on one of your target architectures. You don't want to strongarm the compiler into using 16bit ones 17:31 < bridge> i disagree with u on this 17:31 < bridge> and that from the llvm dev that works with i6 17:31 < bridge> :lol: 17:31 < bridge> i32 to me is way better 17:31 < bridge> because you usually internalize these bit width while coding. better have them in the code, too 17:31 < bridge> also llvm ir does it like i32 17:31 < bridge> its not a rust invented thing btw 17:31 < bridge> I think the worst idea is having languages with the arbitrary bit widths though 17:32 < bridge> `uint_fast_16t i;` 17:32 < bridge> The typos alone can really screw you there and there is no way to diagnose them 17:32 < bridge> But I guess that's a separate debate 17:32 < bridge> `uint_fast16t i;` 17:32 < bridge> `uint_fast16_t i;` 17:32 < bridge> I still think that's a good type 17:32 < bridge> I just dislike `short`, `int`, `long`, `long long` 17:32 < bridge> and their `unsigned` variants 17:32 < bridge> why not uint16_fast_t 17:33 < bridge> Hm, yeah those aren't amazing types ngl. Mostly because to know their limits you have to refer to the standard 17:33 < bridge> why not u16_fast 17:33 < bridge> just u16 17:33 < bridge> and always fast 17:33 < bridge> 17:33 < bridge> true 17:33 < bridge> no_u16 17:33 < bridge> no, sometimes you actually want 16 bits 17:33 < bridge> tbh idk what the fast does so 17:34 < bridge> i was just memeing 17:34 < bridge> fast tells the compiler to pick the fastest integer type that can contain the range of interest as in fastest to operate on in the target architecture 17:34 < bridge> what does that mean in practice, in say gcc, clang or msvc? 17:35 < bridge> all except u8 are 64bit or not 17:35 < bridge> u8fast 17:35 < bridge> I doubt it changes anything on x86_64 in 2024 17:35 < bridge> I was wondering what their definitions are 17:35 < bridge> im such a clown 17:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214612379795722300/image.png?ex=65f9beed&is=65e749ed&hm=4929a9b19366547af4e92f32d9d4b7552b95836f1c5b75cc4508c4e735188aa5& 17:36 < bridge> is `uint_fast16_t` `uint16_t` or `uint64_t`? 17:36 < bridge> on x86 etc. 17:37 < bridge> @peter44h was your problem standard typdefs for uint32_t etc.? 17:37 < bridge> or was it about custom types 17:37 < bridge> thought it was even about rust's integer types 17:38 < bridge> Actually it makes me question, with a 64 bit CPU, is there a big difference between a 32 vs 64 bits multiply? 17:38 < bridge> depends on the value 17:38 < bridge> It's not the case of just "this takes n cycles"? 17:39 < bridge> There's no cost table Intel gives or something? 17:39 < bridge> I'd guess 64 on x86-64, no reason to use half a register 17:39 < bridge> My expectation is the 32 bits is still faster but idk 17:40 < bridge> i guess u could find it somewhere 17:40 < bridge> but in the real world it's not as ez as that 17:40 < bridge> as the compiler can reorder some stuff etc. 17:41 < bridge> https://www.agner.org/optimize/instruction_tables.pdf 17:41 < bridge> apparently the larger the bit width, the faster the `mul` 17:41 < bridge> for ice lake 17:42 < bridge> lol, I'm looking at the exact same table 17:42 < bridge> but 32bit and 64bit imul are the same 17:42 < bridge> for haswell it seems imul for r32,r32 is the same as r64,r64 17:42 < bridge> (register-register-multiplication) 17:43 < bridge> but `mul` (register-constant-multiplication) is faster for 64 bit 17:44 < bridge> `imul` for both 32 and 64 bit has a latency of 3 cycles and it takes 1 cycle 17:44 < bridge> not only the compiler btw, the cpu will also reorder stuff, it's impossible to reason about cycle level performance anymore unless you are one of the few people that seem to be aliens 17:45 < bridge> the cpu has less UB to exploit though, so the observable effect (modulo speed, … ahhh, we're talking about speed 17:47 < bridge> ah, but `idiv` is faster for 32-bit than for 64-bit 17:47 < bridge> takes 6 vs 10 cycles (latency: 12, 15) 17:50 < bridge> Wdym by this? 17:50 < bridge> Surely if it's constant the compiler would just be using shifts 17:51 < bridge> (if it's pot or whatever other optimization rules exist) 17:51 < bridge> Ignore the compiler for a second 17:51 < bridge> I'm saying the 64-bit `mul` instruction is faster for 64 bit than for 32 bit 17:51 < bridge> whether it's emitted by the compiler is a different qusetion 17:51 < bridge> This is at the level of the cpu, if you emit a mul with an immediate operand 17:52 < bridge> I just verified, `x * 1234` does not compile down to shifts, but to a multiplication 17:54 < bridge> Also I think div is not pipelined but mul can be 17:54 < bridge> doesn't seem to be the case 17:54 < bridge> in the table, I can see that the latency differs from the speed 17:54 < bridge> for both division and multiplication 17:54 < bridge> so something must be pipelined according to my understanding 17:55 < bridge> @heinrich5991 what does `x / 113` compile to btw? 17:55 < bridge> I'd guess a multiplication 17:55 < bridge> yes, multiplication plus shifts 17:56 < bridge> Yeah, I'd guess it's very hard to get a compiler to emit a division 17:56 < bridge> It's easy 17:56 < bridge> Use -Os 17:56 < bridge> Is there even an immediate division in x86? 17:56 < bridge> https://uops.info/table.html 17:56 < bridge> I think gcc is way too aggressive on this point 17:56 < bridge> It's obviously not worth the bytes it saves 17:57 < bridge> zen3 :poggers2: 17:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214617740711825408/image.png?ex=65f9c3eb&is=65e74eeb&hm=472857ec75936db2949341c9e58ce4a7b0b554839cdb88f0ad4ee710c61f2be6& 17:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214617949709541437/image.png?ex=65f9c41d&is=65e74f1d&hm=601ce379479a352a17b6ba1c695b51e702e384a3e5bb316fcdae227c3d0f9087& 17:58 < bridge> That's behavior I'd expect from "-Oz" instead 17:58 < bridge> But I think that option got copied from clang and does basically nothing 18:06 < bridge> I managed to not do anything productive today :/ 18:07 < bridge> is your day now over or what 18:11 < bridge> i did a 500 line pr to llvm 18:11 < bridge> and worked 18:33 < bridge> gamer 18:34 < bridge> i gave a "lgtm" on gitlab today and also worked 18:37 < bridge> I don't operate well in the evenings anymore 18:38 < bridge> then you are simply not motivated for your project 18:39 < bridge> except it's really only today 18:39 < bridge> everyone has bad days 18:39 < bridge> I'm not motivated to be awake anyway 18:39 < bridge> You forget that I'm an old man 18:41 < bridge> 12 is not the oldest age 18:41 < bridge> compared to most animals... yes 18:42 < bridge> That's only one of my ages, I also identify as an 85 year old 18:42 < bridge> wise as you are, you know how to trick your brain to also work in the evening 18:43 < bridge> 😏 19:12 < bridge> @learath2 thinking about it. do we even need anything fancy? 19:12 < bridge> since none of the solutions fit exactly, a simple http endpoint for current state plus a tcp connection for state updates should work, no? 19:30 < bridge> HEH, I was also pondering that. If we want to do just a solution for bans, I think that's the way 19:30 < bridge> hi, I found a server for you with a nice girl with perfect nudes. join now ❤️ 19:30 < bridge> https://discord.gg/sexyhot 19:30 < bridge> @everyone 19:30 < bridge> huh 19:32 < bridge> It would have been nice to have all our infrastructure nicely connected, but shouldn't let perfect be the enemy of works better than the last band aid 19:35 < bridge> that'd connect our infrastructure, right? 19:36 < bridge> It just expands the patchwork of solutions 19:36 < bridge> I guess you could replace the tcp connection with a simple message queue 19:36 < bridge> noo, I wouldn't even bother messing around with it just for bans 19:37 < bridge> Not much of an advantage, you just get message queueing, our operation is fast enough that we don't even need to think about that 19:37 < bridge> we also get a segmentation protocol like that 19:37 < bridge> plus subscriptions, I guess 19:39 < bridge> Eh, if we want one zeromqs pub/sub sockets aren't bad 19:39 < bridge> and easy enough to proxy 19:41 < bridge> segmentation! ^^ 19:43 < bridge> Why would a ban update ever be segmented anyway? Are we thinking of different kinds of segmentation? 19:44 < bridge> message segmentation 19:45 < bridge> Our messages in this case are tiny though, why would they get segmented? 19:45 < bridge> tcp doesn't give us a way do distinguish between messages 19:45 < bridge> it only gives us a byte stream 19:45 < bridge> Ah, that's what you meant 19:45 < bridge> a message queue would give us messages, I'd assum 19:45 < bridge> e 19:46 < bridge> what kind of segmentation did you think about? 19:46 < bridge> I was considering just sending newlines 😄 19:46 < bridge> classic 19:46 < bridge> I was thinking packet segmentation 19:46 < bridge> if it's good enough for IRC… 19:46 < bridge> but that'd mean no binary data 19:47 < bridge> which kinda sucks 19:47 < bridge> Well for bans it's not too bad, but we could do length prefixed messages too I guess 19:49 < bridge> parsing text is harder than parsing binary data in C++, I think 19:50 < bridge> why? 19:51 < bridge> I feel it's about the same 19:51 < bridge> you can just read data straight into a POD struct 19:51 < bridge> harder to accurately parse text IMO 20:28 < bridge> is there any way to rotate a rect atm? 20:28 < bridge> is there any way to rotate a UIrect atm? 20:32 < bridge> as a clueless ddnet graphics enjoyer i can say.. no =] 20:35 < bridge> :brownbear: go implement it for me then pls ty 20:36 < bridge> take coords from rect and slap em in DrawRectExt 20:36 < bridge> that seems way to complicated for me to try 20:36 < bridge> wat -.- 20:37 < bridge> ure pro 20:37 < bridge> ure pro! 20:39 < bridge> the more I look at `CMapLayers` the less i believe it's possible to write it :pepeW: 20:39 < bridge> the more I look at `CMapLayers` the less i believe it's possible to write :pepeW: 20:40 < bridge> i just want a precoded function that i can use, idk something user friendly like rotateRect(CUIRect rect, angleInDegrees) 20:40 < bridge> >:( 20:40 < bridge> i pay you 1€ 20:40 < bridge> paypal 20:41 < bridge> xD 20:41 < bridge> wait would the angle be a float or a double? 20:42 < bridge> in `graphics_threaded` it's float 20:42 < bridge> ic 20:53 < bridge> rotate by degrees? 20:53 < bridge> ye 20:54 < bridge> or rotate by 180° cf 20:54 < bridge> or rotate by 180° xd 20:54 < bridge> pi / 180 20:54 < bridge> i'd like to rotate a UIRect by a defined amount (45° or smth idk) 20:55 < bridge> then no 20:55 < bridge> did u make helper function? 20:55 < bridge> i didnt even attempt it yet, im just brainstorming the possibility loudly rn XD 21:10 < bridge> @jupeyy_keks any take on this ? 21:10 < bridge> https://www.reddit.com/r/pcmasterrace/comments/1b76htj/cmon_eu_do_your_magic_sht/ 21:12 < bridge> the thing was apparently not news 21:12 < bridge> i.e. the present tense of "bans" is incorrect 21:13 < bridge> it's been in some EULA, but likely unenforcable anyway because RE for interoperability is legal 21:15 < bridge> RE ? 21:17 < bridge> what should i say xd 21:17 < bridge> 21:17 < bridge> my ideology goes against what nvidia is trying. 21:17 < bridge> economy is build in a very weird way 21:18 < bridge> EU probably does that bcs of competition reasons, i'd probably argue a bit different 21:18 < bridge> reverse engineering 21:42 < bridge> ah and also i think they only doing this bcs these are american companies. 21:42 < bridge> 21:43 < bridge> if they'd be european their lobbyism would probably be completely different 21:43 < bridge> xd 21:43 < bridge> that's my take 21:57 < bridge> usually american companies are pretty good at lobbyism 21:57 < bridge> This is how all US politics function 21:58 < bridge> Close enough anyway 21:59 < bridge> Buckley v Vallejo effectively made bribery legal 21:59 < bridge> Buckley v Valejo effectively made bribery legal 22:02 < bridge> but i guess the nvidia workplaces for CUDA are all in murica 22:02 < bridge> so EU doesn't care as much 22:03 < bridge> better make the market nice for all competitors 22:03 < bridge> and maybe EU also doesnt like to be too dependent on NVIDIA 22:03 < bridge> since almost all the industry uses CUDA 😄 22:04 < bridge> i dunno, is their reasoning public? 22:04 < bridge> 22:04 < bridge> was it even the EU or the european court 22:04 < bridge> There's probably software patent BS involved too 22:04 < bridge> i dont think that exists in europe 22:04 < bridge> at least not as in murica 22:05 < bridge> It definitely does 22:05 < bridge> I think it was "fraunhofer" that had patents on mp3 22:05 < bridge> source? 22:06 < bridge> That there are software parents in Europe? 22:06 < bridge> yes 22:07 < bridge> https://en.wikipedia.org/wiki/Software_patents_under_the_European_Patent_Convention 22:07 < bridge> This page ig 22:07 < bridge> > Under the EPC, and in particular its Article 52,[1] "programs for computers" are not regarded as inventions for the purpose of granting European patents,[2] but this exclusion from patentability only applies to the extent to which a European patent application or European patent relates to a computer program as such.[3] 22:07 < bridge> Definitely there were patents on mp3 that got enforced 22:07 < bridge> from your article 22:08 < bridge> I don't think that means what you think it does 22:08 < bridge> can you give a source for that? 22:09 < bridge> what does it mean? 22:09 < bridge> 🍿 22:09 < bridge> 😬 22:09 < bridge> @peter44h you know these stuff are very complicated 22:09 < bridge> laws are bloatware 22:09 < bridge> 😬 22:10 < bridge> absolutely, agree 22:11 < bridge> Lawyer is definitely in top 5 most dishonest professions 22:11 < bridge> BloodWork131: do you agree? xddd 22:11 < bridge> chillerdragon: do you have that name as ping? 22:12 < bridge> I've heard of lawsuits related to this happening before 22:13 < bridge> he means a real source 22:13 < bridge> But yeah it does seem the EU is less lenient with what counts as being "patentable" and such 22:14 < bridge> I am searching now and I can't find an EU example 22:15 < bridge> https://en.wikipedia.org/wiki/MP3 22:16 < bridge> 22:16 < bridge> This page states: 22:16 < bridge> > The basic MP3 decoding and encoding technology is patent-free in the European Union, all patents having expired there by 2012 at the latest. 22:16 < bridge> If there were no patents there would be nothing to expire, so I guess it can be inferred from this they exist 22:18 < bridge> https://fsfe.org/activities/swpat/swpat.en.html 22:18 < bridge> This page claims: 22:18 < bridge> > The European Patent Convention states that software is not patentable. But laws are always interpreted by courts, and in this case interpretations of the law differ. So the European Patents Office (EPO) grants software patents by declaring them as "computer implemented inventions". 22:18 < bridge> So I have no idea by which technicality something which could be described as a "software patent" could exist 22:18 < bridge> Looks like there is far less of a craze regarding that 22:18 < bridge> Patent trolling as an industry is a more USA thing from what I can tell 22:20 < bridge> I am searching now and I can't find an EU example of an actual lawsuit involving mp3 22:28 < bridge> hi all 22:29 < bridge> I find it hard to find information on this, but I'm trying 🙂 22:29 < bridge> do i need to change this returned unsigned char into signed ? 22:29 < bridge> ```cpp 22:29 < bridge> const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol); 22:29 < bridge> ``` 22:29 < bridge> do i need to consider anything if im going to use unsigned char ? 22:30 < bridge> and if i wanted is this the right way to do so ? 22:30 < bridge> ```cpp 22:30 < bridge> const char *username = reinterpret_cast(sqlite3_column_text(pstmt, 0)); 22:30 < bridge> ```