00:59 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035326994667294720/unknown.png 01:04 <+bridge> [ddnet] Should we periodically clear symbols for old releases? They are taking 12 GB already: https://ddnet.org/downloads/symbols/ 01:07 <+bridge> [ddnet] This video is so true 01:09 <+bridge> [ddnet] This message was not shown in matrix πŸ‘‰ πŸ‘ˆ 07:17 <+bridge> [ddnet] I guess the nightly symbols from over weeks ago are not that useful 07:24 <+bridge> [ddnet] Didnt even know that existed 07:56 <+bridge> [ddnet] perfection 07:56 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035431958626455623/unknown.png 08:26 <+bridge> [ddnet] https://github.com/dandavison/delta 08:28 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035439841061646396/unknown.png 08:28 <+bridge> [ddnet] my neovim getting better 08:40 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035442879839080448/unknown.png 09:07 <+bridge> [ddnet] @deen how much telemetry data does steam offer? 09:07 <+bridge> [ddnet] 09:07 <+bridge> [ddnet] Like does it say which GPUs are used by players of ddnet? 09:10 <+bridge> [ddnet] https://deck-24abcd.netlify.app/ 09:10 <+bridge> [ddnet] this is cool AF 09:11 <+bridge> [ddnet] oh nice, a friend even plays this card game πŸ˜„ 09:12 <+bridge> [ddnet] Css only 09:12 <+bridge> [ddnet] duh its pokemon xd 09:12 <+bridge> [ddnet] i know 09:12 <+bridge> [ddnet] but its defs not the greatest TCG XD 09:12 <+bridge> [ddnet] its very luck based 09:21 <+bridge> [ddnet] I guess never played it 09:22 <+bridge> [ddnet] what is yours all moral standpoint to basic telemetry? 09:22 <+bridge> [ddnet] 09:22 <+bridge> [ddnet] gpu, cpu, ram 09:22 <+bridge> [ddnet] integer config variables 09:23 <+bridge> [ddnet] for string config variables only if they differ from the default, so nothing leaked (some expcetion e.g. gfx_backend) 09:24 <+bridge> [ddnet] and operating system xdd 09:28 <+bridge> [ddnet] xd 09:29 <+bridge> [ddnet] If its opt in its ok 09:29 <+bridge> [ddnet] If its opt out not 09:30 <+bridge> [ddnet] opt in is useless lets face it 09:30 <+bridge> [ddnet] no 09:30 <+bridge> [ddnet] i mean who searches the option 09:30 <+bridge> [ddnet] Just a popout on first open 09:30 <+bridge> [ddnet] and clicks on send crash reports 09:30 <+bridge> [ddnet] I do for steak 09:30 <+bridge> [ddnet] thats smth different 09:30 <+bridge> [ddnet] Steam 09:30 <+bridge> [ddnet] Its opt in 09:30 <+bridge> [ddnet] its both at the same time xD 09:31 <+bridge> [ddnet] I dont want a system that silently has telemetry on by def 09:31 <+bridge> [ddnet] And u dont know it 09:33 <+bridge> [ddnet] we actually already have some kind of telemetry anyway 09:33 <+bridge> [ddnet] 09:33 <+bridge> [ddnet] the username is sent to the ddnet http info requests 09:33 <+bridge> [ddnet] for the finishes 09:33 <+bridge> [ddnet] that leaks more personal information than any of my above stuff 09:34 <+bridge> [ddnet] how much data is inside the http headers sent by curl? 09:54 <+bridge> [ddnet] Probs not much 09:55 <+bridge> [ddnet] anyway non ideologicly 09:55 <+bridge> [ddnet] ddnet rn has your username & all ingame chat unencrypted, all input data ever made 09:55 <+bridge> [ddnet] 09:55 <+bridge> [ddnet] vs 09:55 <+bridge> [ddnet] 09:55 <+bridge> [ddnet] i just want some information that helps for development and contains no private data 10:03 <+bridge> [ddnet] https://feedback.wildfiregames.com/ 10:03 <+bridge> [ddnet] 10:03 <+bridge> [ddnet] they have quite a bit of insight, but mostly linux users play that game. and for some reason most linux users seem to use intel computers apparently xD 10:08 <+bridge> [ddnet] i also dont trust the data too much. GL_VERSION might report the gl version requested by the game not the one supported at max 10:13 <+bridge> [ddnet] @Not Keks im sure our windows users are happy to say yes to telemetry 10:13 <+bridge> [ddnet] :BASED: 10:13 <+bridge> [ddnet] the problem is really that the word itself triggers ppl 10:14 <+bridge> [ddnet] i understand that u dont want to leak all shit so its sold to google 10:14 <+bridge> [ddnet] Just state clearly what is gathered 10:14 <+bridge> [ddnet] Being honest is the best here 10:14 <+bridge> [ddnet] yes 10:15 <+bridge> [ddnet] Most ppl will say yes, i wanna flex my 4090 gpu to the stats 10:15 <+bridge> [ddnet] :BASED: 10:15 <+bridge> [ddnet] lmao 10:15 <+bridge> [ddnet] this is always my motivation when steam hardware survey pops up 10:15 <+bridge> [ddnet] lets make linux great xD 10:15 <+bridge> [ddnet] xd 10:18 <+bridge> [ddnet] man i'd really love to drop all backends other than vk 10:18 <+bridge> [ddnet] 10:18 <+bridge> [ddnet] i have some cool ideas that would be easier to develop if i wont need to change all other backends too and test all shit xD 10:19 <+bridge> [ddnet] @Not Keks can u just add features exclusive to vulkan? 10:20 <+bridge> [ddnet] yes but its hard to keep it clean 10:20 <+bridge> [ddnet] Sadge 10:20 <+bridge> [ddnet] the higher lvl code always has to do ifs like (backend supports this and that) .. 10:21 <+bridge> [ddnet] Stupid old hardware 10:21 <+bridge> [ddnet] :BASED: 10:27 <+bridge> [ddnet] @Ryozuki how much disk space does ur new OS use btw? 10:27 <+bridge> [ddnet] 10:27 <+bridge> [ddnet] i am already out of disk space again xD 10:27 <+bridge> [ddnet] 10:27 <+bridge> [ddnet] 1.5 TB SSD are simply not enough 10:29 <+bridge> [ddnet] Idk 10:29 <+bridge> [ddnet] But it has to fetch src when installing so 10:29 <+bridge> [ddnet] I got 2x m2 500gb and a 2tb sss 10:29 <+bridge> [ddnet] Ssd 10:32 <+bridge> [ddnet] You might want to delete your distfiles every once in a while 11:19 <+bridge> [ddnet] `Quad::new(50 * 2i32.pow(15), 30 * 2i32.pow(15))` 11:19 <+bridge> [ddnet] @Patiga i had this in twmap 0.6 but on 0.9 it uses some weird integer with fractional bits 11:19 <+bridge> [ddnet] do you know how to use it? xD im confused 11:20 <+bridge> [ddnet] https://docs.rs/twmap/0.7.0/twmap/struct.Quad.html#method.new vs https://docs.rs/twmap/latest/twmap/struct.Quad.html#method.new 11:22 <+bridge> [ddnet] Looks like a fixed point number, which is what we use in the actual data anyway 11:24 <+bridge> [ddnet] i see 11:24 <+bridge> [ddnet] maybe twmap could reexport the "fixed" crate 11:24 <+bridge> [ddnet] anyway i imported it for the types 11:24 <+bridge> [ddnet] `Quad::new(Default::default(), Point::new(50.into(), 30.into()))` 11:24 <+bridge> [ddnet] seems to work 11:24 <+bridge> [ddnet] (well didnt test ingame) 11:24 <+bridge> [ddnet] Do you even need the intos? 11:25 <+bridge> [ddnet] Oh, you probably do 11:25 <+bridge> [ddnet] Yes because the new doesnt accept Into 11:25 <+bridge> [ddnet] But rather the I17F15 itself 11:26 <+bridge> [ddnet] A pr maybe would be worth 11:26 <+bridge> [ddnet] xd 11:27 <+bridge> [ddnet] If only it was on github 11:28 <+bridge> [ddnet] `Quad::new(Default::default(), Point::new(I17F15::from_num(50), I17F15::from_num(30)))` 11:28 <+bridge> [ddnet] ok it needs to be this 11:58 <+bridge> [ddnet] probably not. minetest? mindustry? 12:01 <+bridge> [ddnet] ddnet is good in one thing, keeping players playing 12:01 <+bridge> [ddnet] mindustry has only 300 players currently on steam 12:03 <+bridge> [ddnet] Does `From` do `from_bits`? That's a bit of a sad api choice on their part 12:04 <+bridge> [ddnet] Going from an integer to a fixed point I'd expect a 0 fractional part and my integer, but I guess that'd need to be a `TryFrom` because it may be out of range 12:04 <+bridge> [ddnet] cuz you can download mindustry for free from itch.io or github 12:04 <+bridge> [ddnet] bcs the average player does that xD 12:04 <+bridge> [ddnet] ok maybe indeed bcs it cost 12:05 <+bridge> [ddnet] but i'd still assume he made most money mobile? 12:05 <+bridge> [ddnet] mobile players buy stuff and then dont use it xd 12:05 <+bridge> [ddnet] indeed :justatest: 12:05 <+bridge> [ddnet] but now i am interested in their player counts 12:06 <+bridge> [ddnet] the problem with games like mindustry is that they get boring after a while πŸ˜„ 12:34 <+bridge> [ddnet] Over a million players on Steam got DDNet (but only 860k started it) 12:34 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035501774875918366/Screenshot_2022-10-28_at_12.34.00.png 12:35 <+bridge> [ddnet] oh nice still very impressive 12:35 <+bridge> [ddnet] I'm trying to load the Hardware survey page, but it just hangs so far 12:37 <+bridge> [ddnet] Damn 12:38 <+bridge> [ddnet] Now it loaded but Firefox crashed during screenshot πŸ˜„ 12:38 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035502860416335943/Screenshot_2022-10-28_at_12.38.31.png 12:39 <+bridge> [ddnet] Do people have to opt into the Hardware Survey? If so, then it's pretty useless 12:40 <+bridge> [ddnet] Of course people with better hardware will opt in more often 12:40 <+bridge> [ddnet] On steam yes 12:40 <+bridge> [ddnet] Still steam survey is one of the best data out there 12:42 <+bridge> [ddnet] @Not Keks Does it help as a screenshot? 12:42 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035503720861016094/Screenshot_2022-10-28_at_12-41-37_Steam_Hardware_Survey_-_DDraceNetwork_owners_-_September_2022.png 12:45 <+bridge> [ddnet] yeah good enough thx 12:58 <+bridge> [ddnet] yeah some interesting stats 12:58 <+bridge> [ddnet] 12:58 <+bridge> [ddnet] ~40% laptop users.. thats quite high 12:58 <+bridge> [ddnet] 12:58 <+bridge> [ddnet] RAM <4GB 1% 12:58 <+bridge> [ddnet] VRAM <1GB 4.53% 12:58 <+bridge> [ddnet] SSE3 100% 12:58 <+bridge> [ddnet] 12:58 <+bridge> [ddnet] around 5.4 with GPUs that are really old, ivy bridge, haswell, some old ATI cards etc. 12:58 <+bridge> [ddnet] yeah some interesting stats 12:58 <+bridge> [ddnet] 12:58 <+bridge> [ddnet] ~40% laptop users.. thats quite high 12:58 <+bridge> [ddnet] 12:58 <+bridge> [ddnet] RAM <4GB 1% 12:58 <+bridge> [ddnet] VRAM <1GB 4.53% 12:58 <+bridge> [ddnet] SSE3 100% 12:58 <+bridge> [ddnet] 12:58 <+bridge> [ddnet] around 5.4% with GPUs that are really old, ivy bridge, haswell, some old ATI cards etc. 12:58 <+bridge> [ddnet] Do we compile with sse3 12:59 <+bridge> [ddnet] ? 13:00 <+bridge> [ddnet] do we have a usecase? i'd assume some libraries we use do it 13:02 <+bridge> [ddnet] on the other hand i think clang does some vectorization with o2 already if i remember correctly but gcc doesnt 13:02 <+bridge> [ddnet] 13:02 <+bridge> [ddnet] tho i dunno which instructions this results in 13:03 <+bridge> [ddnet] depends on the target architecture it's compiling for 13:03 <+bridge> [ddnet] yeah i mean for x64 ofc 13:03 <+bridge> [ddnet] I can see the benefit of laptops, even as someone who never moves their computer. They are much lower power consumption and nowadays easily fast enough. 13:04 <+bridge> [ddnet] well depends what u want to do xD 13:04 <+bridge> [ddnet] I'd probably get a mobile CPU instead of some desktop beast that goes to > 5 GHz 13:04 <+bridge> [ddnet] i consider laptops as insanly slow, especially the GPUs are really bad 13:04 <+bridge> [ddnet] yes single threaded laptops are quite ok 13:04 <+bridge> [ddnet] Sure, but DDNet runs fine πŸ˜„ 13:05 <+bridge> [ddnet] it still depends. there are multiple targets for x86-64, depending on the level of support you want 13:05 <+bridge> [ddnet] I mean even relatively they aren't THAT slow, insanely is a bit of an overreach, no? πŸ˜„ 13:06 <+bridge> [ddnet] depends i guess, if u ok with 720p gaming on mid graphics 13:06 <+bridge> [ddnet] 13:06 <+bridge> [ddnet] or not being able to run blender well enough 13:06 <+bridge> [ddnet] I need my fast cpu 13:06 <+bridge> [ddnet] Laptops are so slow 13:06 <+bridge> [ddnet] gpu wise yes, I was thinking cpu 13:06 <+bridge> [ddnet] for me personally a fast GPU is important. its annoying if stuff doesnt run well 13:06 <+bridge> [ddnet] and programs tend to use GPUs more and more 13:06 <+bridge> [ddnet] more workload is shifted to the GPU i mean 13:07 <+bridge> [ddnet] I compile a lot of rust so i like having a beefy cpu 13:07 <+bridge> [ddnet] :BASED: 13:08 <+bridge> [ddnet] And noise isnt a problem to me 13:08 <+bridge> [ddnet] My headset cancels noise passively 13:08 <+bridge> [ddnet] And i put music 13:08 <+bridge> [ddnet] :greenthing: 13:09 <+bridge> [ddnet] I took a quick look at 4th gen just as an example. The flagship i7 turbos up to 4.4GHz. The flagship i7 mobile turbos up to 4.0GHz. It's just a 400MHz difference. It's even better in 10th gen 13:09 <+bridge> [ddnet] Mobile gpus though yeah, not the best honestly but if you want workstation performance there are beastly laptops too, if you are ok with carrying them around 13:10 <+bridge> [ddnet] another problem is that laptops are quite expensive for what they can do 13:10 <+bridge> [ddnet] They rly are 13:10 <+bridge> [ddnet] for 500 bucks i get 16 core desktop cpu 13:10 <+bridge> [ddnet] And thry often come with just 500gb 13:11 <+bridge> [ddnet] I'd probably get a laptop CPU in a desktop case if that is still possible πŸ˜„ Used to be easy, but no sockets on laptops for a while now :/ 13:11 <+bridge> [ddnet] oh ok 13:11 <+bridge> [ddnet] u can simply undervolt and downclock 13:11 <+bridge> [ddnet] if its such a problem πŸ˜„ 13:11 <+bridge> [ddnet] There is that one chinese guy that solders BGA laptop cpus to adapters and sells them πŸ˜„ 13:11 <+bridge> [ddnet] most of the time CPUs run idle anyway πŸ˜„ 13:11 <+bridge> [ddnet] Why do u want a slower cpu? 13:11 <+bridge> [ddnet] so the 5GHz are just nice to have 13:12 <+bridge> [ddnet] my cpu runs under 7W in idle 13:12 <+bridge> [ddnet] even the idle power consumption of recent desktop CPUs is pretty high 13:12 <+bridge> [ddnet] my gpu similar 13:14 <+bridge> [ddnet] I'd probably keep a normal desktop but I can definitely see the value proposition of a laptop, being able to move around is just great/10 13:14 <+bridge> [ddnet] German article, but idle CPU power of 20 W is bad 13:14 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035511783596757072/Screenshot_2022-10-28_at_13.13.50.png 13:14 <+bridge> [ddnet] u shouldnt underestimate one thing 13:14 <+bridge> [ddnet] 13:14 <+bridge> [ddnet] new GPUs have much more cores, so they can do more with less energy 13:14 <+bridge> [ddnet] 13:14 <+bridge> [ddnet] the problem is at around 80% usage.. .then desktop stuff gets inefficient 13:14 <+bridge> [ddnet] why? 13:14 <+bridge> [ddnet] 20 is nothing 13:14 <+bridge> [ddnet] use a train one time and u wasted more energy than 1 year running this idle 13:15 <+bridge> [ddnet] The train isn't outputting its waste heat into my hot summer apartment though πŸ˜„ 13:15 <+bridge> [ddnet] mhh 20W is not lot of heat 13:15 <+bridge> [ddnet] Run the AC 4head 13:15 <+bridge> [ddnet] the processor is like 3cm big 13:15 <+bridge> [ddnet] its not enough to heat a 1mΒ² of a room 13:15 <+bridge> [ddnet] Size of the CPU mattereth not actually, 20W is 20W 13:16 <+bridge> [ddnet] yes but its still not lot of heat on 1mΒ² 13:16 <+bridge> [ddnet] It's not just the CPU, mainboard etc have also increased in power consumption in recent years 13:16 <+bridge> [ddnet] 20W on the full room is nothing anyway 13:17 <+bridge> [ddnet] Yeah, 20W isn't much heat. Just wanted to say the cpu size isn't a factor 13:17 <+bridge> [ddnet] my point was really more about where the heat is 13:17 <+bridge> [ddnet] The thing about heat is that it doesn't like staying where it is 13:17 <+bridge> [ddnet] air is a pretty good isolastion 13:17 <+bridge> [ddnet] air is a pretty good isolation 13:18 <+bridge> [ddnet] Anyway, I don't like that desktops went from idling at ~25 Watt to 50 Watt in the last 6 years 13:20 <+bridge> [ddnet] Air will not conduct heat well, but it will heat up, the 20W of heat has to go somewhere 13:20 <+bridge> [ddnet] yeah but it will not heat the full room 13:21 <+bridge> [ddnet] heat tends to go to the top 13:21 <+bridge> [ddnet] as soon as its dark outside in germany it will cool again xD 13:23 <+bridge> [ddnet] As far as my understanding of thermodynamics goes, the universe really doesn't like heat gradients, warm air and cold air will exchange heat until equilibrium. Now whether the amount of temperature change due to the heat is negligible or not, that's up to you 13:23 <+bridge> [ddnet] turn off your light and u save 30Watt 13:23 <+bridge> [ddnet] remove the sunlight and u probs save over 20Watts 13:23 <+bridge> [ddnet] I use leds, those are like 6W 13:24 <+bridge> [ddnet] Can't remove the sun, it'd be great though 13:24 <+bridge> [ddnet] remove your body and u probs save over 100watt 13:24 <+bridge> [ddnet] close the whatever u have at your window 13:24 <+bridge> [ddnet] Can't remove body either, humans can't be uploaded to the cloud ye 13:24 <+bridge> [ddnet] your room light has 6watt? 13:24 <+bridge> [ddnet] then gg 13:24 <+bridge> [ddnet] thats not enough for me πŸ˜„ 13:25 <+bridge> [ddnet] Radiation still heats the windows and my walls 13:26 <+bridge> [ddnet] anyway 13:26 <+bridge> [ddnet] u also have to take the difference anyway 13:26 <+bridge> [ddnet] a laptop also uses 5watts or smth 13:26 <+bridge> [ddnet] Really? These modern 7W bulbs are like equivalent to 60W incandescents 13:26 <+bridge> [ddnet] so we already at 15W 13:26 <+bridge> [ddnet] yeah dunno i think mine is like 18watts, the transformator also looses some energy 13:28 <+bridge> [ddnet] protip: run your lightbulb underpowered too, then it lasts much longer 13:28 <+bridge> [ddnet] and is more efficient, less waste heat 13:28 <+bridge> [ddnet] ^^ez 13:29 <+bridge> [ddnet] Anyway, as I said. I'd probably keep a desktop cpu aswell. Just saying no matter the wattage the size of the cpu, there is heat being output and it'll heat the room 13:29 <+bridge> [ddnet] anyway, for me as said its not even so much about the CPU, but GPU, and desktop GPUs are like mini computers, with own mainboards etc. so i have to accept they use extra energy 13:29 <+bridge> [ddnet] 3 W bulbs can be 60 W incandescent equivalent like that: https://www.youtube.com/watch?v=klaJqofCsu4 13:30 <+bridge> [ddnet] I was just about to say have you seen those dubai bulbs πŸ˜„ 13:30 <+bridge> [ddnet] i can ensure my room light isnt the most efficient xD 13:30 <+bridge> [ddnet] I can get 7W =~ 60W ones in europe, they get cool 3W ones 13:31 <+bridge> [ddnet] I do something similar for a long time. I got SceneSwitch LEDs and rarely run them at their full brightness level, so far none have failed. 13:31 <+bridge> [ddnet] I haven't had a led lamp fail in 4 years I think even at full power 13:32 <+bridge> [ddnet] I seem to have gotten lucky on the silicone lottery 13:32 <+bridge> [ddnet] Yeah, only some designs are bad and easily overheat 13:33 <+bridge> [ddnet] just judge yourself @Learath2 xD 13:33 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035516681457520731/photo1666956789.jpeg 13:33 <+bridge> [ddnet] but my lamp also has different lighting modes 13:35 <+bridge> [ddnet] my gpu uses around 30W in ddnet with 1400fps 13:35 <+bridge> [ddnet] thats not nothing but an old laptop could not do it at 30W 13:37 <+bridge> [ddnet] the good thing here is: 13:37 <+bridge> [ddnet] the desktop GPUs have much more shader cores than laptop GPUs (except maybe M1 Max) 13:37 <+bridge> [ddnet] 13:37 <+bridge> [ddnet] so they dont have to clock so high to archive the same goal 13:37 <+bridge> [ddnet] since my gpu is <20% usage its pretty efficient 13:39 <+bridge> [ddnet] Yeah, GPUs are not at 5 GHz (yet), but CPUs have been going crazy recently just to get 5% faster FPS than the other side 13:40 <+bridge> [ddnet] me: just make the maps less gpu heavy lol 13:40 <+bridge> [ddnet] :justatest: 13:41 <+bridge> [ddnet] just drop old hardware and force vulkan, set a good limit that suits your needs 13:41 <+bridge> [ddnet] and be happy 13:43 <+bridge> [ddnet] Honestly, I'm happy as long as I get stable framerates around my refresh rate. It just looks good to me, maybe I just don't have good eyes πŸ˜„ 13:44 <+bridge> [ddnet] One of the reasons I upgrade my system so slowly. Things just don't look that bad to me with almost any stable fps 13:44 <+bridge> [ddnet] when i read phoronix and see all the progress for new software technology i actually wonder when the old hardware will be dropped, or will they always fall back to software rendering? πŸ˜„ 13:44 <+bridge> [ddnet] i mean the maintainance cant be worth it for old stuff 13:45 <+bridge> [ddnet] didn't intel announced something about saving money? 13:46 <+bridge> [ddnet] I guess the fact that old hardware just doesn't change makes it better maintenance cost wise 13:46 <+bridge> [ddnet] i wish i'd have av1 encoding on my GPU :/ 13:46 <+bridge> [ddnet] Now that'd be sth I'd upgrade for 13:47 <+bridge> [ddnet] next amd will have it, rtx 4090 also has it 13:47 <+bridge> [ddnet] get an arc gpu and use it just to decode/encode av1 13:47 <+bridge> [ddnet] xd 13:48 <+bridge> [ddnet] Xd 13:50 <+bridge> [ddnet] Actually, I think arc would be a great fit for you @Not Keks 13:51 <+bridge> [ddnet] It's so extremely opinionated that it refuses to work well with old gfx APIs 13:51 <+bridge> [ddnet] i fear intels drivers 13:51 <+bridge> [ddnet] i am on the dark side then 13:51 <+bridge> [ddnet] I heard it's quickly getting better after the release 13:52 <+bridge> [ddnet] tbh, if i have a good vulkan driver, i have all drivers 13:52 <+bridge> [ddnet] dxvk, zink 13:52 <+bridge> [ddnet] i can even run my window manager under zink already 13:52 <+bridge> [ddnet] minecraft worked good enough 13:52 <+bridge> [ddnet] maybe 80% of native GL driver 14:03 <+bridge> [ddnet] Run the arc on a server to encode av1 solely 14:04 <+bridge> [ddnet] i need it for streaming my desktop xd 14:04 <+bridge> [ddnet] h264 struggles with high refresh rates 14:04 <+bridge> [ddnet] You can just have an extra arc for av1 14:04 <+bridge> [ddnet] or vaapi is it 14:04 <+bridge> [ddnet] yeah ez money boy 14:05 <+bridge> [ddnet] ddnet gives me so much money per month 14:05 <+bridge> [ddnet] i buy rtx 4090 every day 14:05 <+bridge> [ddnet] What is a little money in pursuit of more fps? Cmon, just don’t eat 14:05 <+bridge> [ddnet] good idea actually learath 14:05 <+bridge> [ddnet] vulkan has multi gpu support 14:06 <+bridge> [ddnet] imagine u could render demos in the background 14:06 <+bridge> [ddnet] would be cool 14:07 <+bridge> [ddnet] It’d be nice if I could render headless from the terminal 14:07 <+bridge> [ddnet] mhhh yeah 14:07 <+bridge> [ddnet] but would still require a vk instance, just without a surface 14:08 <+bridge> [ddnet] That’s fine I guess 14:09 <+bridge> [ddnet] guess i should think about it 14:09 <+bridge> [ddnet] Do it 14:09 <+bridge> [ddnet] at some point i have to add framebuffer rendering anyway at least for vulkan 14:09 <+bridge> [ddnet] its simply too annoying to have the ddnet window open all the time 14:09 <+bridge> [ddnet] Can u have a vk instance without a gpu? 14:09 <+bridge> [ddnet] well cpu rendering 14:09 <+bridge> [ddnet] To make a server to render demos 14:09 <+bridge> [ddnet] Ok 14:09 <+bridge> [ddnet] Future service 14:10 <+bridge> [ddnet] Now just need top 10 rank demos auto published 14:10 <+bridge> [ddnet] that would be cool indeed 14:10 <+bridge> [ddnet] if we'd finally have teehistorian to demo 14:10 <+bridge> [ddnet] it would motivate me 14:16 <+bridge> [ddnet] mhh is it safe to call Localize whenever i want to? 14:17 <+bridge> [ddnet] kinda feels weird to call it inside the backend tho 14:17 <+bridge> [ddnet] maybe i should enumerize the errors and give them text only in the higher level components^^ 14:19 <+bridge> [ddnet] This probably is the correct way to do this 14:19 <+bridge> [ddnet] yeah just lot of work πŸ˜„ 14:19 <+bridge> [ddnet] 54 different errors in vulkan backend 14:19 <+bridge> [ddnet] << 14:36 <+bridge> [ddnet] rust Result 14:36 <+bridge> [ddnet] Imagine not having sum types smh 14:46 <+bridge> [ddnet] how does that fix my problem 14:47 <+bridge> [ddnet] i am thinking about a Localizable function that is empty and only there so the translation script can find the string of the backend too 14:50 <+bridge> [ddnet] @deen u ok with this? then we can also remove all the comments like // Locaize("...") 14:56 <+bridge> [ddnet] ```python 14:56 <+bridge> [ddnet] matches = re.findall(r"Localize\s*\(\s*\"([^\"]+)\"(?:\s*,\s*\"([^\"]+)\")?\s*\)", fileobj.read()) 14:56 <+bridge> [ddnet] ``` 14:56 <+bridge> [ddnet] 14:56 <+bridge> [ddnet] ui, that's what i call a regexc 14:57 <+bridge> [ddnet] ```python 14:57 <+bridge> [ddnet] matches = re.findall(r"Localize\s*\(\s*\"([^\"]+)\"(?:\s*,\s*\"([^\"]+)\")?\s*\)", fileobj.read()) 14:57 <+bridge> [ddnet] ``` 14:57 <+bridge> [ddnet] 14:57 <+bridge> [ddnet] ui, that's what i call a regex 15:09 <+bridge> [ddnet] :justatest: 15:34 <+bridge> [ddnet] @Not Keks man 15:34 <+bridge> [ddnet] i change the file with name Teeworlds and 15:35 <+bridge> [ddnet] i start the game and every thing get Change and i change the file name to Teeworlds again and i didnt get my old game 15:35 <+bridge> [ddnet] still everything new 15:36 <+bridge> [ddnet] it now uses DDnet file 15:37 <+bridge> [ddnet] always close client before you do stuff like this 15:38 <+bridge> [ddnet] i did 15:39 <+bridge> [ddnet] normally it uses teeworlds directory first, then ddnet 15:39 <+bridge> [ddnet] 15:39 <+bridge> [ddnet] if u renamed teeworlds to ddnet it used ddnet 15:39 <+bridge> [ddnet] what did u name it? 17:23 <+bridge> [ddnet] What is it good for? 17:25 <+bridge> [ddnet] i can use strings in backend without needing to localize them there 17:40 <+bridge> [ddnet] that doesn't work for formatted strings, I think 17:40 <+bridge> [ddnet] I don't know if you need those 17:42 <+bridge> [ddnet] i dont need them 17:42 <+bridge> [ddnet] its just that i dont want to add a // Localize("...") comment to every string 17:43 <+bridge> [ddnet] and handling all errors by enums just to convert them to strings later is lot of coding and also kinda code dublication 17:43 <+bridge> [ddnet] since they arent really error types, but more like error descriptions 17:50 <+bridge> [ddnet] @deen how often is the sqlite db download updated on ddnet stats page? 17:50 <+bridge> [ddnet] Using the mysql db is not feasible for me 17:51 <+bridge> [ddnet] Takes way too long on my pc with a good cpu, cant image on a vps 17:51 <+bridge> [ddnet] Oh 17:52 <+bridge> [ddnet] Maybe i should use csv 17:52 <+bridge> [ddnet] And polars 17:52 <+bridge> [ddnet] Did you know the rust csv library is one of the best out there 17:52 <+bridge> [ddnet] Surpasing in speed the c++ ones 17:55 <+bridge> [ddnet] 17:55 <+bridge> [ddnet] every night 17:56 <+bridge> [ddnet] nice 17:56 <+bridge> [ddnet] @heinrich5991 do u know if its more worth to use csv or sqlite when perfoming read only queries? 17:57 <+bridge> [ddnet] i wonder if polars is faster than sqlite itself making queries 18:03 <+bridge> [ddnet] Probs csv 18:26 <+bridge> [ddnet] https://blog.rust-lang.org/2022/10/28/gats-stabilization.html 18:26 <+bridge> [ddnet] As of Rust 1.65, which is set to release on November 3rd, generic associated types (GATs) will be stable β€” over six and a half years after the original RFC was opened. This is truly a monumental achievement; however, as with a few of the other monumental features of Rust, like async or const generics, there are limitations in the initial stabilization that we plan to remove in the future. 18:32 <+bridge> [ddnet] I moved them here. It seems like they are getting ignored. Any ideas why? 18:32 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035591780680335391/DDNetSpikes.png 18:32 <+bridge> [ddnet] why should they magically work 18:32 <+bridge> [ddnet] is the server using the same slots? 18:33 <+bridge> [ddnet] I made the neccesary changes to the code 18:33 <+bridge> [ddnet] the client filters invalid tiles 18:33 <+bridge> [ddnet] maplayers.cpp 18:34 <+bridge> [ddnet] It's a server side issue currently 18:34 <+bridge> [ddnet] ah no, we moved it to mapimages.cpp 18:34 <+bridge> [ddnet] IsValidGameTile 18:34 <+bridge> [ddnet] I added this line ```(Index >= TILE_SPIKE_FIRST && Index <= TILE_SPIKE_LAST) || 18:34 <+bridge> [ddnet] ``` 18:34 <+bridge> [ddnet] in mapites.cpp 18:34 <+bridge> [ddnet] in mapitems.cpp 18:35 <+bridge> [ddnet] and these lines on mapitems.h ``` TILE_SPIKE_RED = TILE_SPIKE_FIRST, 18:35 <+bridge> [ddnet] TILE_SPIKE_ORANGE, 18:35 <+bridge> [ddnet] TILE_SPIKE_YELLOW, 18:35 <+bridge> [ddnet] TILE_SPIKE_GREEN, 18:35 <+bridge> [ddnet] TILE_SPIKE_LBLUE, 18:35 <+bridge> [ddnet] TILE_SPIKE_BLUE, 18:35 <+bridge> [ddnet] TILE_SPIKE_PURPLE, 18:35 <+bridge> [ddnet] TILE_SPIKE_PINK, 18:35 <+bridge> [ddnet] TILE_SPIKE_WHITE, 18:35 <+bridge> [ddnet] TILE_SPIKE_BLACK, 18:35 <+bridge> [ddnet] TILE_SPIKE_LAST = TILE_SPIKE_BLACK, 18:35 <+bridge> [ddnet] ``` 18:35 <+bridge> [ddnet] hey guys quick question: 18:35 <+bridge> [ddnet] how many requests can i make to `https://master1.ddnet.org/ddnet/15/servers.json` in what amount of time so i don't get ratelimited/blacklisted 18:37 <+bridge> [ddnet] Check cloudflare limits 18:37 <+bridge> [ddnet] Cuz its behind that 18:38 <+bridge> [ddnet] and ur server acts as ddrace server? 18:38 <+bridge> [ddnet] yeah 18:39 <+bridge> [ddnet] just look with a debugger why its not inside i guess 18:40 <+bridge> [ddnet] the previous tile positions worked (the previous shared image), so I thought it may be a blacklist tileissue or smt like that? 18:40 <+bridge> [ddnet] if(n == MAP_IMAGE_ENTITY_LAYER_TYPE_GAME && !IsValidGameTile((int)TileIndex)) 18:40 <+bridge> [ddnet] ValidTile = false; 18:40 <+bridge> [ddnet] the previous tile positions worked (the previous shared image from tile 114), so I thought it may be a blacklist tileissue or smt like that? 18:40 <+bridge> [ddnet] if it doesnt meet the condition 18:40 <+bridge> [ddnet] it should work 18:41 <+bridge> [ddnet] thanks 18:44 <+bridge> [ddnet] There is no ratelimit, once per second I wouldn't mind, everything more often seems excessive 18:44 <+bridge> [ddnet] We archive it every 2 seconds our selves 18:45 <+bridge> [ddnet] That is in the client code I am having problem with the server code. The tee doesn't die on the tile/the tile doesn't get printed on HandleTiles on character.cpp under server/entities 18:45 <+bridge> [ddnet] so im safe if i do something like 1 refresh per 5 seconds 18:45 <+bridge> [ddnet] yes 18:45 <+bridge> [ddnet] great, thanks 18:45 <+bridge> [ddnet] That is in the client code I am having problem with the server code. The tee doesn't die on the tile/the tile doesn't get printed on HandleTiles on character.cpp under server/entities 18:45 <+bridge> [ddnet] Maybe it's considered another layer? 18:45 <+bridge> [ddnet] what are you doing with it? @Alexander_ 18:46 <+bridge> [ddnet] im showing 3 servers on a website and their player count and if they are online 18:46 <+bridge> [ddnet] here is a preview 18:46 <+bridge> [ddnet] dunno the ddrace code but in vanilla some tiles are simply filtered in collisions.cpp 18:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035595433004769400/unknown.png 18:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035595537384214618/unknown.png 18:47 <+bridge> [ddnet] why not make it client side? 18:47 <+bridge> [ddnet] currently it doesn't auto refresh but im planning on doing it every 5 seconds if viable 18:47 <+bridge> [ddnet] https://aliveclan.de/#home 18:48 <+bridge> [ddnet] 18:48 <+bridge> [ddnet] here ^ it just downloads the json 18:48 <+bridge> [ddnet] the server json allows cors 18:48 <+bridge> [ddnet] i don't understand what you mean by client side 18:48 <+bridge> [ddnet] and an interval with 5 seconds is ez in js 18:48 <+bridge> [ddnet] it's already client side? 18:48 <+bridge> [ddnet] ah ok 18:49 <+bridge> [ddnet] basically a javascript fetch function fetching servers.json and then filtering for specific servers by finding the ip address 18:49 <+bridge> [ddnet] I don't know. my guess would be sqlite 18:49 <+bridge> [ddnet] if it doesnt find the ip address then it's offline 18:49 <+bridge> [ddnet] yeah i see 18:49 <+bridge> [ddnet] but then you shouldnt mind too much 18:49 <+bridge> [ddnet] the fetch only happens if smone visits your site 18:50 <+bridge> [ddnet] yes, exactly 18:50 <+bridge> [ddnet] but i dont want them or me while developing to be blacklisted by ddnet 18:50 <+bridge> [ddnet] i guess its mostly cloudflares decision anyway isnt it 18:50 <+bridge> [ddnet] if they consider it ddos they filter the traffic 18:51 <+bridge> [ddnet] yeah but you could set your own parameters for ratelimiting in cloudflare so that's why i asked if you guys set any 18:52 <+bridge> [ddnet] just try it out, jkjk 19:01 <+bridge> [ddnet] there's not much point for us to set rate limits 19:02 <+bridge> [ddnet] cloudflare handles the requests 19:02 <+bridge> [ddnet] we don't get hit by your 10,000 requests per second 19:05 <+bridge> [ddnet] :justatest: 19:06 <+bridge> [ddnet] conditionally 19:09 <+bridge> [ddnet] @Alexander_ 1 req per second is fine 19:09 <+bridge> [ddnet] Probs 10 too 19:09 <+bridge> [ddnet] But no need 19:10 <+bridge> [ddnet] please no 19:10 <+bridge> [ddnet] 1 per 5 seconds is plenty 19:10 <+bridge> [ddnet] Cloudflare caches it 19:10 <+bridge> [ddnet] i'd rather do 5 because the client needs time to download the json file and if i overdo it then it would probably break 19:10 <+bridge> [ddnet] yeah its also not really useful to generate more traffic than needed really 19:11 <+bridge> [ddnet] even 5 is too much 19:11 <+bridge> [ddnet] Im just saying that cloudflare wont ban u for 1, 10 or 30 req per second, not that u should 19:11 <+bridge> [ddnet] ah okay okay 19:11 <+bridge> [ddnet] yeah cloudflare is pretty stronk 19:14 <+bridge> [ddnet] have you tried? 19:14 <+bridge> [ddnet] preferably not against ddnet.org 19:16 <+bridge> [ddnet] @heinrich5991 not rly,but i often see ratelimits on most apis at 30 reqs per second 19:18 <+bridge> [ddnet] To identify a general threshold for Cloudflare Rate Limiting, divide 24 hours of uncached website requests by the unique visitors for the same 24 hours. Then, divide by the estimated average minutes of a visit. Finally, multiply by 4 (or larger) to establish an estimated threshold per minute for your website. A value higher than 4 is fine since most attacks are an order of magnitude above typical traffic rates. 19:18 <+bridge> [ddnet] 19:18 <+bridge> [ddnet] To identify URL rate limits for specific URLs, use 24 hours of uncached requests and unique visitors for the specific URL. Adjust thresholds based on user reports and your own monitoring. 19:18 <+bridge> [ddnet] Idk xd 19:19 <+bridge> [ddnet] https://support.cloudflare.com/hc/en-us/articles/115001635128-Configuring-Cloudflare-Rate-Limiting 19:22 <+bridge> [ddnet] but since we all good programmers we dont do it 19:22 <+bridge> [ddnet] now back to normal business 19:22 <+bridge> [ddnet] 19:22 <+bridge> [ddnet] any new rust libs @Ryozuki ? 19:25 <+bridge> [ddnet] Yes, rustyman 19:25 <+bridge> [ddnet] I wonder who made it 19:25 <+bridge> [ddnet] Thanks that was it. It was in TileExists(). 19:25 <+bridge> [ddnet] :monkalaugh: 19:26 <+bridge> [ddnet] This is bigger news 19:26 <+bridge> [ddnet] when do i get virtual functions to overrid 19:26 <+bridge> [ddnet] when do i get virtual functions to override 19:27 <+bridge> [ddnet] Ew no 19:27 <+bridge> [ddnet] Use traits 19:29 <+bridge> [ddnet] but a dyn trait is basically that? 19:29 <+bridge> [ddnet] on asm level 19:49 <+bridge> [ddnet] @Not Keks well dyn trait is used for dynamic dispatch 19:50 <+bridge> [ddnet] > We use dyn Trait over (data, vtable) for the same reason we use, references over pointers, Rc over (pointer_data, pointer_counter), Box over malloc/free. It's a safe abstraction which can be proven to not cause errors. 19:50 <+bridge> [ddnet] https://users.rust-lang.org/t/dyn-trait-vs-data-vtable/36127 19:53 <+bridge> [ddnet] yeah i am fine with that 19:53 <+bridge> [ddnet] i just need the functionality 19:53 <+bridge> [ddnet] its just that rust doesnt have OOP as in inheritance 19:53 <+bridge> [ddnet] it favors composition 19:54 <+bridge> [ddnet] with the trait model 19:54 <+bridge> [ddnet] and its something generally good 19:54 <+bridge> [ddnet] i just hope it doesnt create too much more code 19:54 <+bridge> [ddnet] the cat and dog classes that plague java 19:54 <+bridge> [ddnet] thats too much code xd 19:54 <+bridge> [ddnet] i dont feel im overly verbose in rust 19:55 <+bridge> [ddnet] @Not Keks if u code in a "rusty" way it lends itself i would say 19:55 <+bridge> [ddnet] u shouldnt force a java oop style on rust 19:55 <+bridge> [ddnet] u will end up with unidiomatic code 19:55 <+bridge> [ddnet] did u read the rust book yet? 19:55 <+bridge> [ddnet] u rly should 19:56 <+bridge> [ddnet] the rust book is a web btw 19:56 <+bridge> [ddnet] https://doc.rust-lang.org/book/ 19:56 <+bridge> [ddnet] this 19:56 <+bridge> [ddnet] i dont feel like i want or need this 19:56 <+bridge> [ddnet] i just need a project and then start 19:56 <+bridge> [ddnet] thats sad 19:56 <+bridge> [ddnet] u rly need this 19:56 <+bridge> [ddnet] i would say 19:57 <+bridge> [ddnet] also its pretty interesting 19:57 <+bridge> [ddnet] yeah dunno xD 19:57 <+bridge> [ddnet] i hate reading books 19:57 <+bridge> [ddnet] i also hate reading books 19:57 <+bridge> [ddnet] though this to mee didnt feel like a book 19:57 <+bridge> [ddnet] more like a introduction to the language 19:57 <+bridge> [ddnet] its not a 200 page c++ book 19:58 <+bridge> [ddnet] anyway, i dont think its worth it, u usually dont get a feeling for the abstractions if u just read 19:58 <+bridge> [ddnet] i think u do in this case 19:58 <+bridge> [ddnet] but its not just abstractions 19:58 <+bridge> [ddnet] rust introduces new things u are not used to 19:58 <+bridge> [ddnet] lifetimes 19:58 <+bridge> [ddnet] borrowing 19:58 <+bridge> [ddnet] also sometimes i look how u'd do stuff in rust, when i feel like that could be hard without unsafe rust 19:59 <+bridge> [ddnet] like what? 19:59 <+bridge> [ddnet] well we discussed this before, especially thread related stuff 19:59 <+bridge> [ddnet] not rly 19:59 <+bridge> [ddnet] the thing i like the mosti s rust thread safety 20:00 <+bridge> [ddnet] but i remember u said some weird obscure edge case 20:00 <+bridge> [ddnet] i dont remember much tho xd 20:00 <+bridge> [ddnet] yeah but every abstraction comes with a restriction 20:00 <+bridge> [ddnet] yeah these restrictions rule out all unsafe abstractions and probably some valid use cases 20:00 <+bridge> [ddnet] but more and more less valid use cases are ruled out 20:01 <+bridge> [ddnet] as rust improves 20:01 <+bridge> [ddnet] i can also write a game in javascript 20:01 <+bridge> [ddnet] its not like i cannot imagine it 20:01 <+bridge> [ddnet] u right, its a 200 page rust book 20:01 <+bridge> [ddnet] and rust is nice bcs it has a better idea than all the trash langauges like java 20:01 <+bridge> [ddnet] for me its not so much about if its possible or not. More about if its actually more elegant of solution 20:02 <+bridge> [ddnet] i find rust way more elegant than c++ way often 20:02 <+bridge> [ddnet] this is due to algebraic data types 20:02 <+bridge> [ddnet] rust enums are just godly 20:03 <+bridge> [ddnet] and try to find something as good as serde 20:03 <+bridge> [ddnet] the serde author truly is a genius 20:03 <+bridge> [ddnet] https://serde.rs/ 20:03 <+bridge> [ddnet] the thing that scares me about rust is how you need to do like 9000 things just to get something down 20:03 <+bridge> [ddnet] vague 20:04 <+bridge> [ddnet] > Where many other languages rely on runtime reflection for serializing data, Serde is instead built on Rust's powerful trait system. A data structure that knows how to serialize and deserialize itself is one that implements Serde's Serialize and Deserialize traits (or uses Serde's derive attribute to automatically generate implementations at compile time). This avoids any overhead of reflection or runtime type information. In fact in many 20:05 <+bridge> [ddnet] also like, you want to edit someones project? you need to find like 3 dlls and put them in a folder. 20:05 <+bridge> [ddnet] @Not Keks there are many cases where serde json serializer is faster than a hand written one xd 20:05 <+bridge> [ddnet] yes it sounds really great if you want an ez powerful solution 20:06 <+bridge> [ddnet] its ez and really configurable, and not limited to e.g 1 json serializer implementation 20:06 <+bridge> [ddnet] in fact there are multiple, 20:06 <+bridge> [ddnet] serde_json simd_json 20:06 <+bridge> [ddnet] all serde compatible 20:06 <+bridge> [ddnet] in this case i'd for example ask what if i want to do this: 20:06 <+bridge> [ddnet] 20:06 <+bridge> [ddnet] load only have data, and start processing these data in another thread 20:06 <+bridge> [ddnet] then continue loading rest 20:06 <+bridge> [ddnet] i had use cases for such situations 20:06 <+bridge> [ddnet] so i end up in an own impl πŸ˜„ 20:07 <+bridge> [ddnet] not for json tho 20:07 <+bridge> [ddnet] i mean u can do that yeah 20:07 <+bridge> [ddnet] anyway generally making it ez is better anyway 20:07 <+bridge> [ddnet] serde doesnt handle how u load the data in any way 20:07 <+bridge> [ddnet] i think u rly dont know how serde works xd 20:07 <+bridge> [ddnet] if smth is perf hit u can still optimize it later 20:07 <+bridge> [ddnet] if ur solution is stable 20:08 <+bridge> [ddnet] also it allows parsing in a streaming way by passing a reader 20:08 <+bridge> [ddnet] sounds to me like it handles datatype loading itself 20:08 <+bridge> [ddnet] no 20:08 <+bridge> [ddnet] it just handles parsing 20:08 <+bridge> [ddnet] u pass it the data 20:09 <+bridge> [ddnet] ```rust 20:09 <+bridge> [ddnet] use serde::{Deserialize, Serialize}; 20:09 <+bridge> [ddnet] use serde_json::Result; 20:09 <+bridge> [ddnet] 20:09 <+bridge> [ddnet] #[derive(Serialize, Deserialize)] 20:09 <+bridge> [ddnet] struct Person { 20:09 <+bridge> [ddnet] name: String, 20:09 <+bridge> [ddnet] age: u8, 20:09 <+bridge> [ddnet] phones: Vec, 20:09 <+bridge> [ddnet] } 20:09 <+bridge> [ddnet] 20:09 <+bridge> [ddnet] fn typed_example() -> Result<()> { 20:09 <+bridge> [ddnet] // Some JSON input data as a &str. Maybe this comes from the user. 20:09 <+bridge> [ddnet] let data = r#" 20:09 <+bridge> [ddnet] { 20:09 <+bridge> [ddnet] "name": "John Doe", 20:09 <+bridge> [ddnet] "age": 43, 20:09 <+bridge> [ddnet] "phones": [ 20:09 <+bridge> [ddnet] "+44 1234567", 20:09 <+bridge> [ddnet] "+44 2345678" 20:09 <+bridge> [ddnet] ] 20:09 <+bridge> [ddnet] }"#; 20:09 <+bridge> [ddnet] 20:09 <+bridge> [ddnet] // Parse the string of data into a Person object. This is exactly the 20:09 <+bridge> [ddnet] // same function as the one that produced serde_json::Value above, but 20:09 <+bridge> [ddnet] // now we are asking it for a Person as output. 20:09 <+bridge> [ddnet] let p: Person = serde_json::from_str(data)?; 20:09 <+bridge> [ddnet] 20:09 <+bridge> [ddnet] // Do things just like with any other Rust data structure. 20:09 <+bridge> [ddnet] println!("Please call {} at the number {}", p.name, p.phones[0]); 20:09 <+bridge> [ddnet] 20:09 <+bridge> [ddnet] and whats so genius about it then? 20:09 <+bridge> [ddnet] that it parses this without any runtime reflection 20:10 <+bridge> [ddnet] and its rly ergonomic 20:10 <+bridge> [ddnet] mh 20:10 <+bridge> [ddnet] but then its just constexpr 20:10 <+bridge> [ddnet] i meant a different scenario 20:11 <+bridge> [ddnet] it handles dynamic not known data too 20:11 <+bridge> [ddnet] in serde_json it would be a Value 20:11 <+bridge> [ddnet] but if u load it from disk? 20:11 <+bridge> [ddnet] yeah same 20:12 <+bridge> [ddnet] the program works if u load the data from disk 20:12 <+bridge> [ddnet] so it has some overhead in memory consumption? 20:12 <+bridge> [ddnet] or does it save it as binary? 20:12 <+bridge> [ddnet] ```rust 20:12 <+bridge> [ddnet] use serde::Deserialize; 20:12 <+bridge> [ddnet] 20:12 <+bridge> [ddnet] use std::error::Error; 20:12 <+bridge> [ddnet] use std::fs::File; 20:12 <+bridge> [ddnet] use std::io::BufReader; 20:12 <+bridge> [ddnet] use std::path::Path; 20:12 <+bridge> [ddnet] 20:12 <+bridge> [ddnet] #[derive(Deserialize, Debug)] 20:12 <+bridge> [ddnet] struct User { 20:12 <+bridge> [ddnet] fingerprint: String, 20:12 <+bridge> [ddnet] location: String, 20:12 <+bridge> [ddnet] } 20:12 <+bridge> [ddnet] 20:12 <+bridge> [ddnet] fn read_user_from_file>(path: P) -> Result> { 20:12 <+bridge> [ddnet] // Open the file in read-only mode with buffer. 20:12 <+bridge> [ddnet] let file = File::open(path)?; 20:12 <+bridge> [ddnet] let reader = BufReader::new(file); 20:12 <+bridge> [ddnet] 20:12 <+bridge> [ddnet] // Read the JSON contents of the file as an instance of `User`. 20:12 <+bridge> [ddnet] let u = serde_json::from_reader(reader)?; 20:13 <+bridge> [ddnet] 20:13 <+bridge> [ddnet] // Return the `User`. 20:13 <+bridge> [ddnet] Ok(u) 20:13 <+bridge> [ddnet] } 20:13 <+bridge> [ddnet] 20:13 <+bridge> [ddnet] fn main() { 20:13 <+bridge> [ddnet] let u = read_user_from_file("test.json").unwrap(); 20:13 <+bridge> [ddnet] println!("{:#?}", u); 20:13 <+bridge> [ddnet] } 20:13 <+bridge> [ddnet] ``` 20:13 <+bridge> [ddnet] it can do 0 copy parsing 20:13 <+bridge> [ddnet] idk what u on about abotu saving 20:13 <+bridge> [ddnet] i think we are not understanding each other xd 20:13 <+bridge> [ddnet] yes u say it has zero cost basically? 20:13 <+bridge> [ddnet] well u can make it this way 20:13 <+bridge> [ddnet] in the case shown its not cuz its using owned strings 20:13 <+bridge> [ddnet] https://serde.rs/lifetimes.html 20:14 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035617496155299851/unknown.png 20:17 <+bridge> [ddnet] well brb eating 20:46 <+bridge> [ddnet] on what rust project did that happen? hasn't been my experience so far 20:46 <+bridge> [ddnet] I only had that experience with non-rust projects, actually 20:47 <+bridge> [ddnet] cipy sent me something and when i tried to run it it was like, yelling at me for missing files or smth 20:47 <+bridge> [ddnet] so i had to like, go get the files and place them in some rust folder in my pc 20:48 <+bridge> [ddnet] weird 20:48 <+bridge> [ddnet] weird indeed 20:48 <+bridge> [ddnet] i nevern eeded any file 20:49 <+bridge> [ddnet] wtf 20:49 <+bridge> [ddnet] probs some c bindings 20:50 <+bridge> [ddnet] but yeah rust compiles staticly which i really like ^^ 20:52 <+bridge> [ddnet] statically by default * 20:52 <+bridge> [ddnet] https://doc.rust-lang.org/reference/linkage.html 23:15 <+bridge> [ddnet] i have 100 fps after i do alt tab 23:15 <+bridge> [ddnet] usually i have 5000 23:28 <+bridge> [ddnet] press "restart" in windows 23:28 <+bridge> [ddnet] it helps 23:28 <+bridge> [ddnet] but i need to altab and i cant play after it 23:29 <+bridge> [ddnet] no i mean press restart 23:29 <+bridge> [ddnet] in windows 23:29 <+bridge> [ddnet] not restart the client 23:30 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035666875130052659/unknown.png 23:30 <+bridge> [ddnet] I UNDERSTAND 23:30 <+bridge> [ddnet] i said yes it helps 23:30 <+bridge> [ddnet] but i cant restart 9999999 times 23:31 <+bridge> [ddnet] install latest GPU drivers 23:31 <+bridge> [ddnet] and restart 23:31 <+bridge> [ddnet] ^^ 23:31 <+bridge> [ddnet] do you use vulkan or opengl ? 23:31 <+bridge> [ddnet] 23:31 <+bridge> [ddnet] settings -> graphics -> renderer in client 23:31 <+bridge> [ddnet] yes i do 23:31 <+bridge> [ddnet] ^ try what you dont use 23:31 <+bridge> [ddnet] its not a boolean question 23:31 <+bridge> [ddnet] which one do you use 23:32 <+bridge> [ddnet] 1.0.0 23:32 <+bridge> [ddnet] try opengl then 23:32 <+bridge> [ddnet] 3.3 23:32 <+bridge> [ddnet] less fps 23:32 <+bridge> [ddnet] can't have it all 23:33 <+bridge> [ddnet] then install latest drivers 23:33 <+bridge> [ddnet] whats ur GPU, what is your driver? 23:33 <+bridge> [ddnet] 3080ti 23:33 <+bridge> [ddnet] latest driver from nvidia.com? 23:33 <+bridge> [ddnet] drivers from 07 2022 23:33 <+bridge> [ddnet] try the current one 23:34 <+bridge> [ddnet] https://www.nvidia.com/download/index.aspx?lang=en-us 23:35 <+bridge> [ddnet] How do I change renderer btw 23:35 <+bridge> [ddnet] like not in game 23:35 <+bridge> [ddnet] from game files 23:37 <+bridge> [ddnet] gfx_backend 23:37 <+bridge> [ddnet] OpenGL 23:37 <+bridge> [ddnet] Vulkan 23:37 <+bridge> [ddnet] Thanks 23:37 <+bridge> [ddnet] on linux GLES 23:37 <+bridge> [ddnet] is there vulkan 2.0.0? 23:37 <+bridge> [ddnet] no 23:37 <+bridge> [ddnet] opengl 3.3.0 doesnt work for me 23:37 <+bridge> [ddnet] there is vulkan 1.3 23:37 <+bridge> [ddnet] probs amd gpu 23:37 <+bridge> [ddnet] how do i use it ingame 23:37 <+bridge> [ddnet] yeye 23:37 <+bridge> [ddnet] the beta drivers are buggy 23:37 <+bridge> [ddnet] i dont think im using beta 23:37 <+bridge> [ddnet] there is no vulkan 1.3 implementation 23:37 <+bridge> [ddnet] but latest 23:38 <+bridge> [ddnet] but vulkan 1.3 is downward compatible 23:38 <+bridge> [ddnet] https://tenor.com/view/sad-troll-face-depressed-trollface-gif-25126675 23:38 <+bridge> [ddnet] so u basically using vulkan 1.3 23:43 <+bridge> [ddnet] amd calls them optional, but they also call them beta 23:43 <+bridge> [ddnet] 23:44 <+bridge> [ddnet] and for some reason they promote them more than their stable drivers on their website xD 23:44 <+bridge> [ddnet] dunno what their reasoning is 23:44 <+bridge> [ddnet] ah so amd = :nouis: 23:44 <+bridge> [ddnet] yes 23:44 <+bridge> [ddnet] and i download them cause i think that they are better to have 23:45 <+bridge> [ddnet] yeah its not your fault, i'd do that too πŸ˜„ 23:45 <+bridge> [ddnet] when in reality it means more unstable driver 23:45 <+bridge> [ddnet] and if i wouldnt know its buggy for ddnet, i'd also recommend it 23:45 <+bridge> [ddnet] there is also another thing that is happening to me that didn't happen before (before i reinstalled windows) 23:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035670959316803704/Gx3fk1.webm 23:46 <+bridge> [ddnet] there is a gap when showing the taskbar 23:46 <+bridge> [ddnet] there is a gap when showing and hiding the taskbar 23:47 <+bridge> [ddnet] and I can't find anyone else talking about it on the internet 23:48 <+bridge> [ddnet] here nvidia for example doesnt even show it, except you explicity search for beta drivers πŸ˜„ 23:48 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1035671353610743808/unknown.png 23:48 <+bridge> [ddnet] is that also if u dont have a dynamic taskbar? 23:48 <+bridge> [ddnet] dynamic taskbar? 23:48 <+bridge> [ddnet] it always goes away 23:49 <+bridge> [ddnet] it doesn't happen since there is no animation then 23:49 <+bridge> [ddnet] but i don't like seeing the taskbar always 23:49 <+bridge> [ddnet] weird stuff 23:50 <+bridge> [ddnet] i know its the drivers since its not happening when im updating it (it disables it for a moment) 23:51 <+bridge> [ddnet] its just weird that this is caused by the GPU driver, but maybe its some weird interpolation inaccuracy in the rendering 23:51 <+bridge> [ddnet] It's weird to me that it didn't happen before i reinstalled windows 23:52 <+bridge> [ddnet] But I probably had an old version of the driver 23:52 <+bridge> [ddnet] But I probably had an older version of the driver 23:52 <+bridge> [ddnet] i mean u can simply downgrade πŸ˜„ 23:52 <+bridge> [ddnet] I think I would if it was that easy 23:52 <+bridge> [ddnet] I'd have to try a lot of driver versions before I find the one that works 23:53 <+bridge> [ddnet] And the process of installing is long 23:53 <+bridge> [ddnet] i see 23:53 <+bridge> [ddnet] replace directx.dll with directx.dll from dxvk 23:53 <+bridge> [ddnet] ez 23:53 <+bridge> [ddnet] Can you explain what would that do 23:54 <+bridge> [ddnet] I feel like you are joking 23:54 <+bridge> [ddnet] i have no idea if that works with windows 23:54 <+bridge> [ddnet] but in theory 23:54 <+bridge> [ddnet] 23:54 <+bridge> [ddnet] windows probs uses directx to render their window manager 23:54 <+bridge> [ddnet] 23:54 <+bridge> [ddnet] dxvk is basically, directx on vulkan 23:54 <+bridge> [ddnet] so all dx calls are translated to vk 23:54 <+bridge> [ddnet] if u have some old game and want more FPS, u can try it out 23:54 <+bridge> [ddnet] they usually easily beat dx9 drivers 23:55 <+bridge> [ddnet] Okay but would it work for windows 23:55 <+bridge> [ddnet] i dunno i never tested it 23:55 <+bridge> [ddnet] but in theory nothing speaks against it probs 23:55 <+bridge> [ddnet] I trust you so im gonna try it xd 23:56 <+bridge> [ddnet] but i cannot say what exactly needs to be replaced 23:56 <+bridge> [ddnet] 23:56 <+bridge> [ddnet] windows uses dxgi for all rendering, quite possible that they hacked in some microsoft exclusive stuff πŸ˜„ 23:56 <+bridge> [ddnet] better google first xD 23:56 <+bridge> [ddnet] I am xd 23:57 <+bridge> [ddnet] https://en.wikipedia.org/wiki/Desktop_Window_Manager#:~:text=DWM%20uses%20DirectX%20to%20perform,screen%20buffers%20to%20the%20display. 23:57 <+bridge> [ddnet] "DWM uses DirectX to perform the function of compositing and rendering in the GPU, freeing the CPU of the task of managing the rendering from the off-screen buffers to the display. " 23:57 <+bridge> [ddnet] so maybe its actually possible 23:58 <+bridge> [ddnet] but i cannot find any post about someone trying it πŸ˜„ 23:59 <+bridge> [ddnet] lets see if i can find the right file