00:12 <+bridge> [ddnet] https://store.steampowered.com/app/975370/Dwarf_Fortress/ 00:13 <+bridge> [ddnet] just figured this got released on steam 00:13 <+bridge> [ddnet] all time classic 00:13 <+bridge> [ddnet] have you played it? 00:21 <+bridge> [ddnet] yeah long ago 00:21 <+bridge> [ddnet] not in steam tho 00:22 <+bridge> [ddnet] i think its been 20 years in dev 00:22 <+bridge> [ddnet] https://news.ycombinator.com/item?id=33976166 07:21 <+bridge> [ddnet] is there a way to create a vertex buffer or something similar in ddnet code for rendering my own triangle vertices? (like doing glBindBuffer and then glBufferData & glBufferSubData for updating, in opengl) 07:21 <+bridge> [ddnet] is there a way to create a vertex buffer or something similar in ddnet code for rendering my own list of triangle vertices? (like doing glBindBuffer and then glBufferData & glBufferSubData for updating, in opengl) 07:51 <+bridge> [ddnet] Generally you can add it to the backend. But ddnet is 2d don't expect any helper functions for projection matrices or similar. 07:53 <+bridge> [ddnet] Graphics threaded should have vertex buffer object. But eg index buffer is backend only 07:53 <+bridge> [ddnet] So u defs have to write own logic 07:59 <+bridge> [ddnet] welp 08:00 <+bridge> [ddnet] thanks anyway 08:58 <+bridge> [ddnet] matrix bloat kek 13:01 <+bridge> [ddnet] how does the antibot thing work? like how to compile it with the server? 13:03 <+bridge> [ddnet] You can't. 13:04 <+bridge> [ddnet] @noby wrote an antibot functionality for his FNG server, together with DDNet devs they factored that out into a shared library so it can be loaded in official DDNet server too. In order not to tell bot authors how we detect their bots the source code and binary for antibot are not available 13:05 <+bridge> [ddnet] yeah seems fair 13:05 <+bridge> [ddnet] You would have to implement the interface at https://github.com/ddnet/ddnet/tree/master/src/antibot to implement your own antibot solution 13:06 <+bridge> [ddnet] or ask noby nicely if you have a server you want to use it for 13:06 <+bridge> [ddnet] Basically you can use the incoming information to try and detect suspicious looking patterns of movement/actions 13:07 <+bridge> [ddnet] nah, I was just asking because the dump thing didn't work, and neither did the target btw 13:08 <+bridge> [ddnet] yeah, by default we ship the "null" implementation of antibot, which does nothing 13:08 <+bridge> [ddnet] and should be optimized away by your compiler 13:19 <+bridge> [ddnet] >drag it into IDA Pro and look at eyported functions 13:19 <+bridge> [ddnet] No one will know how it works. Yes. That's how this world works. 13:20 <+bridge> [ddnet] You don't have the binary though πŸ˜„ 13:22 <+bridge> [ddnet] Never say never. We have talented people around this community. I'm sure some of them could figure out how it works 13:26 <+bridge> [ddnet] Uhm actually, they didnt say neverπŸ€“ 13:43 <+bridge> [ddnet] i would try for the luls 13:43 <+bridge> [ddnet] but probs wouldnt have results xd 13:43 <+bridge> [ddnet] the C code is already unreadable 13:43 <+bridge> [ddnet] best approach would be blackbox testing 13:43 <+bridge> [ddnet] its noby C 13:43 <+bridge> [ddnet] xD 13:44 <+bridge> [ddnet] im still learning erlang and i kinda have mixed feeling about functional programming 13:44 <+bridge> [ddnet] i think i prefer to think iteratively and imperatively tbh 13:44 <+bridge> [ddnet] too much brain usage 13:45 <+bridge> [ddnet] Some problems are easier to think about in a functional way. Some aren't. Which is why I'm not a fan of overly ideological languages 13:45 <+bridge> [ddnet] yeah 13:45 <+bridge> [ddnet] rust takes best from both 13:45 <+bridge> [ddnet] πŸ€“ 13:45 <+bridge> [ddnet] Gimme the tools for both and I'll pick the one that fits my situation 13:52 <+bridge> [ddnet] a RPN calculator 13:52 <+bridge> [ddnet] xd 13:52 <+bridge> [ddnet] ```erlang 13:52 <+bridge> [ddnet] -module(calc). 13:52 <+bridge> [ddnet] -export([rpn/1]). 13:52 <+bridge> [ddnet] 13:52 <+bridge> [ddnet] rpn(L) when is_list(L) -> 13:52 <+bridge> [ddnet] [Res] = lists:foldl(fun rpn/2, [], string:tokens(L, " ")), 13:52 <+bridge> [ddnet] Res. 13:52 <+bridge> [ddnet] 13:52 <+bridge> [ddnet] to_num(N) -> 13:52 <+bridge> [ddnet] case string:to_float(N) of 13:52 <+bridge> [ddnet] {error, no_float} -> list_to_integer(N); 13:52 <+bridge> [ddnet] {F,_} -> F 13:52 <+bridge> [ddnet] end. 13:52 <+bridge> [ddnet] 13:52 <+bridge> [ddnet] rpn("+", [A,B|S]) -> 13:52 <+bridge> [ddnet] [A + B|S]; 13:52 <+bridge> [ddnet] rpn("-", [A,B|S]) -> 13:52 <+bridge> [ddnet] [A - B|S]; 13:52 <+bridge> [ddnet] rpn("*", [A,B|S]) -> 13:52 <+bridge> [ddnet] [A * B|S]; 13:52 <+bridge> [ddnet] rpn("/", [A,B|S]) -> 13:52 <+bridge> [ddnet] [A / B|S]; 13:53 <+bridge> [ddnet] rpn(X, Stack) -> [to_num(X)|Stack]. 13:53 <+bridge> [ddnet] ``` 13:53 <+bridge> [ddnet] 13:53 <+bridge> [ddnet] fits stack perfectly 13:55 <+bridge> [ddnet] Data oriented programming fits functional programming well too. E.g. ECS 13:55 <+bridge> [ddnet] I mean you guys use sqllite, demos could be stored in the database (who knows). and if 80%+ of the position matches someones else's movement. -> sus 13:55 <+bridge> [ddnet] ur clueless 13:55 <+bridge> [ddnet] also sqlite is rly powerful 13:55 <+bridge> [ddnet] isn't that intended? 13:55 <+bridge> [ddnet] should I know how your anticheat works? 13:56 <+bridge> [ddnet] ddnet can use mysql or sqlite 13:56 <+bridge> [ddnet] I could try to break it if you want 13:56 <+bridge> [ddnet] god 13:56 <+bridge> [ddnet] u just wanna be a hackermans or show off 13:56 <+bridge> [ddnet] the worst kind of guy 13:56 <+bridge> [ddnet] I could try to break it if you want. Always needed a gore bot. 13:56 <+bridge> [ddnet] nah I need games to fuck around with 13:56 <+bridge> [ddnet] cool and i dont care 13:56 <+bridge> [ddnet] nah I just need games to fuck around with 13:56 <+bridge> [ddnet] This sort of detection is actually surprisingly hard to implement. We store multiple terabytes of race data. It's not so easy to match πŸ˜„ 13:57 <+bridge> [ddnet] People do it for Trackmania 13:57 <+bridge> [ddnet] and they aren't even the devs of the game 13:57 <+bridge> [ddnet] but just part of the community 13:57 <+bridge> [ddnet] I didn't say it's impossible. I said it's surprisingly hard 13:57 <+bridge> [ddnet] Osu got the same stuff to detect replay bots 13:58 <+bridge> [ddnet] way less inputs 13:58 <+bridge> [ddnet] inputs don't matter at first glance for me in the case of teeworlds 13:58 <+bridge> [ddnet] I would go for position 13:58 <+bridge> [ddnet] and then input 13:58 <+bridge> [ddnet] You first need to come up with a way to index the data. An efficient tree like structure where you can look for substrings of "gamestates" 13:59 <+bridge> [ddnet] current demo time? 13:59 <+bridge> [ddnet] current demo time/tick? 13:59 <+bridge> [ddnet] Which is actually a huge issue. You can't recreate the gamestate at a given point without running through all previous ticks 13:59 <+bridge> [ddnet] then how do you play the ghost data while a player plays a map 13:59 <+bridge> [ddnet] isn't it the exact same thing 13:59 <+bridge> [ddnet] just that you now look at the position 14:01 <+bridge> [ddnet] just that you now look at the position difference factor (some math guy probably can come up with the same stuff they use for chess anticheats) 14:01 <+bridge> [ddnet] quad tree? 14:02 <+bridge> [ddnet] just that you now look at the position difference factor throughout the run (some math guy probably can come up with the same stuff they use for chess anticheats) 14:02 <+bridge> [ddnet] just that you now look at the position difference factor throughout the run (some math guy probably can come up with the same stuff they use for chess anticheats - how far away you are from the "best" move, or also called "accuracy") 14:03 <+bridge> [ddnet] achtually 14:03 <+bridge> [ddnet] in chess its defined by centipawn loss 14:03 <+bridge> [ddnet] πŸ€“ 14:03 <+bridge> [ddnet] just that you now look at the position difference factor throughout the run (some math guy probably can come up with the same stuff they use for chess anticheats - how far away you are from the "best" move, or also called "accuracy"). but I believe you that it is hard to index the database. 14:03 <+bridge> [ddnet] we don't know the "best" move so far 14:03 <+bridge> [ddnet] If you only want to match position it is a bit more doable. We store entire server sessions. So no demo per individual run. Therefore the first objective would be to split those into sequences of positions per run. After that you need to find a data structure that can efficiently look for substrings 14:03 <+bridge> [ddnet] achtually we got someone that watched the leeman debate 14:03 <+bridge> [ddnet] called ryo 14:03 <+bridge> [ddnet] Something like ropes maybe 14:03 <+bridge> [ddnet] and we probably don't want to produce software to do it I guess ^^ 14:03 <+bridge> [ddnet] idk what debate is actually xd 14:04 <+bridge> [ddnet] oh I mean hans niemann 14:04 <+bridge> [ddnet] don't know how I got to leeman 14:04 <+bridge> [ddnet] ah lol 14:04 <+bridge> [ddnet] don't know how I got to leeman (teeman) 14:04 <+bridge> [ddnet] well i actually play chess from time to time 14:04 <+bridge> [ddnet] so i know before this drama 14:04 <+bridge> [ddnet] I'm not even sure a sane best move could even be defined for a teeworlds run. Especially non-solo runs 14:04 <+bridge> [ddnet] I mean how it turned out 14:04 <+bridge> [ddnet] he didn't even cheat over the board 14:04 <+bridge> [ddnet] so magnus is just salty, like you, ryo 14:05 <+bridge> [ddnet] but usually bot runs replay something that have been played before? 14:05 <+bridge> [ddnet] or how do they work 14:05 <+bridge> [ddnet] haven't hacked around with teeworlds yet 14:05 <+bridge> [ddnet] I can easily define it πŸ˜‰ but calculating it is another story 14:05 <+bridge> [ddnet] just with an idea of using the hook function to stay at the same place in the air 14:06 <+bridge> [ddnet] okay, that's enough 14:06 <+bridge> [ddnet] please continue your cheat discussion in DMs 14:06 <+bridge> [ddnet] or stop them entirely, if possible 14:06 <+bridge> [ddnet] Anyway, problem with position only matching is map constraints. There are a lot maps that force a sequence of positions, so you need to discard any matches that are due to those. Which is where I start to not have anymore ideas on what to do 14:07 <+bridge> [ddnet] 90% match throughout the whole map would be insane 14:07 <+bridge> [ddnet] You could keep track of most common n-grams of symbols like they do in natural language processing, I think there are algorithms that do that 14:07 <+bridge> [ddnet] even with such meta paths to take 14:07 <+bridge> [ddnet] even with such meta paths to take, your height won't match, you are a bit faster or slower here and there 14:08 <+bridge> [ddnet] lets ask doctor Chairn for a research paper 14:08 <+bridge> [ddnet] are you a Discord ToS fanatic? they changed how that works btw. 14:08 <+bridge> [ddnet] you can have talks about it 14:08 <+bridge> [ddnet] you can have talks about it now 14:08 <+bridge> [ddnet] I'm a "don't develop cheats for ddnet" fanatic 14:08 <+bridge> [ddnet] fair enough 14:08 <+bridge> [ddnet] or preferably for any multiplayer game 14:09 <+bridge> [ddnet] we wouldn't be good friends imo 14:09 <+bridge> [ddnet] There are truly constrained movements in some maps. E.g. hold d and jump when you hit the wall or speeder tunnels in freeze 14:09 <+bridge> [ddnet] we wouldn't be a good match imo 14:09 <+bridge> [ddnet] yea but that still won't explain a 90% accuracy with anothers replay 14:09 <+bridge> [ddnet] do you realize that some people derive more fun from a game when there are no cheats? 14:10 <+bridge> [ddnet] Anyway, it's hardly an unsolvable problem. It's just a hard problem πŸ™ƒ 14:10 <+bridge> [ddnet] like me playing ddnet just because it is fun together with friends? can't imagine 14:10 <+bridge> [ddnet] Much harder when you consider the multiple terabytes of data you need to navigate through efficiently 14:10 <+bridge> [ddnet] Checking how much one run matches another is relatively easy in comparison 14:11 <+bridge> [ddnet] like me playing ddnet just because it is fun together with friends? can't imagine. but then there are people that do break games to then report stuff to the game devs, or that do break games just to get better at it, or that break the game to profit off of it -> selling, boosting ego, etc. 14:11 <+bridge> [ddnet] Chairn would probably know a data structure or two that might help πŸ˜„ 14:12 <+bridge> [ddnet] I assume Chairn wrote the anticheat then? 14:12 <+bridge> [ddnet] or is he just a known math guy in this community? 14:12 <+bridge> [ddnet] Monte Carlo 14:12 <+bridge> [ddnet] or is he just a known math/dev guy in this community? 14:12 <+bridge> [ddnet] I see that breaking games can be fun. in order to not destroy the fun of others, it'd be nice to make sure not to spread the resulting cheat 14:12 <+bridge> [ddnet] Just a guy known to be good at this sort of theoretical stuff 14:13 <+bridge> [ddnet] https://secret.club/ doesn't do that though 14:13 <+bridge> [ddnet] very cool, is he still active? 14:13 <+bridge> [ddnet] secret.club does not publish cheats that you can just use to destroy the fun of others 14:14 <+bridge> [ddnet] I don't see them peddling ready cheats. Messing around with intrusive anticheats and drm is a whole different thing 14:14 <+bridge> [ddnet] I also read that blog, it's very cool 14:14 <+bridge> [ddnet] in fact, I'd guess most people from there would agree that breaking multiplayer games is not cool. I know at least one person writing blog posts there 14:15 <+bridge> [ddnet] I mean obviously. Daax is helping anticheat solutions. 14:15 <+bridge> [ddnet] He is obsessed with Byfron. Maybe even works for them atm. 14:15 <+bridge> [ddnet] And surely had one or both hands taking part in Vanguard. 14:15 <+bridge> [ddnet] And surely had one or both hands taking part in or on Vanguard. 14:16 <+bridge> [ddnet] Besides, our flavor of anticheat is a different approach anyway. Most of these people are interested in clientside anticheat solutions, which is a losing battle anyway πŸ˜„ 14:16 <+bridge> [ddnet] Train ai with bad and good gameplay 14:17 <+bridge> [ddnet] *Jupstar has been banned for 5 minutes (bad play)* 14:17 <+bridge> [ddnet] unclear if "AI" would be good at this 14:17 <+bridge> [ddnet] it's good at distinguishing known classes from one another 14:17 <+bridge> [ddnet] not in realtime, but letting it go through the whole dataset you got could be worthwhilke 14:17 <+bridge> [ddnet] not in realtime, but letting it go through the whole dataset you got could be worthwhile 14:17 <+bridge> [ddnet] I'd bet it's one of the best fits for ai 14:17 <+bridge> [ddnet] Anyway, fun discussion. I need to get back to studying the most mind numbing topic known to mankind 14:18 <+bridge> [ddnet] my bachelor thesis was about using AI and related methods for intrusion detection 14:18 <+bridge> [ddnet] it's not a good fit 14:18 <+bridge> [ddnet] You want to tell me you are not at work right now chatting in the ddnet discord server? 14:18 <+bridge> [ddnet] I'm indeed not at work 14:18 <+bridge> [ddnet] I was a functional programming fanboy with Haskell, then imperative with Nim. In the end they are just tools with different tradeoffs, none offer magic bullets. 14:19 <+bridge> [ddnet] And offering all kinds of paradigms and features also causes problems with huge complexity and teams not understanding the shared code base they are working on πŸ˜„ 14:23 <+bridge> [ddnet] Vacnet cries 14:24 <+bridge> [ddnet] it's probably okay for detecting known cheat patterns, like spinbotting, etc. 14:24 <+bridge> [ddnet] but it's not good for detecting things you haven't thought of 14:25 <+bridge> [ddnet] That's for all cheats xd 14:26 <+bridge> [ddnet] The story of AI so far, in other areas too I guess 14:26 <+bridge> [ddnet] Are humans good at it? 14:27 <+bridge> [ddnet] At least the potential of ai 14:27 <+bridge> [ddnet] you can only detect something you know 14:27 <+bridge> [ddnet] as a coder 14:28 <+bridge> [ddnet] I know that you can figure out anomalies to other players playing. But that would also include legit stuff. 14:28 <+bridge> [ddnet] I know that you can figure out anomalies to other players playing. But that would also include legit stuff/people playing terribly bad. 14:28 <+bridge> [ddnet] I know that you can figure out anomalies to other players playing. But that would also include legit stuff/people playing terribly bad or insanely good. 14:32 <+bridge> [ddnet] I know that you can figure out anomalies to other players playing. But that would also include legit stuff/people playing terribly bad or insanely good. 14:32 <+bridge> [ddnet] You can do that only if you filter out every bad play out of your dataset. And let it learn on the whole thing. And even then. This won't catch humanized replay bots generally. But ask some AI professionals how you would tackle down fast/perfect keystroke combinations, etc. 14:33 <+bridge> [ddnet] you can only detect something you know exists 14:35 <+bridge> [ddnet] human brain is amazing 14:37 <+bridge> [ddnet] Team machine 14:38 <+bridge> [ddnet] It's the logical step in nature. It built is to built something better 14:38 <+bridge> [ddnet] a human can optimize the algorithm a computer uses and cut lot of computation time, but a computer can only do computations fast 14:38 <+bridge> [ddnet] It's the logical step in nature. It built us to built something better 14:39 <+bridge> [ddnet] erlang rly do be ugly 14:39 <+bridge> [ddnet] but luckily there is elixir 14:39 <+bridge> [ddnet] which ill check sooner than later 14:39 <+bridge> [ddnet] uses the same VM BEAM 14:40 <+bridge> [ddnet] oh yesterday i saw this 14:40 <+bridge> [ddnet] https://www.ponylang.io/ 14:40 <+bridge> [ddnet] its a serious project btw 14:40 <+bridge> [ddnet] maybe safer than rust 14:40 <+bridge> [ddnet] Have you asked the AI how to detect something you say an AI can't detect? 14:40 <+bridge> [ddnet] https://www.ponylang.io/discover/#what-is-pony 14:40 <+bridge> [ddnet] Have you asked the AI how to detect something you say an AI can't detect? 14:40 <+bridge> [ddnet] If you describe your problem good enough, it could deliver results. 14:42 <+bridge> [ddnet] @Ryozuki do u think humans are the peak? ^^ 14:42 <+bridge> [ddnet] no 14:42 <+bridge> [ddnet] well right now 14:42 <+bridge> [ddnet] on earth yes 14:43 <+bridge> [ddnet] as in the most developed creature 14:43 <+bridge> [ddnet] being aware of ones own death 14:43 <+bridge> [ddnet] Without bacteria we would die 14:43 <+bridge> [ddnet] and 14:43 <+bridge> [ddnet] a human to me involves all the microcosmos needed for a human to be 14:43 <+bridge> [ddnet] xd 14:43 <+bridge> [ddnet] without the cell the human would die 14:43 <+bridge> [ddnet] πŸ€“ 14:44 <+bridge> [ddnet] and without the human the bacteria would be dead 14:44 <+bridge> [ddnet] ironic 14:45 <+bridge> [ddnet] ? 14:45 <+bridge> [ddnet] How so 14:45 <+bridge> [ddnet] i think some bacteria are only found in humans 14:45 <+bridge> [ddnet] stomach 14:45 <+bridge> [ddnet] or mammals 14:45 <+bridge> [ddnet] idk 14:45 <+bridge> [ddnet] Yes 14:46 <+bridge> [ddnet] Have u tried stop to eat? 14:46 <+bridge> [ddnet] the fact u can discuss this 14:46 <+bridge> [ddnet] proves we are the peak 14:46 <+bridge> [ddnet] kek 14:46 <+bridge> [ddnet] I mean it is impressive how this world works innit bruv 14:47 <+bridge> [ddnet] the world is basically black without our eyes 14:47 <+bridge> [ddnet] and "this" us being discussed using a advanced tech 14:47 <+bridge> [ddnet] and "this" is being discussed using a advanced tech 14:47 <+bridge> [ddnet] So the tech is the impressive thing? 14:47 <+bridge> [ddnet] the world is basically (whatever) *black* (really is) without our eyes and only reflects light 14:47 <+bridge> [ddnet] well to me the fact we able to do the tech is ye 14:48 <+bridge> [ddnet] But we were only able to be born by bacteria 14:48 <+bridge> [ddnet] AI is just automating automation 14:48 <+bridge> [ddnet] its still made by us 14:48 <+bridge> [ddnet] i think so 14:48 <+bridge> [ddnet] So it's ultimately made by whatever was before humans 14:48 <+bridge> [ddnet] i wonder 14:48 <+bridge> [ddnet] gotta know if big bang is true 14:49 <+bridge> [ddnet] what was truly there 14:49 <+bridge> [ddnet] before the big bang 14:49 <+bridge> [ddnet] since big bang is the making of "things" 14:49 <+bridge> [ddnet] itself 14:50 <+bridge> [ddnet] world 1.0 from our perspective 14:50 <+bridge> [ddnet] and that world was world 2.0 of some other world 14:50 <+bridge> [ddnet] or that one egg-theory is true, and we all are the same person, evolving into a god once we lived through every life 14:50 <+bridge> [ddnet] kurzgesagt 14:51 <+bridge> [ddnet] it is a serious thing 14:51 <+bridge> [ddnet] they just animated it 14:51 <+bridge> [ddnet] i know the story 14:51 <+bridge> [ddnet] the animation is dope 14:52 <+bridge> [ddnet] We will never know, because we are nothing to this timeline 14:52 <+bridge> [ddnet] Whatever time even is. 14:53 <+bridge> [ddnet] relevant and epic video 14:53 <+bridge> [ddnet] https://www.youtube.com/watch?v=uD4izuDMUQA 14:53 <+bridge> [ddnet] I find it plausible though that you can't create any power, nor destroy it 14:53 <+bridge> [ddnet] and that that one dude that explained that an apple would recreate itself given long enough time hopefully says the truth 14:54 <+bridge> [ddnet] and that this one dude that explained that an apple would recreate itself in a closed chamber with only its own particles given long enough time hopefully says the truth 14:55 <+bridge> [ddnet] i am happy to relive this life in the future after an incredible big time window 14:55 <+bridge> [ddnet] and that this one dude that explained that an apple would recreate itself in a closed chamber with only its own particles given long enough time hopefully says the truth, based on that thesis 14:56 <+bridge> [ddnet] i am happy to relive this life in the future after an incredible big time window in world 2.0 (from our perspective) 15:00 <+bridge> [ddnet] u wont remember this 15:01 <+bridge> [ddnet] I know 15:01 <+bridge> [ddnet] so this will only be your "only" life 15:01 <+bridge> [ddnet] that's the fancy stuff 15:01 <+bridge> [ddnet] hence why ppl turn to religion 15:01 <+bridge> [ddnet] nothingness after death is scary 15:02 <+bridge> [ddnet] relgion is only mankinds invention 15:02 <+bridge> [ddnet] but you shall let the people believe in whatever they want 15:03 <+bridge> [ddnet] i mean lot of stuff is mankind invention 15:03 <+bridge> [ddnet] but i guess u wanted to mean its not real 15:03 <+bridge> [ddnet] nah that would be an insult 15:03 <+bridge> [ddnet] maybe there is something because us typing here wouldn't be logical 15:03 <+bridge> [ddnet] im not religious btw 15:03 <+bridge> [ddnet] xd 15:03 <+bridge> [ddnet] because out of nothing, not everything can exist 15:04 <+bridge> [ddnet] because out of nothing, not everything can exist. but then you can ask again what created whatever was before it. 15:04 <+bridge> [ddnet] because out of nothing, not everything can exist. but then you can ask again what created whatever was before it. so maybe life is just ilogical. 15:04 <+bridge> [ddnet] i do believe stuff that happens is bound to happen 15:04 <+bridge> [ddnet] hard to explain 15:05 <+bridge> [ddnet] but everything is fixed on the timeline 15:05 <+bridge> [ddnet] because out of nothing, not everything can exist. but then you can ask again what created whatever was before it. so maybe life is just illogical. 15:05 <+bridge> [ddnet] since its based on previous inputs 15:05 <+bridge> [ddnet] maybe smth https://en.wikipedia.org/wiki/Chaos_theory 15:06 <+bridge> [ddnet] > Chaos theory states that within the apparent randomness of chaotic complex systems, there are underlying patterns, interconnection, constant feedback loops, repetition, self-similarity, fractals, and self-organization.[2] The butterfly effect, an underlying principle of chaos, describes how a small change in one state of a deterministic nonlinear system can result in large differences in a later state (meaning that there is sensitive depe 15:06 <+bridge> [ddnet] > Small differences in initial conditions, such as those due to errors in measurements or due to rounding errors in numerical computation, can yield widely diverging outcomes for such dynamical systems, rendering long-term prediction of their behavior impossible in general.[7] This can happen even though these systems are deterministic, meaning that their future behavior follows a unique evolution[8] and is fully determined by their initial 15:06 <+bridge> [ddnet] interesting stuff kek 15:07 <+bridge> [ddnet] yea you insulting me before will cause huge events 15:07 <+bridge> [ddnet] :Ray: 15:07 <+bridge> [ddnet] yea you insulting me before will cause huge events 15:07 <+bridge> [ddnet] chaos theory proves it. it's the little things that matter. 15:08 <+bridge> [ddnet] yea you insulting me before will cause huge events 15:08 <+bridge> [ddnet] chaos theory ~~proves~~ explains it. it's the little things that matter. 15:08 <+bridge> [ddnet] :BASEDDEPT: 15:09 <+bridge> [ddnet] u already blended to the #developer 15:09 <+bridge> [ddnet] it was always about discussing metaphysics 15:09 <+bridge> [ddnet] than programming 15:09 <+bridge> [ddnet] :TOOBASED: 15:10 <+bridge> [ddnet] talking about interesting stuff 15:10 <+bridge> [ddnet] https://oimo.io/works/life/ 15:10 <+bridge> [ddnet] enter here 15:10 <+bridge> [ddnet] and zoom out 15:10 <+bridge> [ddnet] beautiful 15:10 <+bridge> [ddnet] but dont just zoom out a little 15:10 <+bridge> [ddnet] keep zooming out 15:11 <+bridge> [ddnet] and keep 15:11 <+bridge> [ddnet] infinitely 15:11 <+bridge> [ddnet] mesmerizing 15:13 <+bridge> [ddnet] https://conwaylife.com/wiki/OTCA_metapixel 15:13 <+bridge> [ddnet] it uses this btw 15:13 <+bridge> [ddnet] yea if this is game of life, all that little logic zoomed out will just create the same game again 15:13 <+bridge> [ddnet] > In the beginning I didn't think it was possible without cheating something but finally found a way to "build everything perfectly" 15:13 <+bridge> [ddnet] > Due to the inifinite recursion, each level is aperiodic for both space and time, and you'll never see the same pattern no matter how much you scroll 15:13 <+bridge> [ddnet] yea if this is game of life, all that little logic zoomed out will just create the same game again, first whole pixels, then those ships, reappearing logic, etc. 15:14 <+bridge> [ddnet] not quantum mechanically πŸ€“ 15:30 <+bridge> [ddnet] definition is easy, move that grants you on the overall race (not just the part) the best time 15:30 <+bridge> [ddnet] yea but that isn't enough 15:30 <+bridge> [ddnet] people can pick the replay of their friend 15:31 <+bridge> [ddnet] and stuff like that should get detected as well, if not already 15:31 <+bridge> [ddnet] now, it's just a probably NP hard problem as the sum of optimal moves for each parts isn't probably the best time for the whole map 15:31 <+bridge> [ddnet] hello there πŸ™‚ 15:31 <+bridge> [ddnet] don't give bot devs ideas to break world records 15:31 <+bridge> [ddnet] 15:32 <+bridge> [ddnet] TIL 15:32 <+bridge> [ddnet] https://gleam.run/ 15:32 <+bridge> [ddnet] > The power of a type system, the expressiveness of functional programming, and the reliability of the highly concurrent, fault tolerant Erlang runtime, with a familiar and modern syntax. 15:32 <+bridge> [ddnet] this might be more for me xd 15:32 <+bridge> [ddnet] i love types 15:32 <+bridge> [ddnet] then you will love object oriented programming 15:32 <+bridge> [ddnet] if you are only stuck in webdev languages 15:33 <+bridge> [ddnet] if you are only stuck in web dev languages 15:33 <+bridge> [ddnet] OH 15:33 <+bridge> [ddnet] then you will love object oriented programming languages 15:33 <+bridge> [ddnet] implemented in rust even 15:33 <+bridge> [ddnet] https://github.com/gleam-lang/gleam 15:33 <+bridge> [ddnet] well, if they can solve this problem, they can probably help to more important business 15:34 <+bridge> [ddnet] I mean someone probably does it already 15:34 <+bridge> [ddnet] selfhost a server so data doesn't get sent to ddnet 15:34 <+bridge> [ddnet] let some AI figure out the fastest strat for every challenge 15:35 <+bridge> [ddnet] @Reteah 15:35 <+bridge> [ddnet] but the fastest strat for each challenge is not the whole map best time. example: when there's a cut πŸ™‚ 15:35 <+bridge> [ddnet] Try typescript :troll: 15:36 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. 15:36 <+bridge> [ddnet] I'm waiting for xmas vacation to continue working on it :D 15:36 <+bridge> [ddnet] oo 15:36 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. 15:37 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. 15:37 <+bridge> [ddnet] That isn't a problem I want to deal with though. I would just improve upon the best time. 15:37 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. 15:37 <+bridge> [ddnet] That isn't a problem I want to deal with though. I would just improve upon the best existent time. 15:38 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. 15:38 <+bridge> [ddnet] That isn't a problem I want to deal with though. I would just improve upon the best existent time. Possibly by replay editors. Similar to the one I made for Trackmania. 15:40 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. Shouldn't it find an even faster way through thousands of generations eventually? If you are not limiting it to a set path (through all the challenges in a row). 15:40 <+bridge> [ddnet] That isn't a problem I want to deal with though. I would just improve upon the best existent time. Possibly by replay editors. Similar to the one I made for Trackmania. 15:40 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. Shouldn't it find an even faster way through thousands of generations eventually? If you are not limiting it to a set path (through all the challenges in a row). 15:40 <+bridge> [ddnet] That isn't a problem I want to deal with though. I would just improve upon the best existent time. Possibly by replay editors. Similar to the one I made for Trackmania. But reusing other players plays should be detected already. 15:42 <+bridge> [ddnet] Yea. You are right. Then make it go through all the open spots and see if it finds some cheese. Or let the pathfinder find potential shortcuts. By not eliminating freezes by default. Shouldn't it find an even faster way through thousands of generations eventually? If you are not limiting it to a set path (through all the challenges in a row). 15:42 <+bridge> [ddnet] That isn't a problem I want to deal with though. I would just improve upon the best existent time. Possibly by replay editors. Similar to the one I made for Trackmania. But reusing other players' plays should be detected already. This is why I thought I was smart when I decided to improve my own replay (unsent to the server) with my own plays (for another game). 15:42 <+bridge> [ddnet] bruv 15:42 <+bridge> [ddnet] and more bruv 15:42 <+bridge> [ddnet] isn't it one? 15:42 <+bridge> [ddnet] all that bs sweet talk sounds like any for web dev developed language 15:43 <+bridge> [ddnet] you mean gleam? 15:43 <+bridge> [ddnet] for example 15:43 <+bridge> [ddnet] before that you had one starting with l or i 15:43 <+bridge> [ddnet] i mean there is only one web lang and its js 15:43 <+bridge> [ddnet] but i guess u dont like high level perfomance languages? 15:44 <+bridge> [ddnet] which people made typescript for, for example 15:44 <+bridge> [ddnet] gleam is a functional language that runs on BEAM, the erlang VM 15:44 <+bridge> [ddnet] and types are not just"object oriented programming" 15:44 <+bridge> [ddnet] actually OOP gets many things wrong 15:44 <+bridge> [ddnet] which people made typescript for, for example 15:44 <+bridge> [ddnet] which was worth using until js got type-safe themself, recently 15:44 <+bridge> [ddnet] composition over inheritance 15:44 <+bridge> [ddnet] rust gets it right imho 15:45 <+bridge> [ddnet] how bad is C# then 15:45 <+bridge> [ddnet] i try to avoid it whenever i can 15:45 <+bridge> [ddnet] but sometimes i gotta use it to mod ff14 15:45 <+bridge> [ddnet] sadge 15:45 <+bridge> [ddnet] sadge indeed 15:45 <+bridge> [ddnet] that you don't like it 15:45 <+bridge> [ddnet] that you don't like it besides that 15:45 <+bridge> [ddnet] trash kek 15:45 <+bridge> [ddnet] why would i use that when i have my beloved rust 15:45 <+bridge> [ddnet] wdym, it can get compiled to native now 15:45 <+bridge> [ddnet] its only famous cuz m$$ is behind it 15:45 <+bridge> [ddnet] which allows me to write internals 15:45 <+bridge> [ddnet] in fucking c# 15:46 <+bridge> [ddnet] and 15:46 <+bridge> [ddnet] c# unsafe code is unsafe 15:46 <+bridge> [ddnet] in fucking c# 15:46 <+bridge> [ddnet] did you imagine that a few years ago 15:46 <+bridge> [ddnet] i can do the same in safe rust code 15:46 <+bridge> [ddnet] same with C++ 15:46 <+bridge> [ddnet] not same with rust 15:46 <+bridge> [ddnet] you don't know that something is messed up until you run it 15:46 <+bridge> [ddnet] i never mentioend c++ 15:46 <+bridge> [ddnet] yea but that's hand holding 15:46 <+bridge> [ddnet] lmfao? 15:46 <+bridge> [ddnet] XD 15:47 <+bridge> [ddnet] i need to tone myself down 15:47 <+bridge> [ddnet] i get too heated 15:47 <+bridge> [ddnet] brb 15:47 <+bridge> [ddnet] I did now. Because Rust was something a lot of C++ devs moved to. 15:47 <+bridge> [ddnet] and them not allowing you to code unsafe stuff is hand holding for me 15:48 <+bridge> [ddnet] u definitly dont know shit about rust 15:48 <+bridge> [ddnet] cuz what u said isnt true 15:48 <+bridge> [ddnet] i recommend u learn rust 15:48 <+bridge> [ddnet] it will teach you a lot 15:48 <+bridge> [ddnet] its incredible 15:48 <+bridge> [ddnet] nah 15:48 <+bridge> [ddnet] bad mentality 15:48 <+bridge> [ddnet] dont say stuff about it then 15:48 <+bridge> [ddnet] I won't mate with that ~~crab~~ crap 15:48 <+bridge> [ddnet] and arguing with people who havent even tried it is the worst 15:49 <+bridge> [ddnet] true 15:49 <+bridge> [ddnet] its like a profesional doctor talking with a person who heard x on the streed about some medicine 15:49 <+bridge> [ddnet] on the topic of rust is there a more elegant way to do this? ```rust 15:49 <+bridge> [ddnet] cur += i32::from_str(line).unwrap(); 15:49 <+bridge> [ddnet] ``` 15:49 <+bridge> [ddnet] street* 15:49 <+bridge> [ddnet] cur += 32 line.parse().unwrap(); 15:49 <+bridge> [ddnet] if ur parent function returns a result 15:49 <+bridge> [ddnet] u can change unwrap() for ? 15:50 <+bridge> [ddnet] ```rust 15:50 <+bridge> [ddnet] cur += line.parse()? 15:50 <+bridge> [ddnet] ;``` 15:50 <+bridge> [ddnet] is that possible by default 15:50 <+bridge> [ddnet] ```rust 15:50 <+bridge> [ddnet] cur += line.parse()?; 15:50 <+bridge> [ddnet] ``` 15:50 <+bridge> [ddnet] or do you have to write extension functions? 15:50 <+bridge> [ddnet] to use functions on an object 15:50 <+bridge> [ddnet] or do you have to write extension functions in rust? 15:50 <+bridge> [ddnet] in rust u only have structs 15:50 <+bridge> [ddnet] and you "implement them" 15:50 <+bridge> [ddnet] its half like oop but without the bad stuff 15:50 <+bridge> [ddnet] so whatever line is you had to implement yourself? 15:51 <+bridge> [ddnet] line here is a &str 15:51 <+bridge> [ddnet] a string 15:51 <+bridge> [ddnet] then how do you write a function for that struct if it is not yours 15:51 <+bridge> [ddnet] .parse() is a function you get if your struct implemented the trait From 15:51 <+bridge> [ddnet] you make a trait with that function 15:51 <+bridge> [ddnet] and implement the trait for the struct 15:51 <+bridge> [ddnet] aha 15:51 <+bridge> [ddnet] a trait is like a interface 15:52 <+bridge> [ddnet] for example, this is my trait for api endpoints 15:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052598972058959892/image.png 15:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052599074865545256/image.png 15:52 <+bridge> [ddnet] and implement it like this 15:53 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052599143232708789/image.png 15:53 <+bridge> [ddnet] and my api client can execute any struct implementing Endpoint 15:53 <+bridge> [ddnet] and you think this is better than for example ``BetterEndpoint : Endpoint`` or some function in a class that got a this parameter? 15:54 <+bridge> [ddnet] composition is the best 15:54 <+bridge> [ddnet] it falls in place so well 15:54 <+bridge> [ddnet] try rust 15:54 <+bridge> [ddnet] i get the first being worse. but the second is nothing else. 15:54 <+bridge> [ddnet] and u will know why 15:54 <+bridge> [ddnet] i get the first being worse. but the second is nothing else. from the outside. 15:54 <+bridge> [ddnet] the rust book has a chapter on OOP programming 15:54 <+bridge> [ddnet] and you think this is better than for example ``BetterEndpoint : Endpoint`` or some function in a class that got a this parameter of type Endpoint? 15:54 <+bridge> [ddnet] ur style 15:54 <+bridge> [ddnet] https://doc.rust-lang.org/book/ch17-00-oop.html 15:54 <+bridge> [ddnet] good read 15:55 <+bridge> [ddnet] and you think this is better than for example ``BetterEndpoint : Endpoint`` or some function in a class that got a this parameter? 15:55 <+bridge> [ddnet] rust type system is rly powerful 15:56 <+bridge> [ddnet] and more everyday 15:56 <+bridge> [ddnet] since it takes stuff from functional languages 15:57 <+bridge> [ddnet] but the best is the fearless concurrency and safety 15:57 <+bridge> [ddnet] kek 15:57 <+bridge> [ddnet] thanks for coming to my ted talk again 15:58 <+bridge> [ddnet] thanks for teaching me how to read rust code, but won't gonna code in it 15:58 <+bridge> [ddnet] u should learn it 15:58 <+bridge> [ddnet] if ur passionate about programming 15:58 <+bridge> [ddnet] u can only get positives 15:58 <+bridge> [ddnet] learning never bad 15:59 <+bridge> [ddnet] I rather code in asm than rust 15:59 <+bridge> [ddnet] ok 15:59 <+bridge> [ddnet] :clown_gang: 15:59 <+bridge> [ddnet] woah 15:59 <+bridge> [ddnet] I rather code in asm than learn rust 16:00 <+bridge> [ddnet] I rather code in asm than learn rust and code the same thing in it 16:01 <+bridge> [ddnet] I will use Rust actively when Microsoft starts to use it 16:02 <+bridge> [ddnet] But for me it is nothing different than other programming theory combined into a language that its users think is better than some other language that the people using that language think is good enough for their needs. 16:03 <+bridge> [ddnet] But for me, it is nothing different than other programming theories combined into a language that its users think is better than some other language that the people using that language think is good enough for their needs. Under Windows, C-family code will return the same thing as Rust. 16:04 <+bridge> [ddnet] But for me, it is nothing different than other programming theories combined into a language that its users think is better than some other language that the people using that language think is good enough for their needs. Under Windows, C-family code will return the same thing as Rust. I hope. Otherwise Rust creates tons of overhead, or even worse, runs in a VM. 16:05 <+bridge> [ddnet] But for me, it is nothing different than other programming theories combined into a language that its users think is better than some other language that the people using that language think is good enough for their needs. Under Windows, C-family code will return the same thing as Rust. I hope. Otherwise, Rust creates tons of overhead, or even worse, runs in a VM. 16:05 <+bridge> [ddnet] they do 16:06 <+bridge> [ddnet] sauce 16:06 <+bridge> [ddnet] They part of rust foundation 16:06 <+bridge> [ddnet] that, maybe 16:07 <+bridge> [ddnet] What's ur primary language? 16:07 <+bridge> [ddnet] any C language goes 16:07 <+bridge> [ddnet] C#? 16:07 <+bridge> [ddnet] pure C, never 16:07 <+bridge> [ddnet] C#/C++ works for me 16:08 <+bridge> [ddnet] If u ever encounter using c# use rust instead 16:08 <+bridge> [ddnet] C# for external stuff until they introduced native compiling since NET 7.0. C++ for whatever C# can't do. 16:09 <+bridge> [ddnet] C# for external stuff until they introduced native compiling since NET 7.0. C++ for whatever C# can't do. Which is hard to find something for nowadays. Because C# can even go Kernel using a Wrapper VollRagm introduced in our community. 16:10 <+bridge> [ddnet] Microsoft build a os in c# that does not directly use a kernel. But c# too much bloat 16:10 <+bridge> [ddnet] What type of bloat 16:11 <+bridge> [ddnet] Well garbage collection is bloat for example 16:12 <+bridge> [ddnet] that is an issue when you run C# in its little JIT VM 16:12 <+bridge> [ddnet] and I never had issues with Garbage Collection. Only when it comes to graphics stuff. Because graphics stuff gets excluded by it. 16:12 <+bridge> [ddnet] Which makes you have to set everything to null to force it onto those objects. 16:13 <+bridge> [ddnet] Which makes you have to set everything to null to force it onto those objects. Or otherwise you will leak memory most likely, as soon as you reinitialize something graphical. 16:13 <+bridge> [ddnet] U had no issues bcs it's made for easy use 16:13 <+bridge> [ddnet] It eats ram and is slower in most cases than normal allocation deallocation tho 16:15 <+bridge> [ddnet] thing is, you don't have to use GC 16:15 <+bridge> [ddnet] thing is, you don't have to use GC. you can use it. 16:15 <+bridge> [ddnet] if that is a nightmare for every memory management freak 16:17 <+bridge> [ddnet] What are u even developing 16:18 <+bridge> [ddnet] home or at work? 16:18 <+bridge> [ddnet] Wherever u have to use it 16:20 <+bridge> [ddnet] i think they use it in some kernel parts, they also made the windows crate 16:20 <+bridge> [ddnet] a crate is a library 16:21 <+bridge> [ddnet] https://learn.microsoft.com/en-us/windows/dev-environment/rust/rust-for-windows 16:21 <+bridge> [ddnet] Yea you know why 16:21 <+bridge> [ddnet] @Jupeyy_Keks he is a c# user 16:21 <+bridge> [ddnet] no point in talking 16:21 <+bridge> [ddnet] cant convince em 16:21 <+bridge> [ddnet] because Rust wouldn't be able to communicate with the OS like at all 16:21 <+bridge> [ddnet] they usually are m$ bootlickers 16:21 <+bridge> [ddnet] that's why Linux had to create a crate too 16:21 <+bridge> [ddnet] not at all xD 16:21 <+bridge> [ddnet] by that i mean that microsoft themselves made the crate 16:22 <+bridge> [ddnet] previously it was a user made one 16:22 <+bridge> [ddnet] as in a random person made the library 16:22 <+bridge> [ddnet] nevermind. but they actively added support for it in the kernel in version 6.1. 16:22 <+bridge> [ddnet] it wouldn't be able to do it by itself 16:22 <+bridge> [ddnet] nono 16:23 <+bridge> [ddnet] u are rly confused 16:23 <+bridge> [ddnet] what they added in the kernel 6.1 is support to use rust in the kernel itself 16:23 <+bridge> [ddnet] to help make drivers with it 16:23 <+bridge> [ddnet] u can use and call linux apis before 6.1 lol 16:23 <+bridge> [ddnet] :pandaeyes: 16:24 <+bridge> [ddnet] :WorrySnailEyes: 16:24 <+bridge> [ddnet] anyway no wonder you have that actitude 16:24 <+bridge> [ddnet] Remember ryos words. C is just a protocol xd 16:24 <+bridge> [ddnet] unwilling to learn 16:24 <+bridge> [ddnet] its pretty common in c# devs 16:24 <+bridge> [ddnet] i found this on the ff community 16:24 <+bridge> [ddnet] there is a marketboard website 16:24 <+bridge> [ddnet] they used c# 16:25 <+bridge> [ddnet] and its slow 16:25 <+bridge> [ddnet] so im making my own in rust 16:25 <+bridge> [ddnet] to flex 16:25 <+bridge> [ddnet] yea but it's not slow because of C# 16:25 <+bridge> [ddnet] it's slow because of wrong use of C# 16:25 <+bridge> [ddnet] nah its slow cuz they do wrong db management xD 16:25 <+bridge> [ddnet] but anyway its slow 16:25 <+bridge> [ddnet] and i will dab on them 16:26 <+bridge> [ddnet] altho ultimately 16:26 <+bridge> [ddnet] rust is way easier to paralelize 16:26 <+bridge> [ddnet] and do concurrent 16:26 <+bridge> [ddnet] simply because u dont need to be worried about race conditions 16:26 <+bridge> [ddnet] only deadlocks 16:26 <+bridge> [ddnet] and its as perf as C 16:26 <+bridge> [ddnet] @DefaultO even if i don't care what u use. Doesnt it suck that, no matter how hard u try, your code will execute at least twice as slow than the same code in a system level language. 16:27 <+bridge> [ddnet] 16:27 <+bridge> [ddnet] i would use c++ before c# 16:27 <+bridge> [ddnet] again, I compile it into native machine code since C# 7.0 16:27 <+bridge> [ddnet] @DefaultO can u do runtime reflection in compiled c#? 16:27 <+bridge> [ddnet] I would have to do research on the terminology here first 16:27 <+bridge> [ddnet] Nice but how does that solve the bottlenecks that come with the design 16:28 <+bridge> [ddnet] I know what reflection is 16:28 <+bridge> [ddnet] but runtime reflection got me all dizzy 16:28 <+bridge> [ddnet] name me a bottleneck 16:28 <+bridge> [ddnet] i mean reflection itself is runtime mostly i would say xd 16:29 <+bridge> [ddnet] Yea so probably no. Though you can call the API for that. I just never tried. 16:29 <+bridge> [ddnet] u can do compile time reflection in rust 16:29 <+bridge> [ddnet] https://github.com/dtolnay/reflect 16:29 <+bridge> [ddnet] I dereference an address to a function if I want to use a function from a game now 16:30 <+bridge> [ddnet] I dereference an address to a function if I want to use a function from a game now 16:30 <+bridge> [ddnet] Did you mention you hate unsafe code? Yea. That's peek performance unsafe code. 16:30 <+bridge> [ddnet] You crash if you don't get the types correct that the function expects from you 16:30 <+bridge> [ddnet] well ur mostly describing some kind of FFI 16:31 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052608819554955356/image.png 16:31 <+bridge> [ddnet] csharp 7 is slower 16:31 <+bridge> [ddnet] with AOT 16:31 <+bridge> [ddnet] i think its ur thing 16:31 <+bridge> [ddnet] native 16:31 <+bridge> [ddnet] @Jupeyy_Keks 16:32 <+bridge> [ddnet] looks like AOT uses less memory 16:32 <+bridge> [ddnet] but its slower 16:32 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052609046693285908/image.png 16:32 <+bridge> [ddnet] peak mem 1mb for rust 16:32 <+bridge> [ddnet] xd 16:32 <+bridge> [ddnet] Yeah look at that ram 16:33 <+bridge> [ddnet] https://programming-language-benchmarks.vercel.app/rust-vs-csharp 16:34 <+bridge> [ddnet] a thing GC is good at is binary trees 16:34 <+bridge> [ddnet] but they still use shitload of memory 16:34 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052609524957184180/image.png 16:35 <+bridge> [ddnet] kek 16:35 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052609715097587751/image.png 16:36 <+bridge> [ddnet] https://www.mn.uio.no/ifi/english/research/groups/psy/completedmasters/2020/gaarde/masterthesis-gaarde.pdf 16:37 <+bridge> [ddnet] ItS tHe ImPlEmEnTaTiOn 16:37 <+bridge> [ddnet] lol there is a thesis 16:37 <+bridge> [ddnet] i can tell u they did their best efforts 16:37 <+bridge> [ddnet] u can submit ur solution 16:37 <+bridge> [ddnet] btw 16:37 <+bridge> [ddnet] Gc is simply big problem sometimes. 16:38 <+bridge> [ddnet] its only good when dealing with trees 16:38 <+bridge> [ddnet] Most times xd 16:38 <+bridge> [ddnet] and even so its mostly not noticable 16:38 <+bridge> [ddnet] but they use more memory always 16:38 <+bridge> [ddnet] like 400% more 16:38 <+bridge> [ddnet] But in the end u can still use a gc in system level languages too 16:38 <+bridge> [ddnet] true 16:38 <+bridge> [ddnet] So i could imagine u can beat c sharp 16:38 <+bridge> [ddnet] i wonder if they used a arena allocator for the tree problems 16:38 <+bridge> [ddnet] If it really comes from this 16:39 <+bridge> [ddnet] why do you keep mentioning GC 16:39 <+bridge> [ddnet] Does it also beat c here? 16:39 <+bridge> [ddnet] when you don't even have to use it 16:39 <+bridge> [ddnet] what if there is no GC 16:39 <+bridge> [ddnet] @DefaultO but the non GC c# is slower 16:39 <+bridge> [ddnet] as u have seen 16:39 <+bridge> [ddnet] xD 16:40 <+bridge> [ddnet] rust is like a safe C++ without GC 16:40 <+bridge> [ddnet] its a game changer 16:40 <+bridge> [ddnet] Not sure actually if you can see it even from your sweet tables 16:40 <+bridge> [ddnet] because compiling AOT doesn't automatically mean GC is disabled 16:40 <+bridge> [ddnet] :AloneBlu: 16:40 <+bridge> [ddnet] in fact people still use GC for the native stuff for whatever reason 16:41 <+bridge> [ddnet] What do u use? 16:41 <+bridge> [ddnet] I didn't read all 16:41 <+bridge> [ddnet] Win api? 16:41 <+bridge> [ddnet] yes pretty much 16:42 <+bridge> [ddnet] The compiler probs not allowed to optimize them away 16:42 <+bridge> [ddnet] Can u access the stack for objects? 16:42 <+bridge> [ddnet] explain 16:43 <+bridge> [ddnet] Else this could be a place where compiler can optimize gc away 16:43 <+bridge> [ddnet] Bcs the lifetime is known potentially 16:43 <+bridge> [ddnet] Store objects on stack instead of heap 16:44 <+bridge> [ddnet] never done that 16:44 <+bridge> [ddnet] no experience 16:44 <+bridge> [ddnet] But with winapi calls it might not do that 16:44 <+bridge> [ddnet] Bcs of side effects 16:44 <+bridge> [ddnet] @Jupeyy_Keks i think its mostly heap based 16:44 <+bridge> [ddnet] unless its a non boxed primitve 16:44 <+bridge> [ddnet] primitive 16:45 <+bridge> [ddnet] another reasonn to learn C or Rust 16:45 <+bridge> [ddnet] not knowing what the stack or heap is 16:45 <+bridge> [ddnet] i know what a stack is 16:45 <+bridge> [ddnet] just not if my program uses it or the other one 16:45 <+bridge> [ddnet] most of the time if u type new in c# its heap 16:45 <+bridge> [ddnet] iirc 16:45 <+bridge> [ddnet] ^^ 16:46 <+bridge> [ddnet] yea but then you could force use stack 16:46 <+bridge> [ddnet] MyStupidOOPClass x = new MyStupidOOPCLAS() 16:46 <+bridge> [ddnet] surely 16:46 <+bridge> [ddnet] HEAP 16:46 <+bridge> [ddnet] oops 16:46 <+bridge> [ddnet] capslock 16:46 <+bridge> [ddnet] hard on a language such as c# or java 16:46 <+bridge> [ddnet] i mean give me an example in your language 16:47 <+bridge> [ddnet] i then can think if I can implement it in my language 16:47 <+bridge> [ddnet] MyStupidOOPCLAS a; 16:47 <+bridge> [ddnet] No new 16:47 <+bridge> [ddnet] yea that is possible 16:47 <+bridge> [ddnet] @Jupeyy_Keks a string being on the heap or stack in c# is an implementation detaiΓ±l 16:47 <+bridge> [ddnet] detail 16:47 <+bridge> [ddnet] but it will scream that it was never intitialized 16:47 <+bridge> [ddnet] thats how much they care about perf 16:47 <+bridge> [ddnet] so it is null or the default object 16:47 <+bridge> [ddnet] https://stackoverflow.com/questions/12727821/net-stack-and-heap-what-goes-where-when-i-declare-a-string 16:47 <+bridge> [ddnet] It's the fastest high level language 16:48 <+bridge> [ddnet] But still shower than rust cpp and c^^ 16:48 <+bridge> [ddnet] is it? 16:48 <+bridge> [ddnet] what about golang 16:48 <+bridge> [ddnet] kek 16:48 <+bridge> [ddnet] https://tenor.com/view/are-you-sure-about-that-gif-18238502 16:48 <+bridge> [ddnet] @Jupeyy_Keks also modern java might outcompete c# iirc 16:48 <+bridge> [ddnet] with the new GC impls 16:48 <+bridge> [ddnet] Maybe Julia if that's even considered high level it some less known. But pretty fast 16:48 <+bridge> [ddnet] never 16:48 <+bridge> [ddnet] Or 16:49 <+bridge> [ddnet] No java even bigger bloat xd 16:49 <+bridge> [ddnet] ^ 16:49 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052613302817144912/image.png 16:49 <+bridge> [ddnet] i like how u deleted ur comment 16:49 <+bridge> [ddnet] before i posted this 16:49 <+bridge> [ddnet] kek 16:49 <+bridge> [ddnet] modern java got optimized a lot 16:50 <+bridge> [ddnet] yea there is the program 16:50 <+bridge> [ddnet] and then the runtime 16:50 <+bridge> [ddnet] that is like 800mb 16:50 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052613525987672124/image.png 16:50 <+bridge> [ddnet] llook the ram on AOT 16:50 <+bridge> [ddnet] they clearly dont use GC 16:50 <+bridge> [ddnet] yet slower 16:50 <+bridge> [ddnet] peak mem for aot 16:50 <+bridge> [ddnet] impressive 16:51 <+bridge> [ddnet] well not really 16:51 <+bridge> [ddnet] was obvious 16:51 <+bridge> [ddnet] doesnt beat rust tho 16:51 <+bridge> [ddnet] more control = easier to optimize 16:51 <+bridge> [ddnet] u cant win with a gc 16:51 <+bridge> [ddnet] its simple 16:51 <+bridge> [ddnet] but u dont have to worry about losing ur job 16:51 <+bridge> [ddnet] since m$ is behind c# 16:51 <+bridge> [ddnet] do you want me to tell you that rust is indeed better 16:52 <+bridge> [ddnet] it would be good but not required 16:52 <+bridge> [ddnet] cuz i already know 16:52 <+bridge> [ddnet] :BASED: 16:52 <+bridge> [ddnet] yea but you lied to yourself 16:52 <+bridge> [ddnet] wdym 16:52 <+bridge> [ddnet] you actually kept the discussion about something you knew going 16:52 <+bridge> [ddnet] with someone who never used rust 16:52 <+bridge> [ddnet] check mate 16:52 <+bridge> [ddnet] oh cuz i love discussing about this 16:52 <+bridge> [ddnet] @Jupeyy_Keks knows 16:52 <+bridge> [ddnet] :blobwhistle: 16:53 <+bridge> [ddnet] Rust is indeed better than C#. You proved it with various code tests. 16:53 <+bridge> [ddnet] nice 16:53 <+bridge> [ddnet] Xd 16:54 <+bridge> [ddnet] now u have to learn rust 16:54 <+bridge> [ddnet] and u will join the club with @ReiTW 16:54 <+bridge> [ddnet] Nah g 16:54 <+bridge> [ddnet] 16:54 <+bridge> [ddnet] My parents house is strict. No Rust. 16:55 <+bridge> [ddnet] u mean work? 16:55 <+bridge> [ddnet] dont limit urself cuz work 16:55 <+bridge> [ddnet] learn it cuz u want 16:55 <+bridge> [ddnet] not work 16:55 <+bridge> [ddnet] who cares about work 16:55 <+bridge> [ddnet] then what 16:55 <+bridge> [ddnet] family tree 16:55 <+bridge> [ddnet] does ur parent beat u 16:55 <+bridge> [ddnet] if u dont use c# 16:55 <+bridge> [ddnet] if I would use Rust 16:55 <+bridge> [ddnet] maybe 16:55 <+bridge> [ddnet] is he a microsoft employee? 16:56 <+bridge> [ddnet] 16:56 <+bridge> [ddnet] :monkalaugh: 16:56 <+bridge> [ddnet] nah but Siemens 16:56 <+bridge> [ddnet] boring corpo 16:56 <+bridge> [ddnet] i recommend this read 16:56 <+bridge> [ddnet] http://www.catb.org/~esr/faqs/hacker-howto.html 16:56 <+bridge> [ddnet] to get the right mindset 16:57 <+bridge> [ddnet] note that hacker is not used in the kids sense 16:57 <+bridge> [ddnet] as u may know 16:57 <+bridge> [ddnet] Maybe I know 16:58 <+bridge> [ddnet] Though Mr.Robot was a rather realistic TV show. 16:58 <+bridge> [ddnet] > There is another group of people who loudly call themselves hackers, but aren't. These are people (mainly adolescent males) who get a kick out of breaking into computers and phreaking the phone system. Real hackers call these people β€˜crackers’ and want nothing to do with them. Real hackers mostly think crackers are lazy, irresponsible, and not very bright, and object that being able to break security doesn't make you a hacker any more 16:58 <+bridge> [ddnet] > 16:58 <+bridge> [ddnet] > The basic difference is this: hackers build things, crackers break them. 16:59 <+bridge> [ddnet] hackers are for example, people who contribute to ddnet 16:59 <+bridge> [ddnet] literally 16:59 <+bridge> [ddnet] it isnt, but the serie is rly good 16:59 <+bridge> [ddnet] i watched it all xD 16:59 <+bridge> [ddnet] love the actor 16:59 <+bridge> [ddnet] dead stare 17:00 <+bridge> [ddnet] it isn't? 17:00 <+bridge> [ddnet] realistic 17:00 <+bridge> [ddnet] like the end. yes. 17:00 <+bridge> [ddnet] unrealistic. 17:01 <+bridge> [ddnet] > It's completely realistic when it comes to the techniques and the technology, but it's very fictional when it comes to stuff like two people planning and executing a huge hack in a matter of days. So no, in practice it's not possible for someone to be as good as Elliot, although with enough time, people, skill, managing and luck it's possible to a group of hackers to execute most of the stuff he and the rest of fsociety does. 17:02 <+bridge> [ddnet] actually NSA did more amazing stuff than what this series shows 17:02 <+bridge> [ddnet] they hacked air gapped turbines in a nuclear facility to not operate correctly in iran iirc 17:02 <+bridge> [ddnet] i can recommend u a rly good pdocast 17:02 <+bridge> [ddnet] darknet stories? 17:02 <+bridge> [ddnet] yeah 17:02 <+bridge> [ddnet] best onen tbh 17:02 <+bridge> [ddnet] yea 17:02 <+bridge> [ddnet] i used to listen to it at the gym xd 17:02 <+bridge> [ddnet] i listened it through once 17:03 <+bridge> [ddnet] stopped for whatever reason 17:03 <+bridge> [ddnet] couldn't wait anymore for the next episode 17:03 <+bridge> [ddnet] the thing is we only know about their failures 17:03 <+bridge> [ddnet] an they are still amazing 17:03 <+bridge> [ddnet] the successes will never be known 17:03 <+bridge> [ddnet] cuz by becoming known they failed 17:03 <+bridge> [ddnet] :EZY: 17:03 <+bridge> [ddnet] thats a good quote 17:03 <+bridge> [ddnet] i should become a writer 17:03 <+bridge> [ddnet] :ezpepe: 17:04 <+bridge> [ddnet] that's their quote probably 17:04 <+bridge> [ddnet] i heard it somewhere 17:04 <+bridge> [ddnet] i heard or read it somewhere 17:04 <+bridge> [ddnet] in case there is probably lurkers reading this 17:04 <+bridge> [ddnet] https://darknetdiaries.com/ 17:04 <+bridge> [ddnet] here is the podcast 17:06 <+bridge> [ddnet] and what i mentioned is 17:06 <+bridge> [ddnet] Stuxnet 17:06 <+bridge> [ddnet] https://darknetdiaries.com/episode/29/ 17:06 <+bridge> [ddnet] https://en.wikipedia.org/wiki/Stuxnet 17:08 <+bridge> [ddnet] Is there an option to disable this, if not, can it be removed? It's not really useful at all 17:08 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052618185855209603/image.png 17:17 <+bridge> [ddnet] oh god, not again 17:17 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052620393166413915/image.png 17:19 <+bridge> [ddnet] nothing interesting 17:19 <+bridge> [ddnet] just a talk about the universe, something game related, and then two people rambling with me why Rust is good. 17:20 <+bridge> [ddnet] yup, just flew over, most of it was just you with Ryo or Jupstar on languages 17:21 <+bridge> [ddnet] could have gone into #off-topic. but some devs aren't that strict. 17:21 <+bridge> [ddnet] #developer is also #off-topic but reserved for developers πŸ˜„ 17:39 <+bridge> [ddnet] done ^ 17:39 <+bridge> [ddnet] Thank you 18:41 <+bridge> [ddnet] https://svelte.dev/blog/announcing-sveltekit-1.0 18:41 <+bridge> [ddnet] i was using this on some projects 18:41 <+bridge> [ddnet] poggers 18:41 <+bridge> [ddnet] bye reactjs 19:50 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052658871203799103/image-5.png 19:50 <+bridge> [ddnet] Lmao 19:53 <+bridge> [ddnet] it escalates xd 20:02 <+bridge> [ddnet] xd 20:03 <+bridge> [ddnet] i send that here 20:03 <+bridge> [ddnet] some day ago 20:03 <+bridge> [ddnet] sent 20:05 <+bridge> [ddnet] yes u always fastest 20:05 <+bridge> [ddnet] i dont even read news anymore, they slower than u 20:06 <+bridge> [ddnet] :lulEZ: 20:18 <+bridge> [ddnet] I wonder how they check if it is from ChatGPT. When it is complete bs? 20:19 <+bridge> [ddnet] maybe they simply ask it 20:19 <+bridge> [ddnet] It generates something different everytime 20:25 <+bridge> [ddnet] I think it's to prevent question such as: 20:25 <+bridge> [ddnet] "Why would AI write this code to do X when it could simply do Y?" 20:29 <+bridge> [ddnet] Thats not what that sentence says though. It says you aren't allowed to use it for answers. 20:34 <+bridge> [ddnet] They nerfed openai too much 20:35 <+bridge> [ddnet] Before i could ask it to act as a browser console but now it cries out "im not a browser im an ai i cant do that" 20:36 <+bridge> [ddnet] "i was not trained for thaaat" 20:49 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052673736135933993/hB6AE3FF1.jpg 20:51 <+bridge> [ddnet] how do i check if a packet is actually being sent? 20:53 <+bridge> [ddnet] Test ob local server 20:53 <+bridge> [ddnet] Easy bypass 20:53 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1052674692084932679/image-1.png 20:53 <+bridge> [ddnet] Test on local server 20:53 <+bridge> [ddnet] But actually if you dont care if it was received you can do it with some tool like wireshark 21:38 <+bridge> [ddnet] @Chairn well wouldnt that defeat the point of oco map 21:41 <+bridge> [ddnet] well, a small sacrifice 22:05 <+bridge> [ddnet] there should also be a way to toggle some tiles in entities since on some maps switches, speed up tiles and other things cover freeze tiles or tps 22:26 <+bridge> [ddnet] Maps with map challenges had to die this death a long time ago :kek: 22:26 <+bridge> [ddnet] Maps with math challenges/pick a path had to die this death a long time ago :kek: