02:37 < ws-client> @javasenior1337 how did it go? 04:44 < ws-client> @Jupstar ✪ I used you as the gold standard for fng hammer tuning and took your code from fng2 I hope that is okay 05:11 < bridge> Dr. Web is malware on it's own 07:01 < bridge> Did you see linked list example? 07:29 < bridge> theres some russian mod clearly based on c&p of jupeyys fng :kek: 07:29 < bridge> no worries ziller 08:17 < bridge> chiller where are you 08:40 < bridge> I just realized that static methods on structs look exactly like if `Foo` was a module and `bar` was a function in it :\ 08:40 < bridge> ``` 08:40 < bridge> struct Foo {} 08:40 < bridge> 08:40 < bridge> impl Foo { 08:40 < bridge> fn bar() { 08:40 < bridge> ... 08:40 < bridge> } 08:40 < bridge> } 08:40 < bridge> 08:40 < bridge> Foo::bar(); 08:40 < bridge> ``` 08:53 < bridge> @learath2 do you have any ideas for how modules should like, or yoink rust's and call it a day? :santatrollet: 09:13 < bridge> Yes sry I fell asleep 09:13 < bridge> :brownbear: 09:54 < ws-client> @zakharkosh im here 09:55 < bridge> read this 09:55 < bridge> and other 09:55 < ws-client> i dont see replies 09:55 < bridge> if i want to define a function that goes from the start menu to the Settings > Information menu that I created where and how should I express it? 09:55 < bridge> When we click on the setting in the start menu, it will be transferred to the setting section 09:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282610511745384519/screenshot_2024-09-07_18-36-37.png?ex=66dffb9f&is=66deaa1f&hm=887d1f2ec30ac5cc1a8ad9b3dd66b7c229ece99f305d87cf57bc0c1ce0e9ecc4& 09:56 < ws-client> are you building a client? 09:56 < ws-client> i also dont see images here 09:56 < bridge> going here 09:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282610550924378124/screenshot_2024-09-07_21-00-38.png?ex=66dffba9&is=66deaa29&hm=93d9230a82c8682aa83d1019a06891e591ae92dceea2fe5cd05f6aac0b5e96e7& 09:56 < bridge> no just edit 09:57 < ws-client> @patiga hmm i would love to annotate my code with twmap defined types but seems like i can not load both the .so file and the type annotations at the same time. So it crashes on the types at runtime :c any ideas? 09:57 < ws-client> ``def replace_doodads(layer: twmap.Layer, mapping: dict) -> None:`` 09:57 < ws-client> this would be so nice 09:57 < ws-client> it should be possible i think 09:57 < ws-client> @zakharkosh which client are you editing? 09:57 < bridge> ddnet-master 09:57 < ws-client> is your project open source? 09:58 < bridge> bro just i create One more button 09:58 < ws-client> just for your self? what do you need the button for i dont get it xd 09:58 < bridge> Yes 09:58 < ws-client> but yea anyways how far did you get? do you already have the button? 09:59 < bridge> Yes 09:59 < bridge> I just want to know how to define it so that it goes to the setting menu and then information 10:00 < ws-client> well look at the settings button code 10:00 < ws-client> how it does it 10:00 < ws-client> there is some page variable that you can set 10:00 < bridge> Yes, I did the same, but I did not understand what to do 10:00 < ws-client> why not? 10:01 < ws-client> ``SetMenuPage(PAGE_SETTINGS)`` 10:01 < bridge> I don't need to define something in void? 10:02 < ws-client> define that 10:02 < ws-client> define what* 10:02 < bridge> Because I made it here 10:02 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282612162287763516/screenshot_2024-09-07_14-11-44.png?ex=66dffd29&is=66deaba9&hm=370be9587eee3c7dfd090f4ff77577dddde8fb494d2e6e9a29b8738ba8f2c6e4& 10:02 < bridge> Because I made it here 10:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282612225839730718/screenshot_2024-09-07_14-08-42.png?ex=66dffd38&is=66deabb8&hm=e254565214ee4b35c4db75ec093030ebb73dd37fc15d05a81058baa60a5873ae& 10:03 < ws-client> i dont see images 10:03 < bridge> ok i made on Settings > Information 10:04 < bridge> Where should I write this? 10:04 < bridge> SetMenuPage(PAGE_SETTINGS) 10:04 < ws-client> maybe a separate stubs repo would have been better -.- @patiga omagawd i thought now everything works fine. But writing a complex twmap script is still super hard because you cant type args 10:04 < ws-client> @zakharkosh in your button that you already have in the start menu 10:05 < bridge> ok 10:05 < ws-client> or better set NewPage = 10:05 < ws-client> idk what you did 10:05 < ws-client> send code 10:05 < bridge> Do I need to delete NewPage? 10:06 < bridge> ```cpp 10:06 < bridge> Menu.HSplitBottom(100.0f, &Menu, 0 ); 10:06 < bridge> Menu.HSplitBottom(40.0f, &Menu, &Button); 10:06 < bridge> static CButtonContainer s_InformationButton; 10:06 < bridge> if(DoButton_Menu(&s_InformationButton, Localize("Information", "Settings"), 0, &Button, g_Config.m_ClShowStartMenuImages ? "local_server" : 0, IGraphics::CORNER_ALL, Rounding, 0.5f, vec4(0.0f, 0.0f, 0.0f, 0.51f))|| CheckHotKey(KEY_I)) 10:06 < bridge> 10:06 < bridge> { 10:06 < bridge> NewPage = PAGE_INFORMATION; 10:06 < bridge> } 10:06 < bridge> 10:06 < bridge> 10:06 < bridge> ``` 10:07 < bridge> actually i have 10:08 < bridge> But it goes to an unknown place 10:15 < ws-client> whats a unknown place 10:16 < bridge> It goes to a place where there is no writing and nothing is defined for it 10:16 < bridge> 😂 10:16 < ws-client> im sure youll figure it out 10:16 < ws-client> just look at the other code 10:17 < ws-client> or send me a link to your repostory then i can have a look but i wont debug without additional context via chat 10:17 < bridge> Ok 10:56 < bridge> Hey I remember this line :monkaStop: 11:26 < bridge> do I only need to expose all the types? -> are you able to annotate the `Map` type? 11:27 < bridge> so far I didn't expose them all, as you can't construct them on their own, they are all always a reference to smth in a `Map` 11:28 < bridge> but ig a separate crate would be fine, if that way would be sognificantly easier 11:28 < bridge> (as long as we can make it a dependency so that it is always installed alongside the real package) 11:43 < ws-client> yea the sync including the pipeline that checks updates if its one package is so nice 11:48 < ws-client> @patiga yea using ``twmap.Map`` as a type annotation works because its also directely available 11:48 < ws-client> but for example ``twmap.Layer`` works fine in my IDE because it loads it from the typehints but at runtime the typehints are not loaded then it does not know it 12:21 < bridge> could you try out https://gitlab.com/Patiga/twmap-py/-/tree/expose-all-types?ref_type=heads 12:40 < bridge> I think I won't go insano style with modules and just implement something similar to `include` directive from C 12:55 < bridge> what do type hints do at runtime btw? 13:02 < bridge> Not crash the program 13:02 < bridge> There is no type checking at runtime. But if I use types as annotations it does not know it can’t run. 13:03 < bridge> @heinrich5991 @jupeyy_keks 13:03 < bridge> > QUIC is expected to be a game-changer in improving web application performance. In this paper, we conduct a systematic examination of QUIC's performance over high-speed networks. We find that over fast Internet, the UDP+QUIC+HTTP/3 stack suffers a data rate reduction of up to 45.2% compared to the TCP+TLS+HTTP/2 counterpart. Moreover, the performance gap between QUIC and HTTP/2 grows as the underlying bandwidth increases. We observe this issue on 13:04 < bridge> https://news.ycombinator.com/item?id=41484991 13:05 < bridge> 45% wtf. directly sounds like scam tbh xD 13:07 < bridge> QUIC defs isn't perfect. for http it's still very similar to tcp. 13:07 < bridge> 13:07 < bridge> but QUIC does not need to be used with HTTP.. QUIC on it's own has other advantages. E.g. simplicity for a developer. 13:07 < bridge> Generally it will perform worse than some hyper customized UDP stack tho 13:10 < bridge> @ryozuki https://blog.cloudflare.com/http-3-vs-http-2/ 13:10 < bridge> "For a small test page of 15KB, HTTP/3 takes an average of 443ms to load compared to 458ms for HTTP/2. However, once we increase the page size to 1MB that advantage disappears: HTTP/3 is just slightly slower than HTTP/2 on our network today, taking 2.33s to load versus 2.30s." 13:10 < bridge> 13:10 < bridge> 13:10 < bridge> "As you can see, HTTP/3 performance still trails HTTP/2 performance, by about 1-4% on average in North America and similar results are seen in Europe, Asia and South America. We suspect this could be due to the difference in congestion algorithms: HTTP/2 on BBR v1 vs. HTTP/3 on CUBIC. In the future, we’ll work to support the same congestion algorithm on both to get a more accurate apples-to-apples comparison." 13:11 < bridge> and that blog is 4 years old 13:11 < bridge> i'd be surprised it got worse by 45% in these years xd 13:22 < ws-client> i forgot how to do local install xd @patiga 13:37 < bridge> From just reading the abstract I think this is just non-comparable data. The issue highlighted in the paper seems to get worse as you increase bandwidth, so I'm guessing the cloudflare blogposts test files are far too small for this to come up 13:38 < bridge> I thought that too, but this sentence suggests otherwise: 13:38 < bridge> > We observe this issue on lightweight data transfer clients and major web browsers (Chrome, Edge, Firefox, Opera), on different hosts (desktop, mobile), and over diverse networks (wired broadband, cellular). 13:38 < bridge> Except I have a different understanding of lightweight than them 13:39 < bridge> (they seem to mean curl-http2, curl-quic and quic_client by "lightweight data transfer clients") 13:40 < bridge> If it's not about single huge files, then it should be ovserable with small packets too or not. 13:40 < bridge> 13:40 < bridge> Like they could initiate separate streams if a single stream is too slow 13:40 < bridge> ok 13:40 < bridge> The file transfer might have to take more than a certain amount of time for this to appear perhaps? Idk I've just started skimming the paper 13:41 < bridge> This kinda looks absurd. I wonder what reason they came up with 13:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282667232492650528/image.png?ex=66e03073&is=66dedef3&hm=077e99af2862bab5f5d28e1dbc6497ad5c8329ba8e8d6aede04de73e87282102& 13:41 < bridge> Almost looks like a misconfiguration 😄 13:42 < bridge> But anyways, e.g. one comment on the hackernews page said they did these tests with RTT of 0.2. If that is true then it could also still be a different issue. 13:42 < bridge> 13:42 < bridge> E.g. the QUIC acks also depend on the RTT time. With higher RTT the acks have more reorder time etc. 13:42 < bridge> Seems this testbed is just not strong enough maybe 13:42 < bridge> a linux UDP socket reorders quite often 13:42 < ws-client> @patiga ah ``maturin develop`` and yes that branch is working wonderfully! I can use `twmap.Layer` at runtime and for type checking 13:44 < ws-client> if you merge it there should be at least some type hint somewhere in the scripts that run in the CI so the regression can be caught 14:03 < bridge> which regression do you mean? types that should be exposed but aren't? 14:07 < bridge> yea 14:07 < bridge> I don't want my typo annotated script to break because you think they do not have to be exposed :p 14:07 < bridge> "typo annotated" 14:07 < bridge> gg 14:17 < bridge> the CI is your domain, I got no clue there ^^ 14:17 < bridge> but the CI is successful on that branch, so I see no issue with merging(?) 14:25 < bridge> Communication dragon strikes once again 14:27 < bridge> @patiga: what I am saying is that I will be using those type hints and if there will be a regression in the future it would break my code. But you potentially don’t catch it because you don’t use type hints. 14:27 < bridge> 14:27 < bridge> But yes I can open a mr my self. It‘s simple and it’s for me anyways :) 14:34 < bridge> sounds good 👌 14:34 < bridge> I'll merge the branch once I'm home :) 14:49 < bridge> @learath2 Here's what I've cooked up. There will be a keyword `import` which will be followed by a string `foo` or `a/b/c`. It will first try to find file relatively, if it wasn't found, then absolute path will be used. Also it will be cool to support libs so there will be some kind of config file(`settings.json` for example) which will store project/library name and list of other libs it depends on. So when after look at absolute path nothing w 14:58 < bridge> If I was making a language I would probably leave this up to the os. `import ` or `import "path"` would just lead to `fopen("path", ...)` EXCEPT if `path[0] == '@'` which I'd use as `lib_root` 15:00 < bridge> Make it so that everything is in one big file, but the IDE can still display it as separate tabs. 15:00 < bridge> Huge LTO inc 15:13 < bridge> im yoinking this 16:37 < bridge> im back from a week 16:37 < bridge> updated 280 gentoo packages 16:42 < bridge> lol 19:33 < bridge> btw, how would it look it you wanted to include code a file from other library 19:34 < bridge> `import "@srs_json/decoder` 19:34 < bridge> ooooooooh 19:34 < bridge> ok, i get it now 19:35 < bridge> adding imports seems like a lot of effort :\ 19:35 < bridge> It is a fair bit of effort. That's why C went with the preprocessor approach 19:36 < bridge> maybe i should add marcos before imports 😬 19:36 < bridge> but again, i don't want C like macors 19:36 < bridge> Who is this Marco? 19:36 < bridge> they are cursed as hel 19:36 < bridge> maybe i should add macros before imports 😬 19:37 < bridge> they are cursed as hell 19:37 < bridge> But you can just use the C preprocessor directly if you use them :Thonk: 19:38 < bridge> there's a thing i can call to expand macros? 19:38 < bridge> `cc -E 19:38 < bridge> `cc -E` 19:39 < bridge> idk what i really want but definitely something a little bit better than C's #define 19:40 < bridge> Better in what way? Careful you don't get stuck in having to implement a full interpreter for your language 😄 19:41 < bridge> interpreter? 19:41 < bridge> If you want your preprocessor to share a syntax with your language you'll end up implementing an interpreter 19:43 < bridge> This Marco guy is everywhere 😬 19:43 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282758176114212936/image.png?ex=66e08525&is=66df33a5&hm=b90304acbe6ef1b7c7731b89d6853a8546958f9ae6451950b8d26f4e0a8c3c8c& 19:48 < bridge> Better than Macor tbf 19:49 < bridge> ill just not require `\` in the end of the line, that will be my improvement xd 19:51 < bridge> Careful, there is oft a reason to what appears stupid in C 19:51 < bridge> also it would be nice if the programmer could see if this is a macro just by looking at it in the code 19:51 < bridge> do you know when it can break? 19:52 < bridge> Ofc, how will you know when the Marco ends? 19:53 < bridge> make syntax like 19:53 < bridge> ``` 19:53 < bridge> macro name { 19:53 < bridge> blah blah 19:53 < bridge> } 19:53 < bridge> ``` 19:53 < bridge> There, problem solved, now you can have macors 19:54 < bridge> and to call macro you have to slap `!` in the end 19:54 < bridge> and to call macro you have to slap `!` in the end of the name 20:57 < bridge> @robyt3 could take a look at #8907 if new changes are fine? 20:57 < bridge> https://github.com/ddnet/ddnet/pull/8907 20:59 < bridge> yeah, I'll review it tomorrow 21:01 < bridge> ty 21:07 < bridge> it is the most effort, its where i stopped with edlang 21:07 < bridge> because its where u need to decide how to link and stuff and resolve types 21:07 < bridge> cross packages 21:07 < bridge> I don't know half of those words but I agree 21:18 < bridge> https://www.reddit.com/r/rust/comments/1fcvyjb/ferrumc_an_actually_fast_minecraft_server/ 21:25 < bridge> fast but not blazingly fast 😬 21:25 < bridge> so now it's faster than the java client xD 21:27 < bridge> " Upcoming features 21:27 < bridge> Ability to view other players" 21:27 < bridge> a server that doesnt even support multiplayer 21:28 < bridge> not getting annoyed by others is a feature 21:36 < bridge> now i just need a vps with 32cores to have something from using a highly mutlithreaded minecraft server xdd 21:42 < bridge> #3411 21:42 < bridge> https://github.com/ddnet/ddnet/issues/3411 21:50 < bridge> #9999 21:51 < bridge> Woah! 23:32 < bridge> where are we on the accounts stuff? this issue hasn't had a comment since june 23:32 < bridge> Waiting on heinrich ig 23:33 < bridge> Waiting on heinrich ig 23:33 < bridge> https://discord.com/channels/252358080522747904/252358080522747904/1278826978828488704