00:08 < bridge> it's taking shape :poggers2: 00:15 < bridge> Still have to get the build working again with libs update 😄 00:16 < bridge> take your time ^^ 05:33 < bridge> @Robyt3 new friend list is very cool :brownbear: 07:27 < bridge> Wow! Congrats 07:27 < bridge> (@deen) 07:27 < bridge> deen will forget us soon .\_. 07:47 < bridge> i want to get the friend list finished in 17.0 first tho :justatest: 08:08 < bridge> :santatrollet: 08:20 < bridge> https://bevyengine.org/news/bevy-webgpu/ 08:20 < bridge> @Jupeyy_Keks 08:33 <+ChillerDragon> ryo wat is it w u and bevy ur so hyped about it? 08:33 <+ChillerDragon> u follow their tiktok or what? 08:35 < bridge> Bcs it's in rust bro 08:37 < bridge> https://hecatia-elegua.github.io/blog/no-more-bit-fiddling/ 08:37 < bridge> bevy is novel 08:37 < bridge> and rust 08:37 < bridge> it uses rust power fully 08:37 < bridge> u should try it 08:37 < bridge> Guess was just a matter of time right? They use wgpu which is basically designed with webgpu in mind. 08:37 < bridge> I want to try it out tho, because I want to see how well the browsers already support it 09:15 < bridge> https://github.com/ddnet/ddnet/issues/6417 hey @Robyt3 , will there be a fix for it soon? 09:27 <+ChillerDragon> @heinrich5991 when vanilla 0.6.5 dissector support o.O https://zillyhuhn.com/cs/.1684481242.png 09:34 <+ChillerDragon> 0.6.4 works fine i assume the tokens are not supported yet 09:41 < bridge> Thanks chillerdragon 09:43 < bridge> @Robyt3 is the IME now fully rendered by us? so fullscreen is no problem anymore for chinese? 09:44 < bridge> i guess we should tell tsfreedie or whoever controls the chinese community to not advertise changing to windowed anymore then 09:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109025269987160085/RDT_20230519_0950173520332368819004637.jpg 09:54 < bridge> @TsFreddie we need to, our chinese community manager 09:54 < bridge> @TsFreddie we need u, our chinese community manager 10:03 < bridge> ofc 10:03 < bridge> once the steam version dropped I'll be sure to let everyone know 10:05 < bridge> wdym "control" tho 10:18 < bridge> I haven't found a fix yet, unfortunately 10:25 < bridge> The chat groups 10:25 < bridge> 👀 10:25 < bridge> sure 10:26 < bridge> Or beginner guides xd 10:26 < bridge> Ok, you are our dictator let's face it 10:26 < bridge> 10:27 <+ChillerDragon> TRIVIA! How many wikipedia links did heinrich send in the ddnet and teeworlds irc channel combined? 10:27 < bridge> 666 10:27 < bridge> Maybe some people should try if it actually works 10:28 < bridge> ye, @FightFire is already on it 10:38 <+ChillerDragon> top50 rust enjoyers ranked by the amount of times they mentioned rust in this channel https://paste.zillyhuhn.com/dB 10:38 <+ChillerDragon> !rust ^ 10:38 < chillerbot> @Ryozuki 10:40 < bridge> why so many ryozukis? 10:40 <+ChillerDragon> irc enjoyer 10:40 < bridge> i am catching up mentioning rust 10:40 < bridge> !rust ryozuki 10:40 < chillerbot> @Ryozuki 10:40 < bridge> u should more often mention rust 10:40 < bridge> else 10:40 < bridge> i 10:40 < bridge> take 10:40 < bridge> over 10:40 < bridge> rust 10:41 <+ChillerDragon> xd 10:41 < bridge> rusty rust 10:41 < bridge> !c what about vulkan? 10:41 < chillerbot> ChillerDragon 10:41 <+ChillerDragon> jupsti u think you nmentioned vulkan or 0.7 more often? 10:41 < bridge> i like that even ryos second entrance is more often than my main entry xd 10:41 <+ChillerDragon> ryo is also just active 10:41 < bridge> @Jupeyy_Keks ur miles behind 10:42 < bridge> uff i'd say vulkan 10:42 <+ChillerDragon> ryo is also in top5 people mentioning "porn" 10:42 <+ChillerDragon> yes u say vulkan more than 0.7 jupsti 10:42 < bridge> lol 10:42 < bridge> You should calculate the ratio of mentioning Rust per coment 10:42 < bridge> comment* 10:42 < bridge> i think that would be high too 10:42 <+ChillerDragon> so amount of messages divided by amount of messages w rust? 10:42 < bridge> xdd 10:42 < bridge> ye 10:43 < bridge> thanks to me, learath is also high on mentioning rust 10:43 <+ChillerDragon> https://paste.zillyhuhn.com/Bf 10:43 <+ChillerDragon> top50 vulkan enjoyer 10:43 < bridge> epic 10:43 < bridge> @Jupeyy_Keks no 10:43 < bridge> well 10:43 < bridge> im split between multiple ryos 10:43 <+ChillerDragon> split personality ryo 10:43 < bridge> yeahfix u script pls chiller 10:43 < bridge> do a regex 10:43 < bridge> <...> 10:44 <+ChillerDragon> <..> ? 10:44 <+ChillerDragon> https://paste.zillyhuhn.com/rV 10:45 <+ChillerDragon> ffs im not even top2 0.7 enjoyers 10:45 <+ChillerDragon> i failed in life 10:45 < bridge> bruv 10:45 < bridge> better regex 10:45 < bridge> to not have dups 10:45 <+ChillerDragon> xd 10:45 <+ChillerDragon> ok send regex 10:45 <+ChillerDragon> filter out + i guess 10:46 <+ChillerDragon> idk how to do match groups w fakin grep xd 10:47 < bridge> write a script instead 10:48 < bridge> `<_?\p{XID_Start}[\p{XID_Continue} .✪]*>` 10:48 < bridge> rust regex 10:48 < bridge> it includes jupstar special symbol 10:49 < bridge> nice 10:49 < bridge> maybe XID_Start is not needed 10:49 < bridge> did u know this is what rust uses 10:49 < bridge> for variable identifiers 10:49 < bridge> i didnt know abotu XID_Start and xid continue before 10:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109040290880290826/image.png 10:50 < bridge> this allows chinese variable names and so 10:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109040412347343000/image.png 10:52 < bridge> this should work with ripgrep 11:03 <+ChillerDragon> ok jupsti won the heinrich wiki quizzle since his guess was the only one 11:04 < bridge> and what is the solution 11:04 <+ChillerDragon> my regex found 93 wiki links with like 2ish false posivitives and the highest repost was 4 11:05 <+ChillerDragon> ah no highest repost was 2 idk where that 4 came from xd 11:05 < bridge> didnt know there was a quiz 11:05 <+ChillerDragon> sucks to be u 11:05 <+ChillerDragon> now all the prize goes to jopsti 11:07 < bridge> a total amount of 0€ 11:09 < bridge> ```js 11:09 < bridge> 11:09 < bridge> let res = [];document.getElementsByTagName("pre")[0].innerHTML.split("\n").filter(v => v.lastIndexOf(">") != -1).map(v => { 11:09 < bridge> let c = parseInt(v.trim(" ").substring(0, v.trim(" ").indexOf(" "))); 11:09 < bridge> let a = v.substring(v.lastIndexOf("<") + 4, v.lastIndexOf(">")); 11:09 < bridge> var l = a.lastIndexOf(" "); if (l == -1) l = a.length; 11:10 < bridge> a = a.substring(0, l).trim(); 11:10 < bridge> return {c, a}; 11:10 < bridge> }).filter(v => v.a != '').forEach(v => { 11:10 < bridge> const fr = res.find(r => r.a == v.a); 11:10 < bridge> if (fr != undefined) { 11:10 < bridge> fr.c += v.c; 11:10 < bridge> } 11:10 < bridge> else { 11:10 < bridge> res.push(v) 11:10 < bridge> } 11:10 < bridge> }) 11:10 < bridge> 11:10 < bridge> res.forEach(r => console.log(r)) 11:10 < bridge> ``` 11:10 < bridge> 11:10 < bridge> lmao 11:10 < bridge> i am the worst js dev ever 11:10 < bridge> and coding inside chromium console sucks hard xD 11:10 < bridge> ew 11:10 < bridge> u gotta exec that inside the console xD 11:11 <+ChillerDragon> watf is that 11:11 < bridge> it merges the users 11:11 < bridge> similar users 11:11 <+ChillerDragon> xd 11:11 <+ChillerDragon> annoying af to copy from irc 11:11 < bridge> start matrix 11:11 <+ChillerDragon> omg 11:11 < bridge> bloat 11:12 < bridge> i wanted to make a irc bot to compete with chiller 11:12 < bridge> but too much spam 11:12 <+ChillerDragon> we we need more irc channels for spam 11:12 <+ChillerDragon> what field u wanna compete in? 11:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109045978004197376/image.png 11:12 <+ChillerDragon> i just copied 11:12 < bridge> the number of times ryo mentioned rust 11:12 <+ChillerDragon> from electron 11:13 < bridge> could still remove the @ and + 11:13 < bridge> would be even better xd 11:13 <+ChillerDragon> i also wrote like a 258 char sed but then rq cuz waste of time xd 11:13 <+ChillerDragon> omng now my vscode ded 11:14 <+ChillerDragon> because i close matrix with ``pkill -f electron`` 11:14 <+ChillerDragon> still havent found a better way to do it 11:15 < bridge> ```js 11:15 < bridge> 11:15 < bridge> let res = [];document.getElementsByTagName("pre")[0].innerHTML.split("\n").filter(v => v.lastIndexOf(">") != -1).map(v => { 11:15 < bridge> let c = parseInt(v.trim(" ").substring(0, v.trim(" ").indexOf(" "))); 11:15 < bridge> let a = v.substring(v.lastIndexOf("<") + 4, v.lastIndexOf(">")); 11:15 < bridge> if(a[0] == "+" || a[0] == "@") 11:15 < bridge> a = a.substring(1) 11:15 < bridge> var l = a.lastIndexOf(" "); if (l == -1) l = a.length; 11:15 < bridge> a = a.substring(0, l).trim(); 11:15 < bridge> return {c, a}; 11:15 < bridge> }).filter(v => v.a != '').forEach(v => { 11:15 < bridge> const fr = res.find(r => r.a == v.a); 11:15 < bridge> if (fr != undefined) { 11:15 < bridge> fr.c += v.c; 11:15 < bridge> } 11:15 < bridge> else { 11:15 < bridge> res.push(v) 11:15 < bridge> } 11:15 < bridge> }) 11:16 < bridge> 11:16 < bridge> res.forEach(r => console.log(r)) 11:16 < bridge> ``` 11:16 < bridge> 11:16 < bridge> lmao 11:16 < bridge> ```js 11:16 < bridge> 11:16 < bridge> let res = [];document.getElementsByTagName("pre")[0].innerHTML.split("\n").filter(v => v.lastIndexOf(">") != -1).map(v => { 11:16 < bridge> let c = parseInt(v.trim(" ").substring(0, v.trim(" ").indexOf(" "))); 11:16 < bridge> let a = v.substring(v.lastIndexOf("<") + 4, v.lastIndexOf(">")); 11:16 < bridge> if(a[0] == "+" || a[0] == "@") 11:16 < bridge> a = a.substring(1) 11:16 < bridge> a = a.toLowerCase() 11:16 < bridge> var l = a.lastIndexOf(" "); if (l == -1) l = a.length; 11:16 < bridge> a = a.substring(0, l).trim(); 11:16 < bridge> return {c, a}; 11:16 < bridge> }).filter(v => v.a != '').forEach(v => { 11:16 < bridge> const fr = res.find(r => r.a == v.a); 11:16 < bridge> if (fr != undefined) { 11:16 < bridge> fr.c += v.c; 11:16 < bridge> } 11:16 < bridge> else { 11:16 < bridge> res.push(v) 11:16 < bridge> } 11:16 < bridge> }) 11:16 < bridge> 11:16 < bridge> res.forEach(r => console.log(r)) 11:16 < bridge> ``` 11:16 < bridge> 11:17 < bridge> lmao 11:17 < bridge> !c when i edit msg, do u get a full new copy 11:17 < chillerbot> ChillerDragon 11:17 < bridge> of the edit? 11:17 < bridge> oh 11:17 < bridge> bot is dead 11:17 < bridge> !c++ d 11:17 < chillerbot> ChillerDragon++ 11:17 < bridge> almost got learath and heinrich 11:17 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109047064098246696/image.png 11:17 <+ChillerDragon> omagawd jopsti stop it .-. 11:17 <+ChillerDragon> irc dieing 11:17 <+ChillerDragon> also use ``const res`` :p 11:17 < bridge> why is dieing 11:17 <+ChillerDragon> it ratelimited 11:18 <+ChillerDragon> u sent 6k lines 11:18 < bridge> lol 11:18 < bridge> why does irc suck so hard 11:18 < bridge> i thought its master race 11:18 <+ChillerDragon> discord issue 11:18 < bridge> why does it resend a modified message 11:18 <+ChillerDragon> but indeed we should ditch quakenet 11:18 < bridge> why doesnt irc support editing 11:19 < bridge> :/ 11:19 <+ChillerDragon> and switch to a unratelimited srv 11:19 <+ChillerDragon> edit bad 11:19 <+ChillerDragon> o/ 11:19 < bridge> \o 11:19 < bridge> /s/why/wow/ 11:19 < bridge> /s/why/wow 11:19 < bridge> s/why/wow 11:20 <+ChillerDragon> pro 11:20 < bridge> this again 11:20 <+ChillerDragon> s/pro/pra 11:20 < bridge> /s/again/pro 11:20 < bridge> /s/again/pro/ 11:20 < bridge> /s/pro/pro/ 11:20 < bridge> ah 11:20 < bridge> ok 11:20 < jupstar> test 11:20 < jupstar> s/test/pro 11:20 < jupstar> i see 11:20 < jupstar> so u cant even edit msgs 11:20 <+ChillerDragon> !sh echo jupstar 11:20 < chillerbot> jupstar 11:21 <+ChillerDragon> If i memcpy a struct 11:21 <+ChillerDragon> will the order of the fields be the same as in c++? 11:21 < bridge> wat? 11:21 <+ChillerDragon> https://github.com/teeworlds/teeworlds/blob/26d24ec061d44e6084b2d77a9b8a0a48e354eba6/src/engine/shared/network.h#L176-L186 11:21 < bridge> memcpy a struct in which lang?= 11:21 <+ChillerDragon> trying to understand where the token will be 11:22 <+ChillerDragon> at the end or start of the header when sent over the network 11:22 <+ChillerDragon> because this looks weird 11:22 < bridge> it will stay at fron 11:22 <+ChillerDragon> is it really before the flags? 11:22 < bridge> it will stay at front 11:22 <+ChillerDragon> rly? 11:22 < bridge> yes 11:22 < bridge> c++ doesnt reorder 11:22 <+ChillerDragon> https://github.com/teeworlds/teeworlds/blob/26d24ec061d44e6084b2d77a9b8a0a48e354eba6/src/engine/shared/network.cpp#L354-L368 11:23 <+ChillerDragon> but thats wrong isnt it xd 11:23 < bridge> why 11:23 <+ChillerDragon> token is last 11:23 < bridge> the struct def has nothing to do with how u set its members 11:24 < bridge> maybe im too stupid for ur question soz 11:24 <+ChillerDragon> https://chillerdragon.github.io/teeworlds-protocol/07/packet_layout.html#packet_header 11:24 <+ChillerDragon> when reading doc on layout written by genius pro who never makes mistakes 11:24 <+ChillerDragon> it says layout is "flags, ack, num, token" 11:24 <+ChillerDragon> how does that match the code? 11:25 <+ChillerDragon> the way i read the code it sends "token, res token, flags, ack, num" 11:26 < bridge> https://github.com/teeworlds/teeworlds/blob/26d24ec061d44e6084b2d77a9b8a0a48e354eba6/src/engine/shared/network.cpp#L171-L235 11:26 < bridge> isnt this where the packet is prepared 11:26 <+ChillerDragon> ah tru 11:26 <+ChillerDragon> omg ye ofc i red that code often enpough to knpow xd 11:27 <+ChillerDragon> yeye ofc it never sends a struct 11:27 <+ChillerDragon> but thats how it would if it would send a struct i see 11:27 <+ChillerDragon> thank 11:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109054816270962730/ddnet_ui_hsplit.png 11:47 < bridge> im making a ui code blog 11:49 < bridge> programmer's TOP TEXT BOTTOM TEXT variant 11:49 < bridge> :justatest: 11:50 < bridge> interview @Robyt3 11:51 < bridge> is this ordered most to least 12:06 < bridge> https://edgarluque.com/blog/ui-code-ddnet/ 12:06 < bridge> new blog dropped 12:06 < bridge> part 1 probs 12:14 < bridge> i didnt sort it 12:15 < bridge> ui code is boring, make rust bridge 12:18 < bridge> xd 12:28 <+ChillerDragon> nice thanks for the ui blog 12:29 <+ChillerDragon> !ryo is the blog in a public git repo? 12:29 < chillerbot> @Ryozuki 12:30 < bridge> i have it private rn 12:30 < bridge> but im using zola 12:30 < bridge> and my custom theme 12:30 < bridge> the contents of the blog are licensed under Creative Commons Attribution-NoDerivatives 4.0 International License. 12:30 < bridge> like stallman does with his blog 12:32 < bridge> > In my view, nonfree licenses that permit sharing are ok for works of art/entertainment, or that present some party's viewpoint (such as this article itself). Those works aren't meant for doing a practical job, so the argument about the users' control does not apply. 12:33 < bridge> https://stallman.org/articles/online-education.html 12:36 < bridge> @Voxel for u 12:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109067034848919562/Voxel.png 12:36 < bridge> join the club 12:36 < bridge> lmao 12:36 < bridge> epic 13:31 < bridge> Make a Jupstar one 13:49 < bridge> Jupstar is a bad name for this great art 13:54 < bridge> Jupeyy? 13:55 < bridge> that could work xd 13:55 < bridge> @Robyt3 ^ 14:08 < bridge> @deen is there a reason u also dont make a release in the releases page? https://github.com/ddnet/ddnet/releases 14:09 < bridge> there is a neat feature i use usually, it tells u how many new commits there were since the release with a easy to click link 14:09 < bridge> i always forget how to compare otherwise xd 14:09 < bridge> (a release uses a tag, u can use a already existing one) 14:20 < bridge> One more manual step? Why can't it use a regex over the tags? 14:20 < bridge> i guess u can use tags for things other than releases 14:20 < bridge> so they dont automate it 14:21 < bridge> Yeah, but I want "automatically make a release for every tag with regex `[0-9]+\.[0-9]+(\.[0-9]+)?` 14:21 < bridge> well u can use the api https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#create-a-release 14:21 < bridge> ah, idk, api maybe 14:22 < bridge> I'm already bored enough of posting on forum, discord, steam, website, client, etc 14:22 < bridge> xd 14:22 < bridge> <-StormAx> did someome still using forum? 14:22 < bridge> cant automate it? 14:22 < bridge> Github is mostly used by developers anyway, so 99% of our players won't care 14:23 < bridge> They all have different markup formatting, have to click around in their UIs etc 14:23 < bridge> i would make this workflow, put the release process in CI, trigger the CI on a release, this automatically makes a post to discord via a github bot, steam with api, etc 14:24 < bridge> well i guess listing the changelog is the manual thing 14:24 < bridge> which could be solved with https://www.conventionalcommits.org/en/v1.0.0/ 14:24 < bridge> but yeah, too much work i guess 14:24 < bridge> xd 14:25 < bridge> Do you have permissions? Feel free to make it 😄 14:26 < bridge> i only have perms to the github org 14:26 < bridge> :justatest: 14:29 < bridge> You're in the core group for ddnet/ddnet which has admin rights, weird 14:30 < bridge> ah if u mean on gh ye i have rights 14:30 < bridge> ill look into it 14:44 < bridge> @deen ^ 14:44 < bridge> it made the changelog automatically 14:44 < bridge> and listed contributors 14:44 < bridge> looks neat 14:45 < bridge> we can simply make the ones in gh without the binaries 14:45 < bridge> just click release and generate notes and done 14:45 < bridge> anyway ill do it whenver i see a release 14:58 < bridge> without binaries its kinda useless xd 14:59 < bridge> its nice to see a detailed changelog 14:59 < bridge> yeah true 14:59 < bridge> thats coolk 14:59 < bridge> thats cool 14:59 < bridge> maybe i can make a script 14:59 < bridge> to download binaries from web and upload 15:00 < bridge> https://docs.github.com/en/rest/releases/assets?apiVersion=2022-11-28#upload-a-release-asset 15:11 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109106158729445446/image.png 15:11 < bridge> i figured the api 15:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109106741578321920/image.png 15:14 < bridge> done 15:19 < bridge> 89% hungarian, guess imma translate that one too :justatest: 15:19 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109108125786701904/image.png 15:20 < bridge> @Jupeyy_Keks why no vulkan pfp on gh 15:20 < bridge> its has a trademark sadly 15:20 < bridge> in discord idc 15:21 < bridge> lol nobody will say anything 15:21 < bridge> make it with jupeyy 15:22 < bridge> i know nobody will say smth, but its not nice style if they care so much about it 15:23 < bridge> me as a free human supports all who seek for freedom 15:33 < bridge> @Cellegen | RiH dont add more text 15:33 < bridge> than the translation 15:33 < bridge> :justatest: 15:33 < bridge> LOL 15:33 < bridge> Skill issue 15:34 < bridge> i have become a shader 15:34 < bridge> @Cellegen | RiH the text might be fitted for a expected width, and u are adding more text 15:34 < bridge> just stick to translating 15:34 < bridge> word to word 15:34 < bridge> also for errors, I just put the destination for further debugging, so it did no harm 15:34 < bridge> tbh 15:34 < bridge> u dont understand what i mean.. 15:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109111934877433936/image.png 15:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109111935141687427/image.png 15:34 < bridge> But do whatever, if it's not acceptable, you guys have the power to change it xd 15:34 < bridge> no 15:35 < bridge> pls change it urself 15:35 < bridge> u understand hungarian 15:35 < bridge> remove the additional text 15:35 < bridge> like the previous ones too? :kek: 15:35 < bridge> that might be ok to add, for example as a tooltip 15:35 < bridge> at the tutorial translation too? 15:35 < bridge> i mean 15:36 < bridge> remove the additional text 15:36 < bridge> from 15:36 < bridge> https://github.com/ddnet/ddnet/pull/6624/files#diff-bac55514c76bcf893a36a725d85cf4c7da06ccad07d7864ae169c3a1fe8589acL1528-L1554 15:36 < bridge> on the Graphic errors, anything with the () can go 15:36 < bridge> looks nice 15:36 < bridge> ye 15:36 < bridge> just stick to translating 15:36 < bridge> please do iturself 15:38 < bridge> also you may have to rebase/merge master because the changed translations for 17.0 are not merged yet 15:38 < bridge> and #6618 will add two more strings to translate 15:38 < bridge> https://github.com/ddnet/ddnet/pull/6618 15:39 < bridge> @Robyt3 good, std::optional supremacy, rust brings good 15:39 < bridge> java also xd 15:39 < bridge> xd 15:40 < bridge> @Robyt3 u dont need has_value 15:40 < bridge> @Ryozuki changed 15:40 < bridge> would look a bit weird though because it's a bool 15:40 < bridge> in a bool context it works 15:40 < bridge> ah true 15:40 < bridge> xd 15:40 < bridge> but to compare the inner u would do *myopt 15:40 < bridge> `if(optional && *optional)` 15:40 < bridge> .value() and *x 15:40 < bridge> are the same too 15:40 < bridge> ye that 15:42 < bridge> checking if the optional is empty is usually bad style though, at least in java it's unidiomatic to do that 15:43 < bridge> in rust u are enforced to do it 15:43 < bridge> via pattern matching 15:43 < bridge> `if(!Official.value_or(false))` would also work here I think 15:43 < bridge> `if(!Official.value_or(true))` would also work here I think 15:43 < bridge> ```rust 15:43 < bridge> let x = Some(2); 15:43 < bridge> 15:43 < bridge> if let Some(x) = x { 15:43 < bridge> println!("{x}"); 15:43 < bridge> } 15:43 < bridge> 15:43 < bridge> ``` 15:44 < bridge> true but its harder to understand at first 15:44 < bridge> i prefer current 15:44 < bridge> yeah, current is more direct 15:44 < bridge> tested it in game 15:44 < bridge> works nice 15:45 < bridge> Some(2) = Some(Some(2)) ? 15:45 < bridge> no 15:45 < bridge> u need to understand what variable shadowing is, in rust its actually idiomatic 15:46 < bridge> x inside the if is a i32 15:46 < bridge> not a Option 15:46 < bridge> the if let is pattern matching 15:46 < bridge> its not assigning it 15:46 < bridge> what if you join a non-official server while also having a race disconnect warning though? it doesn't show the non-official server warning when it shows the race disconnect warning first 15:47 < bridge> :justatest: 15:47 < bridge> didnt test that 15:47 < bridge> @Robyt3 maybe its time to add a popup queue xD 15:47 < bridge> windows 95 15:47 < bridge> https://tenor.com/view/meme-gif-26485637 15:48 < bridge> oh no 15:48 < bridge> @Voxel https://doc.rust-lang.org/book/ch18-03-pattern-syntax.html 15:49 < bridge> what if we just combine both popup titles and messages? :kek: 15:49 < bridge> @Voxel https://doc.rust-lang.org/book/ch18-00-patterns.html 15:49 < bridge> :justatest: 15:49 < bridge> maybe 15:49 < bridge> just show the ip one 15:49 < bridge> if both show 15:50 < bridge> its the most important, and the user can realize he clicked by mistake 15:50 < bridge> and if its official the race one shows up anyway 15:51 < bridge> yeah, that's better, I updated 15:51 < bridge> you have to retry bors again 15:51 < bridge> mfw matching is the easiest thing to grasp in this language 16:04 < bridge> !c 16:04 < chillerbot> ChillerDragon 16:04 < bridge> https://github.com/GyulyVGC/sniffnet 16:04 < bridge> a wireshark competitor 16:04 < bridge> in rust 16:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109119541159657593/239459193-ef8252ef-c090-4544-a1b4-85c6cbf130c7.png 16:05 < bridge> made with iced 16:08 < bridge> ok its probs pretty far from wireshark tho xd 16:08 < bridge> tf is that interface 16:09 < bridge> i think the choosen font is bad 16:09 < bridge> it makes it look childish xd 16:09 <+ChillerDragon> @Ryozuki closed src blog cring how to fix typos as contributor then 16:09 < bridge> ok 16:09 < bridge> let me make it open 16:10 <+ChillerDragon> ryo sniffnet name is nice but the logo is a dealbreaker 16:10 <+ChillerDragon> its so ugly 16:11 < bridge> only reason i'd replace wireshark for is 16:11 < bridge> if you have huge pcap dumps 16:11 <+ChillerDragon> i dont think it even competes with wireshark yet 16:11 < bridge> It doesnt 16:12 <+ChillerDragon> seems like a competitor to netstat to me 16:12 <+ChillerDragon> or nload 16:12 <+ChillerDragon> or any traffic usage dashboard thing 16:13 < bridge> 16:13 < bridge> there u have 16:13 <+ChillerDragon> pog pog 16:14 < bridge> u need https://www.getzola.org/ 16:15 <+ChillerDragon> i dont rly wanna run ur blog actually 16:15 <+ChillerDragon> i just thought it made sense to publish its content 16:15 <+ChillerDragon> also i trust microsoft more to keep the data forever than your own website :p no front 16:15 < bridge> wdym 16:15 < bridge> dont trust microsoft 16:15 < bridge> trust https://archive.org/ 16:15 <+ChillerDragon> i do trust ms more than you 16:15 < bridge> ask it to make snapshot of my web 16:16 <+ChillerDragon> also thought about that will probably do before i link ur blog somewhere 16:16 <+ChillerDragon> its a bit non obvious for me where to put the code from the first example to get the result from the screenshots 16:17 <+ChillerDragon> could be nice for someone who wants to follow along exactly step by step 16:17 < bridge> lol 16:17 < bridge> nobo chiller 16:17 < bridge> its not meant for u to do exactly what i did 16:17 < bridge> more so to see how it works 16:18 < bridge> i prefer if u link my alive and healthy website directly tho 16:18 <+ChillerDragon> ye idk where and how id even link it but i could see my self doing that some day 16:18 <+ChillerDragon> yes but would be cool if one could follow along to get the hands dirty 16:19 <+ChillerDragon> dont ya think? 16:19 < bridge> true 16:19 < bridge> but im lazy rn 16:19 <+ChillerDragon> okok 16:20 <+ChillerDragon> also add a try now button 16:20 <+ChillerDragon> that compiles code from text box to webassembly client 16:20 <+ChillerDragon> xxxxxxxxxxxxxxxxxxxD 16:59 < bridge> nice i finally found a pog matrix client! 17:03 < bridge> wowothe gh spam i go back to irc xd 17:05 <+ChillerDragon> !rust https://github.com/ulyssa/iamb 17:05 < chillerbot> @Ryozuki 17:06 < bridge> lol the next vim based discord 17:06 <+ChillerDragon> well vim based discord would be against tos 17:06 <+ChillerDragon> !:justatest: 17:06 < chillerbot> https://zillyhuhn.com/cs/justatest.png 17:07 <+ChillerDragon> but vim based irc or matrix is legal 17:07 < bridge> yup ^^ 17:07 < bridge> maybe if discord didnt have the worst practices ever 17:07 <+ChillerDragon> one day ill write a ddnet client in vim script 17:07 < bridge> debugging with vim :Chill: 17:09 < bridge> multiline 17:09 < bridge> test 17:10 < bridge> multiline 17:10 < bridge> test 17:11 < bridge> wow! 17:11 < bridge> multiline 17:11 < bridge> test 17:11 <+ChillerDragon> wtf happend 17:11 < bridge> :justatest: 17:11 < bridge> chiller and his 70 bot accounts 17:14 <+ChillerDragon> https://zillyhuhn.com/cs/.1684509238.png 17:14 <+ChillerDragon> randomly put multiple lines into one irc message 17:14 < bridge> without it, chiller wouldn't be chill 17:15 < bridge> did two instances sent it separately or just a bug with the client u use? xd 17:16 <+ChillerDragon> i have no idea what is going on here 17:16 <+ChillerDragon> i can also not reproduce it 17:16 <+ChillerDragon> but if someone does a line break on discord or matrix multiple irc messages should arrive 17:35 < bridge> @deen so no warning on connecting to a unoficial sv when double clicking a friend? 17:35 < bridge> i dont mind either way 17:36 < bridge> Isn't the symbol for official server enough? 17:36 < bridge> You can't verify if someone is your friend or not, I think the warning is very important, if we had accounts, then it would be fine... 17:36 < bridge> Accidentally joining someone will happen without the warning 17:36 < bridge> idk, in any user facing thing, i always lower my standards of obvious 17:37 < bridge> @Robyt3 ? 17:37 < bridge> I don't like popups 17:37 < bridge> I just click them away mostly 17:37 < bridge> but it shows if its a verified server with the icon 17:37 < bridge> We're lucky SP doesn't ddoes, but someone else will do it 17:37 < bridge> We're lucky SP doesn't ddos, but someone else will do it 17:37 < bridge> also if multiple ppl have the name, they are shown multiple times iirc 17:37 < bridge> Good enough I think to have the blue symbol 17:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109142903961419856/Screenshot_2023-05-19_at_17.37.44.png 17:38 < bridge> its true that, if u have the ddnet tab selected, u wont see unverified servers in ur friends anyway 17:38 < bridge> True, then it's maybe fine 17:39 < bridge> i also dont like popups 17:39 < bridge> but the popup when u double click and are in a run is nice i think 17:39 < bridge> Ya 17:40 < bridge> do u play with this resolution? xd 17:41 < bridge> I could see myself accidentally joining even with the checkmark, but since it doesn't show people connected to non-official servers if I don't have the internet tab selected, then I guess that's enough 17:41 < bridge> I don't play at all, but I use my widescreen as 2 square screens basically 17:45 < bridge> Also I don't see "suppressing" unofficial servers as a bad thing, this game has its own steam page, its own reviews. Allowing people to get trolled by the game's lack of proper systems is probably not good 17:47 < bridge> I know the internet tab is potentially unsafe, new players don't, so that's also concerning 17:52 < bridge> I wouldn't even call the servers "official". KoG and noby are running their own thing, we as DDNet admins have no way of checking what they are doing. Calling it official sounds like the same people who are in charge of DDNet client are also in charge of the servers 17:52 < bridge> Fair I guess 17:54 < bridge> Accounts when 18:08 < bridge> The skins in the friend list is so awesome, thanks a lot 18:11 < bridge> I’ll teach 10individuals to earn $30k within 72 hours but you will pay me 10% of your profit when you receive it. Note only interested people should apply, drop a message let's get started by asking (HOW)https://t.me/Andersonwatts1 18:39 < bridge> new friendlist feels so hard to read for me, and i dont see skins in it 18:40 < bridge> do you see the skins for the players on the servers? 18:40 < bridge> names should be bigger than the clan and "playing".. 18:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109158723890466896/image.png 18:40 < bridge> you should see the skins as long as the server provides the skin info 18:40 < bridge> yes 18:40 < bridge> ye 18:41 < bridge> weird, maybe there is a mixup and the downloaded files are wrong 18:42 < bridge> i think itd be easier to see whos on if the names were bigger and maybe even bold. before i could just glance at the friendlist and tell whos on, rn at first sight, i had to read every single persons name for some reason 18:43 < bridge> not sure if we can render bold text at all, but could make sense to make the name bold 18:43 < bridge> than atleast bigger 18:43 < bridge> then atleast bigger 18:44 < bridge> theres no emphasis on names 18:44 < bridge> oh i think i dont have skins cuz im on nightly, not rc 18:45 < bridge> yeah, you also have the "playing .. on .." text 18:45 < bridge> it's changed in RC 18:45 < bridge> lemme check rc then 18:45 < bridge> updooot 18:45 < bridge> oof 18:45 < bridge> updaaate 18:46 < bridge> ok well skins are realllyy good, so much easier to read 18:46 < bridge> how does online clanmates work? does it take your current player_clan, or any clan thats added as friends? 18:47 < bridge> any friends that have only clan and no name are clanmates 18:47 < bridge> i see 18:48 < bridge> here is how it looks with the friend name in the next larger font size 18:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109160787890675712/image.png 18:49 < bridge> looks better IMO 18:49 < bridge> uhm do clan box separate itself by clan names? 18:49 < bridge> or it just solid block of all clan friends i have 18:50 < bridge> yeah, all clan friends in one box 18:50 < bridge> +1 18:50 < bridge> maybe clan friends should be grouped by clan name though 19:35 < bridge> i like it 19:35 < bridge> good addition 19:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109173172932194394/image.png 19:38 < bridge> nvm 19:41 < bridge> is the number ping? 19:41 < bridge> yes 19:41 < bridge> can we get em colorised 19:42 < bridge> Would look nicer i- ya, what he said 19:42 < bridge> What does the numbers mean on the friends list? 19:42 < bridge> After gametype? ping 19:42 < bridge> Ah 19:43 < bridge> Kinda seems like unnecessary information 19:43 < bridge> Better would be the server region 19:43 < bridge> https://tenor.com/view/what-do-they-mean-random-numbers-gif-10654449 19:43 < bridge> ping and server region is the same 19:43 < bridge> if the ping is known then it's shown 19:43 < bridge> otherwise it shows the server region 19:44 < bridge> I think just the server region would be better 19:44 < bridge> i feel like it would make more sense if it was the server first and then the maps name 19:44 < bridge> With only the ping you can’t always determine on what region that player is 19:44 < bridge> server names are too long to fit in the beginning 19:44 < bridge> why does the region matter when your ping is good? 19:45 < bridge> and your friend is on that server 19:45 < bridge> didnt mean server name 19:45 < bridge> the ddracenetwork part 19:45 < bridge> game type 19:45 < bridge> Seeing your ping to the server on the friends tab just feels misplaced 19:46 < bridge> I wish the gametype was just ddnet :greenthing: 19:46 < bridge> no no, it can get mistook for ddfightnetwork 19:47 < bridge> Dont talk about the ddfightnetwork 19:47 < bridge> i am THE cyber fighter after all 19:48 < bridge> ? 19:48 < bridge> brush coloring 19:49 < bridge> what does brush coloring mean 19:50 < bridge> Btw i think you could shorten the description by replacing Gores with KoG and DDraceNetwork with DDNet, since thats also their appropriate network names 19:50 < bridge> I think ping being there is a good thing, I would definitely make it use ping colors though, so it's more intuitive 19:50 < bridge> btw, i feel like time checkpoint's description should mention that it can affect the menu camera 19:51 < bridge> It being in the description like that feels misplaced tho, maybe it can be put in the corner of the player field, smaller, with color 19:52 < bridge> It's the description of what they're doing, it makes sense to be there 19:52 < bridge> #announcements rc2, for me it doesn't show tees, even when I have the skins or when I already joined, in case it needs to gather the skins 19:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109176719824388166/screenshot_2023-05-19_19-52-00.png 19:52 < bridge> ``` 19:52 < bridge> define i32 @main(i32 %0) { 19:52 < bridge> entry: 19:52 < bridge> %eq = icmp eq i32 %0, 5 19:52 < bridge> br i1 %eq, label %if, label %else 19:52 < bridge> 19:52 < bridge> if: ; preds = %entry 19:52 < bridge> %mul = mul i32 2, %0 19:52 < bridge> br label %merge 19:52 < bridge> 19:52 < bridge> else: ; preds = %entry 19:52 < bridge> %mul1 = mul i32 3, %0 19:52 < bridge> br label %merge 19:52 < bridge> 19:52 < bridge> merge: ; preds = %else, %if 19:52 < bridge> %y_phi = phi i32 [ %mul, %if ], [ %mul1, %else ] 19:52 < bridge> ret i32 %y_phi 19:52 < bridge> } 19:52 < bridge> ``` 19:52 < bridge> 19:52 < bridge> poggers, basic control flow analysys in edlang 19:52 < bridge> this is the code 19:53 < bridge> ``` 19:53 < bridge> fn main(x: i32) -> i32 { 19:53 < bridge> let y = 0; 19:53 < bridge> if x == 5 { 19:53 < bridge> y = 2 * x; 19:53 < bridge> } else { 19:53 < bridge> y = 3 * x; 19:53 < bridge> } 19:53 < bridge> return y; 19:53 < bridge> } 19:53 < bridge> ``` 19:53 < bridge> (any rust semblance is pure coincidence) 19:53 < bridge> wtf 19:53 < bridge> time cp 19 is unused 19:53 < bridge> Why would anyone use that language 19:53 < bridge> because im making it 19:53 < bridge> Oh. With llvm? 19:53 < bridge> yeah 19:53 < bridge> my own compiler frontend for my own lang 19:53 < bridge> edlang 19:53 < bridge> Ah nice. Useless but nice 19:54 < bridge> does it show the skins in the server info for that server? 19:54 < bridge> u have such a bad mentality 19:54 < bridge> i dont like u already 19:54 < bridge> nvm, 19:54 < bridge> #announcements ~~rc2, for me it doesn't show tees, even when I have the skins or when I already joined, in case it needs to gather the skins~~ 19:54 < bridge> nvm, I pasted rc2 wrong, caused some files to not get overwritten 19:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109176719824388166/screenshot_2023-05-19_19-52-00.png 19:54 < bridge> It just looks way to plain without context from a ux design perspective, a way better solution would also be having it set up like „Map | DDNet (30ms) 19:54 < bridge> Im just talkin shit 👴 19:54 < bridge> Nah, I fucked up pasting rc2 19:54 < bridge> 1 is unused 19:54 < bridge> linux issue xd 19:54 < bridge> It just looks way to plain without context from a ux design perspective, a way better solution would also be having it set up like „Map | DDNet (30ms)“ 19:54 < bridge> i recommend reading this http://www.catb.org/~esr/faqs/hacker-howto.html to setup truly a good mentality 19:55 < bridge> (hacker != typical movie hacker) 19:55 < bridge> such as yours? :kek: 19:55 < bridge> I wanted to play around with the llvm stuff myself. What are u using for the parser / lexer? 19:55 < bridge> indeed, one who does, not who talks 19:55 < bridge> rust mentality :greenthing: 19:55 < bridge> im doing it in rust, lalrpop is my lexer, logos my tokenizer 19:55 < bridge> I see 19:55 < bridge> Good luck 19:56 < bridge> https://github.com/edg-l/edlang 19:56 < bridge> source 19:56 < bridge> agpl3-.0 19:56 < bridge> syntax will probs change in the future, im just taking rust as reference 19:58 < bridge> @Robyt3 The friendlist only shows players with the current Tab (DDNet, KoG, Internet), is it intentional? 19:58 < bridge> What about if you click on the friend in the list, then it highlights that server in the server list? Then you can see additional info, like ping if you want? 19:58 < bridge> Not sure if that's intuitive or easily implementable within the current UI structure. 19:58 < bridge> @Robyt3 The friendlist only shows available players with the current Tab (DDNet, KoG, Internet), is it intentional? 19:58 < bridge> yeah, that's how it works 19:58 < bridge> @BillionRay how many ppl u know that made their own lang? :ez: 19:58 < bridge> oki 19:58 < bridge> @Robyt3 can I suggest something for the friend player tab description? I think it would look cleaner and more intuitive if the format would be "Map | DDNet/KoG (30ms)" 20:00 < bridge> I mean thats how it already is 20:00 < bridge> Well I made a little lang, but its for logging data not coding 20:00 < bridge> But not many 20:01 < bridge> i mean a compiled lang 20:01 < bridge> but yeah 20:02 < bridge> Dont know anyone that made a compiled lang personally. But then again you didn't write the backend which is the hard part so settle down boi :p 20:02 < bridge> I think it's good enough for 17.0, but we can open an issue for more discussion about improving the friends list. Ping could be somewhere on the right side and also colored like in the server list 20:03 < bridge> oh, u think the backend is the hard part 20:04 < bridge> this is not like web dev my friend 20:04 < bridge> in the frontend is where u do type analysis, control flow analysis, and support higher level features, etc 20:04 < bridge> I mean the optimizer, AST, whatever else a compiler does seems hard 20:04 < bridge> llvm is just a good portable assembly 20:04 < bridge> with lot of opts out of the box 20:04 < bridge> How much does llvm do and how much do you do? 20:04 < bridge> I don’t think I will be the only one that would be confused about the formatting 20:05 < bridge> rust is a big big project, and rust itself is just a compiler frontend 20:05 < bridge> the frontend is also what does for example, the stacked borrows analysis 20:05 < bridge> what powers rust at its core 20:06 < bridge> but yeah both have merit 20:06 < bridge> Eeeeh, there is kinda a reason not many compiled languages were being made before LLVM was stable enough as a backend 20:06 < bridge> Ah, it seems i have underestimated you. I see the true scale of what you have done my friend 20:06 < bridge> well i havent done much yet tho 20:06 < bridge> i just added basic control flow analysis 20:06 < bridge> i need to add type inference now 20:06 < bridge> :justatest: 20:06 < bridge> and i dont even have structs yet 20:07 < bridge> Will you add something like templates in c++? 20:07 < bridge> ;))) 20:07 < bridge> why would i add the thing i hate most 20:07 < bridge> Metaprogramming when? 20:07 < bridge> Yeah i wanna write compile time fibonacci 20:07 < bridge> true, both are big, the biggest value of llvm is the optimizer 20:08 < bridge> the big thing: https://polly.llvm.org/ 20:08 < bridge> > LLVM Framework for High-Level Loop and Data-Locality Optimizations 20:08 < bridge> @Ryozuki anyway goodluck with your lang. Ima head out 20:08 < bridge> > Polly is a high-level loop and data-locality optimizer and optimization infrastructure for LLVM. It uses an abstract mathematical representation based on integer polyhedra to analyze and optimize the memory access pattern of a program. We currently perform classical loop transformations, especially tiling and loop fusion to improve data-locality. Polly can also exploit OpenMP level parallelism, expose SIMDization opportunities. 20:08 < bridge> its sad llvm is not gpl 20:08 < bridge> it allowed things like NVVM to be born 20:08 < bridge> ew 20:09 < bridge> Abstracts away the scary scary math from the computer people 20:09 < bridge> This is how it should be 20:09 < bridge> indeed kek 20:10 < bridge> Imagine if you had to think about topography in 69d space when compiling your language. 20:11 < bridge> @Learath2 i need a idea to make my lang unique 20:11 < bridge> something special 20:13 < bridge> First class functions? Not very common in compiled languages 20:14 < bridge> Though I guess nowadays everyone has some type of closure, hmm 20:15 < bridge> Oh, allow array of struct <-> struct of array switch easily 20:16 < bridge> :justatest: 20:16 < bridge> before doing this ill add basic missing stuff 20:16 < bridge> i dont have strings 20:16 < bridge> LOL 20:17 < bridge> Btw maybe try to limit what you have to do with builtins. If a string can be implemented with your language as is, then it’s better to do that if there isn’t huge inefficiency in doing so 20:17 < bridge> well i need to add arrays first too 20:17 < bridge> and structs 20:17 < bridge> If you have a struct and a vector you pretty much can implement strings 20:17 < bridge> Ok, array first 😄 20:17 < bridge> and heap allocations 20:18 < bridge> 20:18 < bridge> and as usual, i am met again with my lovely C functions 20:18 < bridge> Call out to jemalloc for those 20:18 < bridge> does it have a c api 20:18 < bridge> i should go the ez way first 20:18 < bridge> just use malloc 20:20 < bridge> Sure, I thought you might not want to link to glibc/musl/ulibc 20:20 < bridge> well i need to add io support too so 20:20 < bridge> and print 20:21 < bridge> You can technically do those with syscalls, but I guess it’s not quite as portable 20:21 < bridge> Go does that iirc 20:23 < bridge> I don’t remember what rust does 20:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109184918656925857/image.png 20:24 < bridge> not bad 20:25 < bridge> rust uses glibc 20:26 < bridge> go doing that caused them bugs too tho 20:26 < bridge> and only on linux does it i think 20:26 < bridge> windows abi is not stable iirc 20:26 < bridge> kernel* 20:26 < bridge> But think about it, you can completely avoid C 20:26 < bridge> yeah but hard 20:26 < bridge> kernel devs decided to use C as a frontend stable abi 20:27 < bridge> Ofc, best ABI, stablest ABI, 💪 20:33 < bridge> i wonder if anyone rewrote a game like minecraft in rust yet 20:50 < bridge> Yes 20:51 < bridge> There are minecraft client and server implementations but nothing feature complete yet 20:53 < bridge> if i were to learn rust id want to rewrite janky things in it that big companies made just to shit on them 20:54 < bridge> @Ryozuki So #6594 was fixed now? 20:54 < bridge> https://github.com/ddnet/ddnet/issues/6594 20:54 < bridge> theorically yes 23:57 < bridge> FPS ingame go from 1000 (capped) to 80 with this many online friends, creating and sorting the friend list alone takes around 9.6 ms every frame :justatest: 23:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1109238429453139988/image.png