05:27 <+bridge> [ddnet] Oke looks like i successfully woke up for advent of code :greenthing: 05:50 <+bridge> [ddnet] yeah it is 05:50 <+bridge> [ddnet] i started rewriting it at all and just pushed half of code that works 05:51 <+bridge> [ddnet] so now its broken 05:51 <+bridge> [ddnet] especially async version 05:51 <+bridge> [ddnet] and also logging has been changed so parser is also broken 07:10 <+bridge> [ddnet] Is there any way to use 2 differently sized images for one use case? Like, if there are 2 images, but one of them is merely an extension of the other one? 07:10 <+bridge> [ddnet] If I want to add extra emotes I want there to be backwards compatibility with the old format. 07:10 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1047756666080337980/image.png 07:57 <+bridge> [ddnet] I don't think we have support for that yet 07:57 <+bridge> [ddnet] Aw :( 08:05 <+bridge> [ddnet] Best would be to make a new image so the old client just ignores the new one and keeps using the old 08:17 <+bridge> [ddnet] So then would I need to create an entirely new enum for that? 08:18 <+bridge> [ddnet] Well I hardly know anything about the inner workings of ddnet so I don't know what an enum is 08:18 <+bridge> [ddnet] I'm just saying it's better to create it as a seperate feature 08:18 <+bridge> [ddnet] Or integrate it into the existing 08:20 <+bridge> [ddnet] maybe 08:23 <+bridge> [ddnet] I'd integrate it into the existing image 08:23 <+bridge> [ddnet] but I think best would be to ask for feedback from other developers @Voxel 09:07 <+bridge> [ddnet] Don't integrate stuff into emotes. Just use a new image 09:07 <+bridge> [ddnet] Plan carefully which emotes and fill all space 09:10 <+bridge> [ddnet] I'd seriously consider the amount of work required to do this bloat. It's currently allowed to have different height and width. So we'd need to detect at runtime if there are new emotes. Simply using a new image is much easier and we can abstract our current logic to work the same for both emote files 09:59 <+bridge> [ddnet] Does anyone here know how to use HttpPostJson() to make an http request? I'm trying to make an in game translator using a free api I found, but am unable to get a response and just get an error 10:20 <+bridge> [ddnet] What is the error 10:20 <+bridge> [ddnet] Also is the api even using json 10:24 <+bridge> [ddnet] https://libretranslate.com/ is the api I'm using, and the state of the response is always error 10:24 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1047805429142532096/image.png 10:32 <+bridge> [ddnet] No logs in console? 10:32 <+bridge> [ddnet] E.g. why it is error 10:33 <+bridge> [ddnet] I think i might be formatting my request wrong and its giving an error as a response 10:34 <+bridge> [ddnet] if I try to unpack the values without checking if the state() is HTTP_DONE then I get an error in console 10:54 <+bridge> [ddnet] I did have the data in my request formatted incorrectly, I figured it out 😄 11:16 <+ChillerDragon> @Patiga any idea why ipython doesnt wanna show the help page :( 11:17 <+ChillerDragon> https://zillyhuhn.com/cs/.1669889818.png 11:18 <+ChillerDragon> ops i mean this https://zillyhuhn.com/cs/.1669889873.png 11:18 <+ChillerDragon> https://zillyhuhn.com/cs/.1669889873.png 11:18 <+bridge> [ddnet] what about help twmap.Map 11:18 <+bridge> [ddnet] i actually never used help xD 11:18 <+ChillerDragon> na none work :( 11:18 <+bridge> [ddnet] help(twmap.Map) 11:18 <+ChillerDragon> na 11:19 <+bridge> [ddnet] idk 11:19 <+bridge> [ddnet] what about python 11:19 <+ChillerDragon> something is cursed w iypthon 11:19 <+bridge> [ddnet] not ipython 11:19 <+ChillerDragon> python works fine 11:19 <+bridge> [ddnet] ah 11:19 <+ChillerDragon> but ipythons autocompletion is cool 11:19 <+bridge> [ddnet] then ipython suxs 11:20 <+ChillerDragon> got it 11:20 <+ChillerDragon> its ``twmap?`` 11:20 <+ChillerDragon> trol 11:22 <+ChillerDragon> ok ipython is trash w twmap :( 11:24 <+ChillerDragon> omg ``breakpoint()`` also eats the help page watafak 11:24 <+bridge> [ddnet] Nice 11:25 <+bridge> [ddnet] 👍 11:25 <+bridge> [ddnet] Interesting project btw. 11:26 <+bridge> [ddnet] Often heard about it. With an open tool we could maybe integrate it optionally in ddnet.. tho reading tos is hard 11:26 <+bridge> [ddnet] Since our player base is relatively huge we might create too much traffic^^ 11:26 <+ChillerDragon> yo @Skystrife if you want some free api keys for libretranslate lemme know i run https://trans.zillyhuhn.com/ 11:26 <+bridge> [ddnet] chiller lgbt 11:26 <+bridge> [ddnet] Ah u can self host? 11:26 <+ChillerDragon> da 11:27 <+bridge> [ddnet] well its libre 11:27 <+ChillerDragon> used on foxxonauts tw server for chat translate 11:27 <+bridge> [ddnet] so if its gpl 11:27 <+bridge> [ddnet] u should be able 11:27 <+bridge> [ddnet] agpl 11:27 <+ChillerDragon> but its not very good 11:27 <+ChillerDragon> its pretty bad actually xd 11:27 <+bridge> [ddnet] xd 11:27 <+ChillerDragon> but super funny 11:31 <+bridge> [ddnet] any erlang experts here? 11:35 <+bridge> [ddnet] I'd disallow images that don't have the fixed aspect ratio instead. the problem with using more images is that it becomes harder to share emotes 11:35 <+bridge> [ddnet] but that's basically why I asked for a discussion issue 11:36 <+bridge> [ddnet] I'd say it's harder if we don't split it. Bcs all current images are basically invalid then 11:36 <+bridge> [ddnet] Or not useful have to be extended 11:36 <+bridge> [ddnet] all current images can continue to be shared 11:36 <+bridge> [ddnet] Plus the extra code not nice 11:36 <+bridge> [ddnet] yes, I see that downside 11:36 <+bridge> [ddnet] there's extra code involved 11:36 <+bridge> [ddnet] that's bad 11:37 <+bridge> [ddnet] Yes but e.g. if u want image for new emotes and like ur current. U have to extend ur current 11:37 <+bridge> [ddnet] yep 11:38 <+bridge> [ddnet] but I would find it unlikely that this happens, they're usually in the same art style 11:38 <+bridge> [ddnet] all of the emotes 11:39 <+bridge> [ddnet] But the new are more ddrace related or not? 11:39 <+bridge> [ddnet] Do different art style maybe not bad 12:03 <+bridge> [ddnet] ChillerDragon: does `help(twmap)` work? 12:08 <+ChillerDragon> no 12:08 <+ChillerDragon> only ``twmap?`` but its way less feature complete 12:28 <+bridge> [ddnet] Please change `trans` to `translate`, i nearly added it to firewall ban:monkalaugh: 12:40 <+ChillerDragon> hrhrhr 12:50 <+bridge> [ddnet] that'd be awesome! 13:15 <+ChillerDragon> how can i send you stuff without leaking it here? :D 13:15 <+ChillerDragon> @Ryozuki u here? 13:19 <+ChillerDragon> @Skystrife patiga should have sent you the key. It has 1028 requests per minute :) 13:26 <+bridge> [ddnet] damn nice 😄 13:33 <+bridge> [ddnet] wowo, its finally time for the bash-madness again .__. 13:33 <+bridge> [ddnet] ```bash 13:33 <+bridge> [ddnet] #!/bin/bash 13:33 <+bridge> [ddnet] # Advent of Code 01 13:33 <+bridge> [ddnet] while read -r l; do 13:33 <+bridge> [ddnet] if [ -z "$l" ]; then 13:33 <+bridge> [ddnet] nm+=( "$c" ) 13:33 <+bridge> [ddnet] c=0 13:33 <+bridge> [ddnet] else 13:33 <+bridge> [ddnet] c=$(( c + l )) 13:33 <+bridge> [ddnet] fi 13:33 <+bridge> [ddnet] done < "$1" 13:33 <+bridge> [ddnet] nms=$(xargs -n1 <<< "${nm[@]}" | sort -n) 13:33 <+bridge> [ddnet] x1=$(tail -n1 <<< "${nms[@]}") 13:33 <+bridge> [ddnet] x2=$(tail -n3 <<< "${nms[@]}" | xargs | tr ' ' '+' | bc) 13:33 <+bridge> [ddnet] echo "$x1 $x2" 13:34 <+bridge> [ddnet] ``` 13:36 <+bridge> [ddnet] 13:36 <+bridge> [ddnet] leaking code 13:52 <+bridge> [ddnet] Hi @Index , nice bash 😄 13:52 <+bridge> [ddnet] That looks like something I could have written, haha 13:52 <+bridge> [ddnet] and annoyed the other ddnet admins with 13:55 <+bridge> [ddnet] :justatest: 14:02 <+bridge> [ddnet] My shell solution: `paste -s -d+ input|sed -e"s/++/\n/g"|bc|sort -n|tail -n1` 14:03 <+ChillerDragon> ``bc`` is non standard tho is it? 14:07 <+bridge> [ddnet] > bc(1) is compliant with the IEEE Std 1003.1-2017 (“POSIX.1-2017”) specification. 14:09 <+bridge> [ddnet] I made a repo for the answers, not sure yet if I'll participate for more than a few: https://github.com/def-/adventofcode-2022 14:09 <+bridge> [ddnet] My solution is dirty c++ code with stl and repeating code:monkalaugh: 14:09 <+bridge> [ddnet] more important that it works 14:09 <+bridge> [ddnet] So true 14:12 <+bridge> [ddnet] tf single line tryhard 14:13 <+bridge> [ddnet] Last time I participated I made a point of using a different language for each solution: https://github.com/def-/adventofcode-2020 😄 14:13 <+bridge> [ddnet] Was so annoying towards the end when I ran out of good languages 14:41 <+bridge> [ddnet] im gonna do advent in erlang 14:41 <+bridge> [ddnet] cuz i need to learn it 15:02 <+bridge> [ddnet] Is there a fastest code wins category? 15:08 <+bridge> [ddnet] no, its only about who coded it faster on the leaderboards 15:19 <+ChillerDragon> meh patiga making numpy fast is hard i wanna iterate over all tiles and do some comparisons and it is sooooooooooooooo slow 15:19 <+ChillerDragon> been reading numpy doc and SO for the whole day and aint getting any further 15:29 <+bridge> [ddnet] https://ferd.ca/the-zen-of-erlang.html 15:29 <+bridge> [ddnet] interesting read 15:29 <+bridge> [ddnet] erlang is about letting things crash xd 15:30 <+ChillerDragon> ``tr '\n' ' ' | sed 's/ /\n/g' | sed 's/ /+/g' | sed 's/+$//g' | awk '{ print "echo $((" $0 "))" }' | bash | sort -n | tail -n 1`` 15:30 <+ChillerDragon> pog 15:31 <+ChillerDragon> basically giving aoc RCE on my machine axaxax 15:36 <+bridge> [ddnet] You used swipl in both 1st and 19th day, not cool :feelsbadman: 15:42 <+bridge> [ddnet] we can do that between ourselves tho 15:42 <+bridge> [ddnet] the best would be to have a machine to run the code which we share 15:42 <+bridge> [ddnet] kek 15:45 <+ChillerDragon> what about running it in a pipeline? 15:45 <+ChillerDragon> should be benchmarking with same specs for all i hope 15:47 <+bridge> [ddnet] Mh that's sad. So if u have no time u loose xd 15:48 <+bridge> [ddnet] Yeah and no asm xd 15:51 <+bridge> [ddnet] if u mean a ci pipeline no 15:51 <+bridge> [ddnet] they have lot of noise 15:51 <+bridge> [ddnet] maybe a RPI with a bare bones linux 15:52 <+ChillerDragon> How does one properly benchmark? Inst there a way to limit cpu speed to a fixed rate? Or count cpu cycles for a program? 15:55 <+bridge> [ddnet] No smt and constant frequency sounds sane enough 15:55 <+bridge> [ddnet] 10 runs per program 15:55 <+bridge> [ddnet] Rest is margin of error 15:59 <+ChillerDragon> lmao deen urs throws a error xd 15:59 <+ChillerDragon> ah hm its the empty line at the end of my input 16:01 <+ChillerDragon> shieet deens is way faster than mine xd 16:02 <+bridge> [ddnet] deen wizard 16:02 <+bridge> [ddnet] i mean urs runs sed 3 times 16:02 <+bridge> [ddnet] vs 1 16:02 <+ChillerDragon> ikr 16:02 <+bridge> [ddnet] bash for calculation is probably slower than bc 16:02 <+ChillerDragon> i assume its the seds 16:05 <+ChillerDragon> ayo at least im faster than @Index :p 16:07 <+bridge> [ddnet] wrong index lol 16:07 <+bridge> [ddnet] ChillerDragon: what kinds of comparisons? you usually do comparisons with the whole matrix element-wise, or with slices of it 16:07 <+ChillerDragon> i want to get the diff of layers 16:07 <+ChillerDragon> so i did a iteration and if statements and its unusably slow 16:07 <+ChillerDragon> with numpy magic i couldnt figure it out 16:08 <+bridge> [ddnet] something like `layer1 == layer2` 16:08 <+ChillerDragon> no 16:08 <+ChillerDragon> i want all the things that are different 16:08 <+bridge> [ddnet] this should give you a matrix where each element tells you if the tile at this position is different 16:08 <+ChillerDragon> like a list of tiles with their flags and coordinates that are diffenrnt 16:09 <+ChillerDragon> wait == doesnt return a bool but a array? 16:09 <+bridge> [ddnet] iirc, yes 16:09 <+ChillerDragon> wotefek 16:09 <+bridge> [ddnet] yup, tested it 16:11 <+bridge> [ddnet] with numpy, try to always make operations with the entire matrix or slices of it if possible. if you iterate over a numpy array manually for some matrix-wide operation, you are probably doing it sub-optimal 16:11 <+ChillerDragon> okay yea that array of bools is kinda cool 16:12 <+ChillerDragon> how do i get the only the elements that are true or false instead of the true and falses 16:12 <+ChillerDragon> yea i understood that much but idk how to operate on the whole matrix 16:13 <+bridge> [ddnet] that is mostly just internet searches for me ^^ 16:13 <+ChillerDragon> didnt work for me :( 16:13 <+bridge> [ddnet] a, its `tiles1[tiles1 == tiles2]` 16:14 <+ChillerDragon> tried that 16:14 <+ChillerDragon> looks weird 16:14 <+bridge> [ddnet] it should give you the elements 16:14 <+ChillerDragon> ``[0 0 0 ... 0 0 0]`` 16:15 <+bridge> [ddnet] right, you have a 3-dimensional array 16:15 <+bridge> [ddnet] and want a 2-dimensional array at the end 16:16 <+ChillerDragon> yea 2d would be cool but it needs to have all the info x,y,tile,flags 16:19 <+bridge> [ddnet] that would be a combination of `numpy.indices`, `numpy.equal`, `numpy.concatenate` and that mask-indexing thing 16:19 <+ChillerDragon> yikes wat 16:19 <+bridge> [ddnet] at least that would work 16:21 <+bridge> [ddnet] first do the equal things and figure out how to tell numpy to stop at the second axis to get the mask 16:21 <+bridge> [ddnet] then take the tiles you want and concatenate that matrix with the indices matrix 16:21 <+bridge> [ddnet] then index into those tiles with the mask 16:22 <+bridge> [ddnet] I think that would work, I don't have the time rn to figure each step out, hopefully the documentation helps you enough now ^^ 16:22 <+ChillerDragon> oof 16:22 <+ChillerDragon> that sounds so complicated 16:25 <+ChillerDragon> i think i rq for today but thanks a lot the == thing i would have never figured out 16:25 <+bridge> [ddnet] ah wait 16:25 <+bridge> [ddnet] > Erlang uses the actor model, and each actor is a separate process in the virtual machine. In a nutshell, if you were an actor in Erlang's world, you would be a lonely person, sitting in a dark room with no window, waiting by your mailbox to get a message. Once you get a message, you react to it in a specific way: you pay the bills when receiving them, you respond to Birthday cards with a "Thank you" letter and you ignore the letters you c 16:25 <+bridge> [ddnet] 16:25 <+bridge> [ddnet] too real 16:26 <+bridge> [ddnet] you can do `tiles1 == tiles2.nonzero()` to get the indices 16:27 <+bridge> [ddnet] then you could manually index into the matrix. if the diff isnt huge, then this should be fine 16:29 <+bridge> [ddnet] eh not sure, try it out I guess, gtg 16:29 <+bridge> [ddnet] and gl :) 16:49 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1047902150832959488/unknown.png 16:49 <+bridge> [ddnet] i found some old hardware i had 16:49 <+bridge> [ddnet] the ram is 512MB xD 16:52 <+bridge> [ddnet] back when the ram didnt have fancy gamerz heatsinks 16:55 <+bridge> [ddnet] poor pins 17:02 <+bridge> [ddnet] yeah 17:02 <+bridge> [ddnet] its broken 17:03 <+bridge> [ddnet] its stuck to the thermal paste xD 17:03 <+bridge> [ddnet] probs a pentium 17:03 <+bridge> [ddnet] its curious it doesnt have pins in the center 17:05 <+bridge> [ddnet] no, that's a socket 754 amd cpu 17:45 <+bridge> [ddnet] What year is that? I took apart a 2004 dell dimension and it looks similar. Only one stick of 512mb of ram☠️ 17:46 <+bridge> [ddnet] I have 128mb and 256mb ram sticks sitting around somewhere :kek: 17:53 <+bridge> [ddnet] maybe same xd 17:54 <+bridge> [ddnet] it was from a pc tower i had 17:54 <+bridge> [ddnet] well the family had 19:17 <+bridge> [ddnet] https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html 20:50 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1047963021026279515/image.png 20:51 <+bridge> [ddnet] This was very interesting to solve with javascript 20:54 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1047963916401131611/image.png 20:54 <+bridge> [ddnet] \*happy noises* 21:16 <+bridge> [ddnet] 🥹 21:16 <+bridge> [ddnet] parentheses missing 21:30 <+bridge> [ddnet] cool 🙂 21:45 <+bridge> [ddnet] https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html 21:45 <+bridge> [ddnet] ah, old 21:46 <+bridge> [ddnet] :p 21:47 <+bridge> [ddnet] "As Android migrates away from C/C++ to Java/Kotlin/Rust" 21:47 <+bridge> [ddnet] 21:47 <+bridge> [ddnet] remove Java & Kotlin and im fine 21:48 <+bridge> [ddnet] bcs thats the biggest trash about android 21:48 <+bridge> [ddnet] also sad that they didnt include java & c in older versions 21:49 <+bridge> [ddnet] bcs the advanced usage of selinux is only android 8 thing iirc 21:50 <+bridge> [ddnet] to me the stats look like the number of vulnerables decreased faster than usage of rust. 21:50 <+bridge> [ddnet] so there must be smth to it different than languages used, or not? 21:53 <+bridge> [ddnet] anyway i think its a bad blog tbh 21:53 <+bridge> [ddnet] 21:53 <+bridge> [ddnet] i prefer clear data 21:53 <+bridge> [ddnet] Does anyone know how to make an async http request? I'm currently doing it like this, but it freezes the game to make the request which is not ideal 21:53 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1047978748898721895/image.png 21:53 <+bridge> [ddnet] this looks like marketing and i'm not really biggest android fan 21:54 <+bridge> [ddnet] just look for other httppostjson jobs are called 21:54 <+bridge> [ddnet] u are litteraly doing it sync 21:54 <+bridge> [ddnet] happen to have a blog post on such a topic with clearer data? I'd be interested 21:54 <+bridge> [ddnet] no, but do u feel like this blog is good? 21:55 <+bridge> [ddnet] https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Jc4WA4Zbch9KSu4ApG67kOIwSoxnTih3B43kfyr_nS8Q96-5eaS4l2Czb-ZDexcU6c5JMtnXboax5ZO1J0VbkqRKqfiIl5TtOfoTHmLiAivLPxRqpvTV1wJWNi0azR38SpKMFDLIcKjGRMwyOcKzdCEM4RBptIhVnR63DkWsg3brjQrG9D9rlAAvUA/s1600/Screenshot%202022-11-30%2011.08.27%20PM.png 21:55 <+bridge> [ddnet] 21:55 <+bridge> [ddnet] https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK7bZcWqsUDmKTeZEvMXZDXDoGViXjhUmjmkIpG7OwCKVVRK2Ps7UqWzENqylekR3jREu5j6uCcMp6KXC52LY_0vsPO33_6fzZB1lgCEP5bhcU-D4B1EUxWrrhfAR4j3Pu_jiIGSlNrRSov58resIoQcAPuoxbeccvY6PbCPl3E9oFLuCivwFoT-lG5g/s1600/Screenshot%202022-11-30%2011.13.29%20PM.png 21:56 <+bridge> [ddnet] I know, I'm just a novice at c++ and I saw it done this way elsewhere in the code but didnt see an async way 21:56 <+bridge> [ddnet] this does not look like it could only relate to languages used, except they purposly made the usage of rust where the vulnerables are 21:56 <+bridge> [ddnet] ^ tho that would be surprising still 21:57 <+bridge> [ddnet] the else where is async 21:57 <+bridge> [ddnet] its not even just async 21:57 <+bridge> [ddnet] it runs in a different thread 21:57 <+bridge> [ddnet] i dunno where u come from 21:58 <+bridge> [ddnet] its not like async in javascript 21:58 <+bridge> [ddnet] ye ii feel the blog is vague too 21:58 <+bridge> [ddnet] there is a job manager, basically a thread pool 21:58 <+bridge> [ddnet] and idc about java either xd 21:58 <+bridge> [ddnet] android shoudl use wasm 21:58 <+bridge> [ddnet] ez sandbox 21:58 <+bridge> [ddnet] correlation is not causation 21:58 <+bridge> [ddnet] no they should go rust 21:58 <+bridge> [ddnet] but not kotlin 21:58 <+bridge> [ddnet] this trash xd 21:59 <+bridge> [ddnet] + older distro have more vulnerabilities cause we had more time to find them 21:59 <+bridge> [ddnet] but they need a sandbox 21:59 <+bridge> [ddnet] and i want clear facts 21:59 <+bridge> [ddnet] wasm is perf 21:59 <+bridge> [ddnet] and rustcompiles to wasm 21:59 <+bridge> [ddnet] i like stats but only if they well described 21:59 <+bridge> [ddnet] more time and more advanced tools 21:59 <+bridge> [ddnet] analytics 21:59 <+bridge> [ddnet] https://wasmer.io/ 21:59 <+bridge> [ddnet] a wasm runtime 21:59 <+bridge> [ddnet] made in rust 21:59 <+bridge> [ddnet] no hate but asm is still slow 21:59 <+bridge> [ddnet] its basically like java vm 21:59 <+bridge> [ddnet] better stay for browsers with asm 21:59 <+bridge> [ddnet] use native rust 22:00 <+bridge> [ddnet] wasm*^^ 22:00 <+bridge> [ddnet] ok ofc not that bloated 22:00 <+bridge> [ddnet] idk if its that slow 22:00 <+bridge> [ddnet] thats ofc impossible xd 22:01 <+bridge> [ddnet] if it has to run in an interpreter/vm 22:01 <+bridge> [ddnet] it must be slow by design 22:01 <+bridge> [ddnet] with very good jit u might get ok perf after a while, but first runs are usually slow 22:02 <+bridge> [ddnet] tbh idc about android 22:02 <+bridge> [ddnet] wasm is still only around js level 22:02 <+bridge> [ddnet] 22:02 <+bridge> [ddnet] ofc wasm isnt as mature yet, it will defs beat js totally soon 22:02 <+bridge> [ddnet] i just want browsers 22:02 <+bridge> [ddnet] to use wasm by default 22:02 <+bridge> [ddnet] and deprecate js 22:02 <+bridge> [ddnet] yes 22:02 <+bridge> [ddnet] me too 22:02 <+bridge> [ddnet] im sure the code quantity would decrese by millions 22:02 <+bridge> [ddnet] XD 22:02 <+bridge> [ddnet] i hope more frameworks shift to wasm compatible languages 22:03 <+bridge> [ddnet] and best ofc in system level languages 22:03 <+bridge> [ddnet] bcs they best 22:03 <+bridge> [ddnet] I think this is a lazy meme 22:03 <+bridge> [ddnet] tru xd 22:03 <+bridge> [ddnet] tell us what specifically you didn't like about the analysis 22:03 <+bridge> [ddnet] they didn't just post the graphs and say "clearly, this is the cause" 22:04 <+bridge> [ddnet] (also, did you know that causation does not cause statistical correlation? and causation is a weird thing to define, anyway) 22:04 <+bridge> [ddnet] didn't read the blog, just saw the graph @Not Keks posted 22:05 <+bridge> [ddnet] well they basically write the same in the blog 22:05 <+bridge> [ddnet] "While correlation doesn’t necessarily mean causation, it’s interesting to note that the percent of vulnerabilities caused by memory safety issues seems to correlate rather closely with the development language that’s used for new code." 22:06 <+bridge> [ddnet] "We believe Android’s ongoing shift from memory-unsafe to memory-safe languages is a major factor." 22:06 <+bridge> [ddnet] 22:06 <+bridge> [ddnet] We believe 22:07 <+bridge> [ddnet] i just wonder, doesnt a big company like google can give better statements than that 22:07 <+bridge> [ddnet] anyway 22:08 <+bridge> [ddnet] i just hope the ndk wont suck anymore in future xDDD 22:08 <+bridge> [ddnet] i hate so much to call java code for everything 22:08 <+bridge> [ddnet] their whole security model is wrapped by java api 22:08 <+bridge> [ddnet] or kotlin 22:11 <+bridge> [ddnet] as i said, more time for older distro 22:11 <+bridge> [ddnet] i mean its inherently difficult to provide "truth" claims on this maybe 22:11 <+bridge> [ddnet] and probably more used than most recent ones 22:12 <+bridge> [ddnet] do u mean old code is more safe? 22:12 <+bridge> [ddnet] i dont directly udnerstand that 22:12 <+bridge> [ddnet] its not xd 22:12 <+bridge> [ddnet] no, just more time to investigate old code 22:12 <+bridge> [ddnet] i don't think android 13 is also more used than said android 11 22:13 <+bridge> [ddnet] ah 22:13 <+bridge> [ddnet] now i get it 22:13 <+bridge> [ddnet] lots of phone still relying on older release, so they are more interesting to investigate 22:13 <+bridge> [ddnet] true thats indeed also a problem 22:13 <+bridge> [ddnet] well anyway, if they use safe rust it must be memory safe 22:13 <+bridge> [ddnet] 22:13 <+bridge> [ddnet] its just about the amount of rust they use yet 22:14 <+bridge> [ddnet] and yes ur are right too^^ 22:14 <+bridge> [ddnet] we gotta wait a few years to be affirmative on this anyway 22:14 <+bridge> [ddnet] but then again 22:14 <+bridge> [ddnet] but i do hope rust will fill its promises 🙂 22:14 <+bridge> [ddnet] why didnt they include android 6+ 22:15 <+bridge> [ddnet] would be much more interesting 22:15 <+bridge> [ddnet] rust is safer 22:15 <+bridge> [ddnet] it's google, obviously they are part and judge on their paper 22:15 <+bridge> [ddnet] but i guess u mean the promise that using c++ ultimately leads to memory unsafety even with experts 22:15 <+bridge> [ddnet] and that rust solves that 22:16 <+bridge> [ddnet] https://blog.readyset.io/bounds-checks/ 22:16 <+bridge> [ddnet] interesting btw 22:18 <+bridge> [ddnet] mh yeah, but here again would be more interesting in a big code base. 22:18 <+bridge> [ddnet] 22:18 <+bridge> [ddnet] But i tell ya, even if rust would loose 10% perf 22:18 <+bridge> [ddnet] 22:18 <+bridge> [ddnet] they would gain it, if we wouldnt design CPUs with rings xD 22:19 <+bridge> [ddnet] so stop this micro kernel bs and lets go smth new supervised 22:19 <+bridge> [ddnet] they actually gain perf here 22:20 <+bridge> [ddnet] alone the static linking 22:20 <+bridge> [ddnet] all the dead bloat code 22:20 <+bridge> [ddnet] gone 22:20 <+bridge> [ddnet] the bounds check added by rust enable some optimizations in this case 22:20 <+bridge> [ddnet] xD 22:20 <+bridge> [ddnet] actually, new special loop instruction could be nice as well 22:20 <+bridge> [ddnet] all drivers in every app xDDDDDD 22:21 <+bridge> [ddnet] set register to boundary, and check that all access don't overflow at the hardware level 22:21 <+bridge> [ddnet] we shoudl advance the x86 arch to atleast skylake or smth 22:21 <+bridge> [ddnet] "we" ? 22:21 <+bridge> [ddnet] the world 22:21 <+bridge> [ddnet] well 22:21 <+bridge> [ddnet] guys, the world is not european or american. lot of people rely on old hardware 22:21 <+bridge> [ddnet] who cares 22:22 <+bridge> [ddnet] @Not Keks if we compiled official ddnet binaries with a more modern march would we increase overall perf for players? 22:23 <+bridge> [ddnet] x86-64-v4 22:23 <+bridge> [ddnet] depends 22:23 <+bridge> [ddnet] lets distribute in x86-64-v3 or x86-64-v4 22:23 <+bridge> [ddnet] generally probably a bit yes 22:24 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1047986451700252702/image.png 22:24 <+bridge> [ddnet] but e.g. c++ standard which we link might already be insanly optimized 22:24 <+bridge> [ddnet] so all calls to those might not really improve 22:29 <+bridge> [ddnet] can't you target specific instruction set features like AVX2 only? 22:32 <+bridge> [ddnet] yeah but most probably if the cpu has avx2 its v3 22:32 <+bridge> [ddnet] this baseline is established with intel and amd 22:32 <+bridge> [ddnet] > In 2020, through a collaboration between AMD, Intel, Red Hat, and SUSE, three microarchitecture levels on top of the x86-64 baseline were defined: x86-64-v2, x86-64-v3, and x86-64-v4.[39][40] These levels define specific features that can be targeted by programmers to provide compile-time optimizations. The features exposed by each level are as follows:[41] 22:45 <+ChillerDragon> cursed but working interactive fifo prompt to administrate servers in 50 lines of bash with 0 planning or using any brain https://zillyhuhn.com/cs/.1669930903.png 22:45 <+ChillerDragon> you can't tell me any programming language can compete with that 23:13 <+bridge> [ddnet] Python 23:14 <+bridge> [ddnet] :monkalaugh: 23:16 <+bridge> [ddnet] https://www.deepmind.com/blog/mastering-stratego-the-classic-game-of-imperfect-information 23:16 <+bridge> [ddnet] did you see the diplomacy AI the other day? 23:22 <+bridge> [ddnet] Man AIs are getting so fucin interesting lately 23:22 <+bridge> [ddnet] man AIs? soon AI AIs? 23:28 <+bridge> [ddnet] Hopefully