00:20 < bridge> I think east is not active in teeworlds anymore 00:22 < bridge> da east 01:24 < bridge> just drop all the server info that doesn't conform to your schema 01:24 < bridge> kind of what i've done 01:24 < bridge> yea 01:25 < bridge> it's still there, but it's untyped, and i made a typeguard so you can go back to the usual info you get from official ddnet server 01:25 < bridge> it's still there, but it's untyped, and i made a typeguard so you can go back to the usual info you get from official ddnet servers 01:25 < bridge> it's still there, but it's untyped, and i made a typeguard so you can go back to the usual typed info you get from official ddnet servers 01:27 < bridge> https://github.com/Sans3108/DDNet/blob/4f307140fd52373d260858ccba2701078c656ee1/src/Master.ts#L95-L104 01:28 < bridge> ```js 01:28 < bridge> community: z 01:28 < bridge> .object({ 01:28 < bridge> id: z.string(), 01:28 < bridge> icon: z.string(), 01:28 < bridge> admin: z.array(z.string()), 01:28 < bridge> public_key: z.string(), 01:28 < bridge> signature: z.string() 01:28 < bridge> }) 01:28 < bridge> .optional(), 01:28 < bridge> altameda_net: z.boolean().optional() 01:28 < bridge> ``` 01:28 < bridge> that's not from official ddnet servers 01:29 < bridge> probably, the whole thing was made with hopes and prayers, i dont understand the first thing about what is returned by what kind of server so i just used quicktype to try to create some sort of schema 01:30 < bridge> from whatever data the master server returned when i ran the script to make it 01:31 < bridge> probably, the whole Master.ts thing was made with hopes and prayers, i dont understand the first thing about what is returned by what kind of server so i just used quicktype to try to create some sort of schema 01:33 < bridge> I'd love to understand it all, but it's kinda hard when I only know 1 lang and some common and basic programming concepts 02:09 < bridge> No insults for being a botter? 02:09 < bridge> Indonesia 02:15 < bridge> on chn not really, but on ger and rus server I get accused of using "krx" or something like that whenever i start showing off 04:22 < ws-client> @milkeeycat apparently not the same ._. 04:23 < ws-client> ``mov rax, [SIZEOF_SOCKADDR]`` segfaults while ``lea rax, SIZEOF_SOCKADDR`` does not <:tee_thinking:478629518358085653> 04:54 < ws-client> eh so lea is get reference and brackets is dereference. So its basically opposite not same xd. pointers in C are easier -.- here some good SO https://stackoverflow.com/a/25824111 06:45 < bridge> You have been banned for 10 minutes vpn , I don't use VPN what should I do? 06:59 < bridge> make an admin mail ticket 07:00 < bridge> i guess 07:00 < bridge> #✉-create-a-ticket 07:03 < bridge> howd you fix this? 07:05 < bridge> chillerdragon: did u fix? 07:06 < bridge> Coz i did 😏 07:11 < bridge> If i understood correctly it was because u had `db` here https://github.com/ChillerDragon/teeworlds-asmr/blob/2050b2bb80e70de58ad7a86e62db399345b564e6/src/teeworlds_asmr.asm#L98 but recvfrom takes pointer to an int, so it was overwriting `ADDR_LOCALHOST` 07:37 < ws-client> No i did not fix it o.O 07:37 < ws-client> poor ppl being banned for vpn falsely what changed? are more servers vpn protected now or is the blacklist stricter? 07:38 < ws-client> @milkeeycat so whats the fix? 07:38 < ws-client> ah "db" is only one byte and the int is 4 bytes? 07:38 < bridge> Ye, just slap `dw` there 07:38 < ws-client> oh lol i tried `SIZEOF_SOCKADDR db 128, 0, 0, 0` 07:38 < ws-client> xd 07:41 < ws-client> how long did it take you @milkeeycat ? 07:41 < bridge> A few hours :pepeW: 07:41 < ws-client> amazing thanks for this 07:41 < bridge> Until I accidentally commented out last 2 args to recvfrom xd 07:41 < bridge> And it worked 07:42 < ws-client> i also spend a few hours on a similar path xd but not sure if i would have actually found it 07:42 < ws-client> since i half ruled out that idea since for me the 4 byte allocation did not work 07:42 < ws-client> <:poggers2:1008007455936094328> your fix works perfectly for me! thank you so much @milkeeycat 07:43 < ws-client> so does my attempt btw -.- xd ``SIZEOF_SOCKADDR db 128, 0, 0, 0`` 07:43 < ws-client> but when i tried it i must have had introduced a new bug at the time xd 07:44 < bridge> Why is it even 128? 07:44 < bridge> Me no understand 07:44 < ws-client> ye same 07:44 < ws-client> did you see the comments? 07:44 < ws-client> should be 16 thats what it is on my machine 07:44 < ws-client> tw uses 128 tho 07:45 < ws-client> and i found i think a even higher number in the source code of the ruby programming language 07:45 < ws-client> better safe than sorry 07:45 < ws-client> maybe there is some space for ipv6 and nsa backdoor 07:45 < bridge> Ok, if it works then it's fine for me xd 07:46 < ws-client> if recvfrom wants to write 128 bytes it can idk 07:46 < ws-client> i got enough ram 07:46 < ws-client> 16 probably works too xd 07:46 < ws-client> but maybe its not as portable 07:46 < bridge> GitHub influences earn a lot 07:47 < ws-client> ofc every 10 commits i make has a placement 07:47 < ws-client> i can buy all the ram 07:48 < ws-client> ``git commit -m "Raid Shadow..`` 07:51 < ws-client> I wonder if i will ever be able to spawn a tee using assembly 07:52 < bridge> you got it xd 07:52 < bridge> just check sized u pass 10 times 😄 07:52 < ws-client> It feels like the hard part is done xd 07:52 < bridge> just check sizes u pass 10 times 😄 07:54 < bridge> chilllerdragon: ill try to spawn a tee in my programming language xd 07:56 < ws-client> that would be epic 08:46 < bridge> What? 08:46 < bridge> to connect it to ddnet server? 09:22 < ws-client> eh @milkeeycat `db` is 2 bytes i changed it to `dd` for 4 bytes to match a C int 09:24 < ws-client> @learath2 ye as milkeey said join a server. What ever the definition of "join" or "connect" is idc. It gets interesting and nice to show off as soon as there is a tee visible in the world. 09:25 < bridge> chillerdragon: can you send source where you found that `db` is 2 bytes? 09:25 < ws-client> i just realized while watching tsoding vid 09:26 < ws-client> he is walking man page 09:26 < ws-client> https://zillyhuhn.com/cs/.1721978737.png 09:26 < ws-client> i double checked here https://stackoverflow.com/a/10168788 09:26 < ws-client> > DD - Define double word. Generally 4 bytes on a typical x86 32-bit system 09:26 < ws-client> > DW - Define Word. Generally 2 bytes on a typical x86 32-bit system 09:26 < ws-client> im on 64 bit idk if its double there 09:26 < ws-client> maybe dw was already enough 09:32 < ws-client> @milkeeycat ah i did typo xd i mean `dw` is 2 bytes. Thats the thing you suggested right? But we need 4 bytes 09:32 < bridge> ok, i have skill issues 09:32 < bridge> my bad xd 09:33 < bridge> but hey, it worked xdd 09:33 < ws-client> i didnt check the memory 09:33 < ws-client> i assume the 2 less bytes overwritten were good enough xd 09:33 < ws-client> nobody needs the first two bytes of the address struct xd 09:34 < ws-client> ehm thats `AF_INET` should have broke it if you ask me 09:34 < ws-client> unless the thing it overwrote with was also `AF_INET` xd 09:39 < bridge> no i added virus 09:42 < bridge> i simply wanted to make clear, that if you use this app, you know what you are doing. for example you cannot install the release version when it's done, bcs you have to manually uninstall the old version. 09:42 < bridge> this is only a test version for ppl that want to try it out, it should not be spread as the real version 09:49 < bridge> #7863 09:49 < bridge> https://github.com/ddnet/ddnet/pull/7863 09:51 < bridge> ppl don't care obviously :troll: 09:51 < bridge> i need a nice idea for a simple compiled language 09:51 < bridge> make lang for teeui 09:51 < bridge> as lerato suggested 09:52 < bridge> that probs wouldnt be compiled with llvm 09:52 < bridge> what does it need 09:52 < bridge> llvm L 09:52 < bridge> ? 09:52 < bridge> it should be compiled to some byte code that we could translate on both client and server side without any headache 09:55 < bridge> ok thats ez 09:55 < bridge> so what are the things it needs 09:55 < bridge> also if u ask me u know it will be in rust 09:56 < bridge> some instructions like draw rect at x coords, draw a button, event etc? 09:56 < bridge> simple declarative language that looka like literally ui code in tw 09:57 < bridge> hsplit vsplit drawquads etc 09:57 < bridge> i havent dabbled.much in "UI languages" 09:57 < bridge> you should take a look in client ui code then :justatest: 09:57 < bridge> give me a syntax example 09:57 < bridge> https://discord.com/channels/252358080522747904/293493549758939136/1258454503196200991 09:57 < bridge> i did, i documented the hsplit, etc methods 09:58 < bridge> aaand 1000 people installed it 09:58 < bridge> i see 09:59 < bridge> ok u gave me a nice side project 09:59 < bridge> ill look into it 10:00 < bridge> thanks to lerato 10:00 < bridge> big brain 10:00 < bridge> bigd 10:02 < bridge> nah thats just a example 10:02 < bridge> im biased and hate lua Style langs 10:02 < bridge> ill change the syntax 10:03 < bridge> but since it will be bytecode there can be diferent lang syntax that compile to the samw bytecode 10:03 < bridge> ill design the bytecode too 10:11 < bridge> thanks 👍 10:21 < ws-client> lua pog 10:21 < bridge> wasm epyc 10:21 < bridge> @timakro Is it possible to update trashmap server version? It is still on `16.2.2` 10:23 < bridge> chillerdragon: do you plan to run a ddnet server for longer than 292 years at once, without restarting? 10:34 < bridge> Careful. I don’t think heinrich liked my idea very much 😄 10:35 < bridge> Also I love the proportional space partitioning approach to UI. But idk if people like designing UIs like that. Perhaps you should think about whether you can work in some absolute sizing/positioning too 10:43 < bridge> let's face the truth, it's time for electron 10:45 < bridge> 10:45 < bridge> yep 10:46 < bridge> ```asm 10:46 < bridge> lea rath, 2 10:46 < bridge> ``` 10:47 < bridge> ah is this the custom mod ui topic 10:48 < bridge> Does anyone know whether there is a shorter sequence that achieves this? 10:48 < bridge> ```sh 10:48 < bridge> git checkout -b mybranch 10:48 < bridge> git commit 10:48 < bridge> git checkout -b tmp origin/main 10:48 < bridge> git cherry-pick mybranch 10:48 < bridge> git branch -D mybranch 10:48 < bridge> git branch -M tmp mybranch 10:48 < bridge> ``` 10:49 < bridge> The issue is that the original commits got rebased so I can't rebase mybranch directly, it won't just figure out that only 1 commit really happened 10:49 < bridge> git stash or what 10:50 < bridge> whenever i have annoying open stuff 10:50 < bridge> git stash 10:50 < bridge> 10:50 < bridge> do other stuff 10:50 < bridge> 10:50 < bridge> git stash apply 10:50 < bridge> but maybe i read your thing wrong xd 10:53 < bridge> I have branch A with ten new commits on top of main. 10:53 < bridge> I have branch B with two new commits on top of A. 10:53 < bridge> A gets rebase merged into main. 10:53 < bridge> Now I need to rebase B onto the new main. 10:53 < bridge> However git is too dumb to figure out that the commits in main are from A, since they got rebased. 10:53 < bridge> 10:53 < bridge> So I have to create a temporary branch from main, cherry B~ and B on top, then rename this new tmp branch to B 10:54 < bridge> btw, I started stashing less since I found out about `git worktree` it's quite nice. I have some branches permanently checed out in their own folders 10:55 < bridge> mh that surprises me then.. i can simply fetch the new upstream and rebase 10:56 < bridge> i never had conflicts even if the commits did not have the same hash 10:56 < bridge> For ddnet we don't do rebase merges, that makes it very easy 10:56 < bridge> For this repo we use at work I have no idea wtf is going on but the double rebase that happens confuses git very much 10:58 < bridge> fwiw B~ and B cleanly apply on top of the new main, but git rebase just tries to apply all 12 commits, which keeps giving conflicts because you are trying to apply a diff that has already been applied 11:02 < bridge> gm 11:04 < bridge> game master 11:05 < bridge> gigamind 11:06 < bridge> i secound of google revealed: 11:06 < bridge> https://stackoverflow.com/a/59661816 11:06 < bridge> i second of google revealed: 11:06 < bridge> https://stackoverflow.com/a/59661816 11:08 < bridge> Aha, `--onto` that's what I'm looking for 11:08 < bridge> And the rebase manual has very good examples too, I should have just RTFM 11:10 < bridge> nais, getting one step closer 11:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266321654653648977/image.png?ex=66a4b971&is=66a367f1&hm=2f27a745bc34d6e3440fe4f4e929aa6c2b2e1f5eda72d70bbc19cdc3eb38792c& 11:14 < bridge> I think onto isn't enough as one of the rebase changes makes the commit too different for git to recognize 11:17 < bridge> :c, do i have to ask chatgpt for you? 😬 11:18 < bridge> Well it did help, I just add an `-i` along with the onto, then I drop the commit I think is duplicated 11:18 < bridge> It's much easier than marking all commits drop than marking just a handful that are too different 11:18 < bridge> nice 11:18 < bridge> gpt used a temp branch indeed xd 11:19 < bridge> otherwise it uses -i on the rebase directly 11:23 < bridge> i fw that top font heavy 11:46 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266330754548240497/image.png?ex=66a4c1eb&is=66a3706b&hm=d389b8b95bf37ef95d21dc21fe722c4a558c5732a7b6c8973b29b38b408fc749& 11:46 < bridge> i love debug info on my own lang 11:49 < bridge> how much of that llvm provides? 11:54 < bridge> how about simply deleting the duplicate commits in the `git rebase -i`? 11:55 < bridge> Without the onto I was getting too many 12:15 < bridge> No I am planning to die in the next 50 years already so 292 sounds long enough to me. 12:16 < bridge> planned obsolescence 12:16 < bridge> classic 12:31 < bridge> I'm having some weird connection issues here, periodically it'll just randomly load websites extremely slowly, almost as if it's powersaving misbehaving or sth 12:32 < bridge> Yes me too 12:33 < bridge> Average island internet for me hehe 12:35 < bridge> Turned off power management for a bit, let me see if that helps 12:46 < bridge> @learath2: have you tried using windows? I was told it just works 12:47 < bridge> it just works but is shit 12:47 < bridge> xd 12:52 < bridge> xd 12:52 < bridge> man linkers have so many configs 12:52 < bridge> "driving" a linker in a compiler is some plumber work shit 12:54 < bridge> https://github.com/edg-l/linkit/blob/master/src/lib.rs 13:03 < bridge> @louis.place now you just have to convince an admin to update 13:03 < bridge> and then test if it works xd 13:03 < bridge> i tested dilate locally, but too lazy to setup the whole bot again 13:06 < bridge> When continuous discord bot deployment on new git commits 13:08 < bridge> It’s as easy as writing your kubernetes operator in go and 90 yaml files. Or use a bash oneliner `while :; do git pull && sleep 1m; done` 13:09 < bridge> yeah, pls write a script chiller 13:09 < bridge> create some bash scripts for the eternity 13:10 < bridge> Already did 13:10 < bridge> ddnet++ infrastructure is in bash 13:10 < bridge> It boils down to the oneliner I sent and it just works 13:10 < bridge> xddd 13:10 < bridge> Ok tbh it’s full of bugs and like 5k lines 13:11 < bridge> Sadly ddnet infrastructure is closed source 13:12 < bridge> ddnet infrastructure is old af anyway 13:12 < bridge> better dont use it 13:12 < bridge> write a new clean one 13:12 < bridge> No it’s nice 13:12 < bridge> Better than kog 13:12 < bridge> lmao 13:12 < bridge> maybe less often down for maintance 13:13 < bridge> k8 ass 13:13 < bridge> but i bet avo used some epyc electron proofed supervised ultra epyc containers 13:13 < bridge> that just magically work 13:13 < bridge> after you installed 200gb of programms so the containers can be parsed 13:13 < bridge> Magic plus lots of work 13:14 < bridge> Blazingly fast Gaming through 7 go proxies 13:14 < bridge> Gotta have those grafana boards for Kirby game 13:17 < bridge> [build] mingw32-make[3]: Waiting for unfinished jobs.... 13:17 < bridge> [build] [ 98%] Building RC object CMakeFiles/game-client.dir/other/manifest/client.rc.obj 13:17 < bridge> [build] mingw32-make[2]: [CMakeFiles\Makefile2:499: CMakeFiles/game-client.dir/all] Error 2 13:17 < bridge> [build] mingw32-make[1]: [CMakeFiles\Makefile2:506: CMakeFiles/game-client.dir/rule] Error 2 13:17 < bridge> [build] mingw32-make: [Makefile:331: game-client] Error 2 13:17 < bridge> [proc] The command: C:\msys64\ucrt64\bin\cmake.EXE --build c:/Users/QuzzWithDev/Documents/ddnet/build --config Debug --target game-client -j 8 -- exited with code: 2 13:17 < bridge> [driver] Build completed: 00:02:09.798 13:17 < bridge> [build] Build finished with exit code 2 13:17 < bridge> i build ddnet error 13:17 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266353696195743745/image.png?ex=66a4d748&is=66a385c8&hm=eb7b5c3972003b338332808735c3766c3ce38a805cc34f7a66b11e89f0054904& 13:18 < bridge> scroll up, the error is probably higher 13:18 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266354073633034301/image.png?ex=66a4d7a2&is=66a38622&hm=af1167288187f0a74d83095518c840fc9d5a57d8251e802ca6f92b1a3dcb5bfb& 13:19 < bridge> [build] mingw32-make[3]: *** No rule to make target 'debug/libddnet_engine_shared.a', needed by 'DDNet.exe' 13:19 < bridge> this 13:19 < bridge> how to fix? i dont know 13:20 < bridge> how to fix 13:22 < bridge> how to fix it 13:23 < bridge> tysm 13:23 < bridge> @murpi can u update skin bot? 13:24 < bridge> ` rustup target add x86_64-pc-windows-gnu` 13:24 < bridge> installed? 13:26 < Tarot> Hi 13:26 < bridge> no i go to install 13:27 < bridge> install done try again? 13:27 < bridge> yes 13:27 < bridge> Ok 13:27 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266356324237705318/image.png?ex=66a4d9bb&is=66a3883b&hm=e83a112f55493aed0168a42527c445c5737069864e889f8bf5e85879ac3117f0& 13:27 < bridge> is not work 13:28 < bridge> maybe remove build dir and try again 13:28 < bridge> else i dunno,wait for some dev with windows 13:28 < bridge> i remember you had to manually copy some stuff or smth like that 13:29 < bridge> i use git clone --recursive https://github.com/ddnet/ddnet 13:29 < bridge> @jupeyy_keks Thanks for updating the bot 13:29 < bridge> @louis.place done 13:30 < bridge> ty 13:30 < bridge> i try this 13:30 < bridge> @jupeyy_keks heres the big question, now if i go back to the channel and re-upload some skins that werent previously dilated, will the bot rewrite them in the db with the dilated version 13:31 < bridge> assuming the auto dilate works 13:31 < bridge> try it out 13:31 < bridge> do you know a skin that isnt dilated? 13:31 < bridge> i think the toast once arent 13:31 < bridge> skeith sent me a bunch of names earlier 13:32 < bridge> Jupstar ty for the ping (i'd had miss it) :) 13:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266357542921961644/image.png?ex=66a4dade&is=66a3895e&hm=5fc9f012a2ef58a346a0aad68f9c12f61e51205f3ffc955c9c5a33fa0096289d& 13:32 < bridge> does work 13:35 < bridge> @robyt3 what was the trick again on windows 13:35 < bridge> `rustc --version --verbose` please 13:35 < bridge> install linux :santatrollet: 13:36 < bridge> not helpful 13:36 < bridge> It actually is helpful 13:36 < bridge> it is sad that cross compile to windows from linux is easier tho 😂 13:37 < bridge> The process is easier on Linux and not everyone knows that Linux exists 13:37 < bridge> I don't know if compiling with mingw+ucrt even works 13:38 < bridge> msys2* 13:38 < bridge> I'd either use MSYS2+MinGW64 or Visual Studio separately 13:38 < bridge> @thefabirshuaisoserious ^ 13:39 < bridge> try the mingw64 shell 13:40 < bridge> Disagree 13:40 < bridge> And set the correct rust toolchain, either `x86_64-pc-windows-gnu` with mingw, or `x86_64-pc-windows-msvc` with Visual Studio 13:40 < bridge> Wait i try 13:42 < bridge> `rustup default x86_64-pc-windows-gnu` or `rustup default x86_64-pc-windows-msvc`, I think 13:42 < bridge> to set the toolchain 13:49 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266361633387708457/image.png?ex=66a4dead&is=66a38d2d&hm=fda13b64b9be4430119b969d24525d264ce20f143dfaf024c8efa64fb026c7b9& 13:49 < bridge> not a package 13:50 < bridge> this 13:50 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1266362096233484363/image.png?ex=66a4df1b&is=66a38d9b&hm=fd29424e7133c43719e51c1a1a8f72d57c87b1b7af67d1ca557c95e0522c6a65& 13:52 < bridge> try `rustup default stable-x86_64-pc-windows-gnu` 13:53 < bridge> It does. I did it many a time before 13:54 < bridge> installed 13:57 < bridge> Can someone tell me what I should do now? 13:58 < bridge> can you try the build again? 13:58 < bridge> retry I think 13:58 < bridge> remove the build directory first though 13:59 < bridge> i try again 14:02 < bridge> Work 14:02 < bridge> Thx 14:02 < bridge> Thanks to everyone who helped me 14:04 < bridge> chillerdragon: I dare say this was easier than installing linux 14:05 < bridge> Yes installing Linux is hard 14:05 < bridge> But then everything is easier 14:06 < bridge> Installing WSL is fool proof tho :p 14:08 < bridge> It’s just not gaming ready 14:08 < bridge> chose archinstall 14:08 < bridge> But I would also say installing windows is hard 14:08 < bridge> It's very VERY easier than linux, if I may say :d 14:08 < bridge> true 14:08 < bridge> If you buy a laptop with Linux on it you can compare it to windows 14:08 < bridge> it often comes preinstalled 14:09 < bridge> dunno if troll conversation or should keep arguing. 14:09 < bridge> Imo the hardest part is making a bootable stick selecting right drives. Finding the boot menu and so on. From then onwards it’s just clicking through installers. Choosing a language and so on. On windows 10 you get like a zillion questions. People do rage quit windows installs 14:10 < bridge> installing linux aint hard, using it is though 14:10 < bridge> Disagree 14:10 < bridge> let's call it a troll conversation. please don't tell people to "just install linux" when they come with tech support questions 14:10 < bridge> What’s hard about using it @louis.place 14:10 < bridge> Or what’s different than windows even 14:11 < bridge> please go to #off-topic for the common flame wars 14:11 < bridge> nothing, that's why windows is basically the same as windows 14:11 < bridge> so no need to install it 14:11 < bridge> I use emacs BTW 14:11 < bridge> cuz everything is the same 14:11 < bridge> as linux 14:11 < bridge> I meant to say 14:11 < bridge> here 14:12 < bridge> you just notice a lot of small thingies that annoy you that aren't as difficult to fix in more 'consumer' os ChillerDragon 14:12 < bridge> i guess that falls into installing linux though, not exactly using it 14:12 < bridge> → #off-topic 14:12 < bridge> day to day use is pretty similar for most things 14:13 < bridge> i switched to msys2 and mingw64 toolchain 14:13 < bridge> takes like 5 minutes 14:14 < bridge> i didn't reply to the guy, i wrote to jupppey :p 14:22 < bridge> There is one weird thing about rust and msys2, you (technically, in practicality it's usually fine) should be using the msys2 linker in ucrt 14:23 < bridge> why doesnt whathever default the guy had not work? 14:25 < bridge> -msvc toolchain vs -gnu toolchain 14:26 < bridge> they don't interoperate 14:26 < bridge> we should detect this in the CMakeLists.txt 14:26 < bridge> https://github.com/ddnet/ddnet/issues/7660 14:37 < bridge> what is the sense of using prefixes and postfixes for our table names.. 14:37 < bridge> 14:37 < bridge> e.g. 14:37 < bridge> https://github.com/ddnet/ddnet/blob/08f955bff0af6f3e10f09ad233444c7f1cb380bc/src/engine/server/databases/connection.cpp#L11 14:38 < bridge> prefix: there used to be a time where hosters charged per DB used ^^ 14:38 < bridge> i see that is usese "backup" 14:38 < bridge> postfix: probably fixing some problem of duplicate/not recorded ranks 14:39 < bridge> ok, but yeah i think i'll port it by moving that part to per database if it's really needed 14:39 < bridge> which part? 14:39 < bridge> the pre and postfixes 14:39 < bridge> 14:39 < bridge> can simply be a different database if somebody needs that 14:40 < bridge> I think the postfix thing is used in the code 14:40 < bridge> it makes all queries much harder to read 14:40 < bridge> then i simply dont port that code xd 14:40 < bridge> if it has any sense it can simply get a new db connection 14:41 < bridge> I'd guess it's used to solve a problem. this means you'll have to understand the problem and solve it yourself again 14:41 < bridge> if you don't do that, you'll create a bug 14:42 < bridge> that's a bold claim 14:42 < bridge> 14:42 < bridge> in the code it is used for a backup sqlite apparently 14:42 < bridge> https://github.com/ddnet/ddnet/pull/5948 14:42 < bridge> this looks relevant 14:44 < bridge> and still, it can simply use a backup database 14:44 < bridge> there is no reason to bloat all queries 14:44 < bridge> I just want to make sure you're not adding bugs by dropping "unused code" 14:44 < bridge> i never said unused or anything else 14:45 < bridge> i asked for the reason we do it with post & prefixes in the queries 14:45 < bridge> you said there was a time where dbs were expensive 14:45 < bridge> i accept that as argument 14:45 < bridge> i just dont like it 14:45 < bridge> end 14:45 < bridge> hm. I stated two different things, one for prefixes and one for postfixes 14:46 < bridge> you addressed the prefix, I agree that it can probably be dropped 14:46 < bridge> the postfix though is used to make ranks more durable 14:46 < bridge> and I wanted to say that if you remove the postfixes, you'll need to think about how to maintain that property 14:47 < bridge> it's used in sqlite.. can aswell be a second db 14:47 < bridge> 14:47 < bridge> maybe a second db is even safer than using the same db with a second table 14:47 < bridge> I have no problem with you replacing it with something equally good 14:47 < bridge> nice 14:48 < bridge> i have no idea why queries in our version fail anyway 14:48 < bridge> do we have examples? 14:48 < bridge> i mean in mysql ofc if the connection drops 14:48 < bridge> but other than that 14:49 < Tarot> Hey , i have an issue with compiling ddnet source on termux aarch64 linux (android) ~/DDNet-18.4/build $ make game-server [ 12%] Built target game-shared [ 12%] Built target json [ 15%] Built target rust-bridge-shared 14:49 < bridge> can you post the error 14:50 < Tarot> Ok w8 14:51 < Tarot> https://pastebin.com/0RUp3cHb 14:51 < bridge> cc: ``` 14:52 < bridge> error: no such command: `ndk` Did you mean `add`? View all installed commands with `cargo --list` 14:52 < bridge> ``` 14:52 < bridge> did u follow the android script readme? 14:53 < Tarot> Cant install `cargo-ndk` on android 14:53 < bridge> then you have to report that to rust i guess? 14:53 < Tarot> I just want ddnet server 14:53 < bridge> it's a needed dependency, you can't build rust applications without it, why can't you install it? 14:54 < bridge> it's a needed dependency, you can't build the applications without it, why can't you install it? 14:57 < bridge> wait. are you compiling on android? or only for android? 14:58 < Tarot> https://pastebin.com/YMgneN0Z 15:00 < bridge> He is on android I assume since he mentioned termux 15:00 < bridge> cc²: ``` 15:00 < bridge> Compiling cargo-ndk v3.5.4 error: You cannot build cargo-ndk _for_ Android. Build it for your host OS and run it with cargo. --> /data/data/com.termux/files/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-ndk-3.5.4/src/cargo.rs:21:1 15:00 < bridge> ``` 15:01 < Tarot> Compiling on android @heinrich5991 15:02 < bridge> For which target are you compiling? Compiling for Android on Android is not possible AFAIK. 15:03 < Tarot> game-server 15:03 < bridge> He is compiling for windows because it’s easier than doing it on the pc xaxaxaxa 15:03 < bridge> Sori Heinrich I had to 15:04 < bridge> I mean on which system the executable is supposed to run 15:04 < bridge> `termux aarch64 linux (android)` 15:04 < bridge> rip chiller 15:04 < Tarot> Ah , on android 15:04 < bridge> I don't think that's possible 15:05 < bridge> I don't think we support building *on* android 15:05 < bridge> I am not sure if ddnet can do much about it 15:05 < bridge> Sounds like a termux responsibility 15:05 < Tarot> I compiled teeworlds 0.6.x correctly and i can run that server now. 15:05 < bridge> Such a cursed system 15:06 < bridge> rust •.• 15:06 < bridge> ah, I guess compiling the server on android for android could work 15:06 < bridge> since it's just another linux system 15:06 < bridge> but it's probably obstructed by our client support for android 15:07 < bridge> It’s cursed Linux plus cursed Linux 15:07 < bridge> yeah, it shouldn't use cargo-ndk *on* Android I guess 15:07 < bridge> Android is Linux but somehow it needs termux to be even more Linux xd 15:08 < Tarot> Is it different between `cargo ndk` and `android-ndk-r26b` `build-ndk` ? 15:10 < Tarot> Chiller me :) 15:12 < bridge> `cargo ndk` is specifically designed to build rust applications, `android-ndk-r26b` seems to be more generic towards C / C++ 15:12 < bridge> 15:12 < bridge> source: 2min google session 15:15 < Tarot> `ln -s /data/data/com.termux/files/home/android-ndk-r26b/ndk-build /data/data/com.termux/files/usr/bin/cargo-ndk` error gone but hang on` [ 15%] Generating release/libddnet_engine_shared.a ` 15:17 < Tarot> I changed this line `/data/data/com.termux/files/usr/bin/cargo ndk --manifest-path /data/data/com.termux/files/home/DDNet-18.4/Cargo.toml -t -p build --release` 15:22 < bridge> @zwelf2 so ranks are immediately saved to a sqlite database, (where writing to sqlite and mysql at the same time will probably be easy in rust thanks to `async`). 15:22 < bridge> 15:22 < bridge> Do you think it's actually worth to have a third database? 15:22 < bridge> Why wouldn't you simply always write to the sqlite database (similar to what is now done in the backup table). 15:22 < bridge> I can only imagine the risk of having duplicate ranks, but is that really a _huge_ problem? shouldnt it be easy to detect it with a timestamp or smth. 15:22 < bridge> 15:22 < bridge> Or was it mostly bcs it was easier to deal with like that? 15:25 < bridge> you also mentioned `mostly the reason for the backup table to exist: to prevent double loading`, which is probably related. but not clear from the PR what exactly you did here with the backup table to improve that 15:30 < bridge> You know what would be cool? A durable messaging infrastructure that can take responsibility for these messages and transparently handling all the failsafes and once delivery guarantees 15:32 < bridge> wouldn't be better than what we currently have, I think 15:32 < bridge> currently, you can /save and /load while the global DB is offline 15:34 < bridge> do we ever structurally do queries on saves currently? 15:34 < bridge> like select save.cp1 from saves 15:34 < Tarot> @heinrich5991 are you here ? 15:34 < bridge> i wonder if we can make that easier too 15:34 < bridge> no. only on maps/savecodes 15:35 < bridge> we can have a local fallback consumer too 15:35 < bridge> can you elaborate on how that would work? 15:36 < Tarot> I ask somthing in dm 15:36 < bridge> Tarot: DMs don't work 15:36 < Tarot> Irc ? 15:36 < bridge> ?xd CI 15:37 < bridge> What happend to dms 15:37 < bridge> Any good irc client for android? Tarot 15:38 < Tarot> :/ 15:38 < bridge> ah. this is IRC. can you simply ask the question in this channel? 15:38 < Tarot> DDNet-irc Client 15:38 < Tarot> :)) 15:39 < bridge> watafak is ddnet irc client xd 15:39 < bridge> That runs on android? Xd 15:40 < bridge> Actually now that I think about it this is not a great idea because of race issues :/ I really really really don't want any db implementation in our codebase 15:41 < bridge> why not sqlite? I'd like to keep the ability to just start and run a ddnet server 15:42 < bridge> It's nasty, engine components being aware of the specifics of the gamemode 15:43 < bridge> this mostly says something about our implementation, not about databases 15:44 < bridge> you want a dedicated database server (not a direct mysql connection or whatefver) that handles requests in a structured way? 15:44 < bridge> 15:44 < bridge> Or what did you try to say 15:44 < bridge> It would be so much more peaceful if this mess happened somewhere outside, where we don't have to think about threading 15:44 < bridge> i dont understand anything u said tbh xd 15:45 < bridge> code the replacement in rust :p 15:46 < bridge> A separate piece of software that provides a sane interface where you can insert/remove/get ranks without details of database implementations being inside our codebase 15:46 < bridge> sqlx 15:46 < bridge> xdd 15:47 < bridge> it is unclear to me why this is saner than having it inside the codebase 15:47 < bridge> It's just simpler to think about and maintain 15:47 < bridge> i.e. what's the difference between having an insert/remove/get ranks API inside our code, or an external one 15:47 < bridge> I doubt that part. more moving parts with more processes. e.g. the API thing might be offline. what do you do? 15:49 < bridge> It can be coded in some other language where it's much more pleasant to interact with a db 15:49 < bridge> by its central nature it can help alleviate all data consistency issues 15:49 < bridge> if it makes you happy.. since i need to support an interface for wasm, i also kinda had to make an abstraction that makes the underlaying logic go away a bit. 15:49 < bridge> 15:49 < bridge> You still have to write the SQL strings, but other than that it shouldn't bother you so much 15:50 < bridge> we can use rust inside our codebase, might be a nice use case 15:50 < bridge> There'd always be a local instance 15:50 < bridge> ah you are mostly about the interaction between sqlite and mysql thing? 15:50 < bridge> what u dislike 15:50 < bridge> That's one of the many things I dislike 15:50 < bridge> and that might be down. what do you do? 15:50 < bridge> mhh other than that a mysql-client already is an abstraction isnt it? xd 15:51 < bridge> That's why I wanted a message-queue in there somewhere, that'd just take the rank message and store it in it's local buffer 15:51 < bridge> like u do a pool of connection and start queries 15:51 < bridge> but that piece of software would also require to "know" when a mysql connection failed 15:51 < bridge> ah yea. that'd work 15:51 < bridge> or any kind of network 15:51 < bridge> but honestly the local instance being down is only going to happen if there is a bug, there can be a bug in the abstraction we have right now too that can also get it stuck 15:51 < bridge> but it requires an external process, which I dislike 15:52 < bridge> And you can't restart the sql abstraction part of a ddnet server unlike a separate ranks server 15:52 < bridge> yes. we want to keep race records in case of bugs ^^ that's the level of durability we have for ranks currently 15:52 < bridge> i dont understand why this actually solves anything tho 15:52 < bridge> Do we? A bug in the sqlite implementation means we lose ranks, that's also a possiblity. I'd say it's about the same likelihood that there is a bug in an external service that we code 15:53 < bridge> Message queues take responsibility for the messages they route, so after it leaves the server it would be accounted for until properly delivered to the rank-service 15:53 < bridge> Message queues take responsibility for the messages they route, so after it leaves the gameserver it would be accounted for until properly delivered to the rank-service 15:53 < bridge> then you can also simply disallow loading saves on sqlite 15:54 < bridge> that is about the same to me 15:54 < bridge> This is exactly what heinrich wants preserved 15:54 < bridge> external services always add higher error rates 15:55 < bridge> Sounds about right, but I'm fairly sure you have no proof of that 15:55 < bridge> if we want to change to something like this, we'll need to keep the sqlite3 thing at first 15:56 < bridge> I wouldn't really bother with it given the reception it has in here 15:56 < bridge> Maybe one day when I make my own ddnet reimplementation like jupeyy I might explore the possiblity 15:56 < bridge> epyc 15:57 < bridge> I have no proof for that 15:57 < bridge> but it's what my experience tells me 15:59 < bridge> where fax 15:59 < bridge> I have a similarly sane sounding justification as to why that might not be the case in this instance. It'd still be us coding the "external" service, so it's fair to assume the occurance rate of bugs would be about the same. That leaves only the interprocess communication that can go wrong. How would a unix domain socket even break? 16:00 < bridge> maybe the socket doesnt break but u can have bugs in the ipc 16:00 < bridge> but the advantage of separating maybe means cleaner code and less bugs too 16:01 < bridge> its a balance 16:01 < bridge> anyway lets do web scale 16:01 < bridge> mongodb when 16:01 < bridge> I absolutely despise the fact that we are spinning up threads all the way in `src/game/server/`. Why is such a high level of the code even aware of threading? 16:01 < bridge> https://www.youtube.com/watch?v=b2F-DItXtZs 16:02 < bridge> please don't do messaging queues ._. (nor mongodb). it increases complexity and maintainability by 10x 16:03 < bridge> or decreases maintainability 16:03 < bridge> i love the sarcasm isnt noticed 16:03 < bridge> xd 16:03 < bridge> just ignored 16:03 < bridge> ice cold 16:03 < bridge> x) 16:04 < bridge> I put parenthesis around mongo 16:04 < bridge> Message queues are such a nice abstraction. It's insanely annoying to consider stuff like reachability at the edge node 16:04 < bridge> @learath2 omg please show me what you want to improve, i am open. 16:04 < bridge> 16:04 < bridge> your local message queue thing defs sound like smth that is possible, but i wonder how well a generic implementation would work for our use cases. 16:04 < bridge> 16:04 < bridge> i also want to see how you imagine getting away from spawning tasks 16:04 < bridge> https://tenor.com/view/web-development-web-development-web-design-design-gif-22517681 16:04 < bridge> xd ops 16:04 < bridge> debugging them is tue biggest pain in the butt. I mean if it's just putting data i to a database, it's ok but more than that, it's literally garbage. 16:04 < bridge> into 16:04 < bridge> but message queue or message passing is what google does with golang, it scales the web, memory sharing like rust is bad /s 16:05 < bridge> whats bad about mongodb 16:05 < bridge> its not even ACID compliant 16:05 < bridge> it can be 16:05 < bridge> `game/server` just needs a huuuge refactor in general xd 16:06 < bridge> why though 16:06 < bridge> btw i agree i dislike the db code, it tried to be modular but it isnt, cuz the syntax is tied to mysql-like 16:06 < bridge> u cant add psql easily 16:06 < bridge> bouncing messages 16:06 < bridge> I respectfully disagree. Getting to abstract away stuff like delivery guarantees and retries is so pleasant 16:09 < bridge> Currently our servers adopt the fire once, if it's not delivered tough tits approach to message delivery 16:09 < bridge> It's very enjoyable spending hours fixing inconsistencies and figuring out where in the chain a connection failed and we lost a command 16:09 < bridge> i also like that, just the loading saves things doesnt sound easy without a local database in between 16:09 < bridge> 16:09 < bridge> so your abstraction might end up using a sqlite db too, but abstracts away some details or smth xd 16:10 < bridge> dunno the current architecture, so cannot compare. 16:11 < bridge> I was imagining something like a local provider of higher priority providing the `saves`/`ranks` service. But that only works with writing, with a read idk how the router that's supposed to be message agnostic figure out where to route the read message 16:11 < bridge> Don't compare, just tell me why you don't like message queues and what you'd replace them with instead 16:12 < bridge> for simple persistence to db it's ok 16:12 < bridge> adds a lot of complexity to the code 16:12 < bridge> transactions and stuff 16:12 < bridge> do u have to dire past? 16:12 < bridge> some project example 16:12 < bridge> that went wrong 16:12 < bridge> do u have a dire past? 16:13 < bridge> tried to do workflow orchestrstration/coordination with messaging queues 😄 16:13 < bridge> just moving data is ok 16:15 < bridge> i would think of it like a external async engine that processes tasks for you, i dont think its that complex 16:15 < bridge> "workflow" as in durable execution? 16:15 < bridge> for ddnet 16:15 < bridge> like the job api but externally handled? 16:15 < bridge> xd 16:15 < bridge> kind of, I guess 16:15 < bridge> Yes, almost like `CJob`s that can run somewhere else 16:16 < bridge> dunno the exact term durable execution. basically what we currently do with temporal.io 16:16 < bridge> Yeah, temporal is an implementation of durable execution 16:17 < bridge> I've found it quite pleasant to work with lately. No real ddnet application though so not useful here 😄 16:17 < bridge> this falls into the plan to add more rust code and tie ddnet to rust more :PES_EvilHandRub: 16:17 < bridge> termoral is amazing 16:17 < bridge> temporal 16:18 < bridge> It just would be so nice if the ddnet server would send information about a rank and then just doesn't have to know anything else. Whether the remote write failed, what to fallback to whether the fallback is working, whether we should retry, or not, or what failure is retryable what failure isn't 16:19 < bridge> that's out of scope of a messaging queue already 16:21 < bridge> All message brokers take responsibility for messages, that already takes care of the "durability". The routing of messages to service providers is the missing part but there are also implementations that dabble in that 16:22 < bridge> Is there a single consumer service for ranks? 16:23 < bridge> where multiple servers send to? or how are the ranks collected? 16:23 < bridge> Currently there is no message queue, we try to write to mysql, if it fails we write to sqlite 16:23 < bridge> @heinrich5991 do u think a [u32; 4] and a struct wit 4 fields that have type u32 are laid of the same in memory? 16:23 < bridge> no multiple servers supported, no further fallback 16:23 < bridge> and later on try again? 16:24 < bridge> No try again 16:24 < bridge> maybe that's the missing part 16:24 < bridge> We have deen guaranteed durable execution that pushes ranks from sqlite to mysql at midnight 16:24 < bridge> xD deen guaranteed, deen doing that ? 16:24 < bridge> Yes, it's much better than temporal 16:24 < bridge> xD 16:25 < bridge> doesn't sleep 16:25 < bridge> works 24/7 16:25 < bridge> Though perhaps he added a cron nowadays to handle the simple case of the mysql server now being able to access the leaf servers 16:25 < bridge> a cron which when it fails doesn't log anything or notify anyone probably 16:26 < bridge> would suggest to actually introduce some thread for trying to push data to db from sqlite 16:26 < bridge> way easier and decentralized 16:27 < bridge> Idk why we didn't do that, perhaps a data race issue with saves that I'm not remembering right now 16:28 < bridge> we do have a similar approach with our monitoring solution for pushing metric data to our event processing once the event processing api is down. 16:28 < bridge> one could use in process messaging queues 16:29 < bridge> for pushing data around and having it processed asynchronously 16:30 < bridge> rabbitmq occasionally needs to be updated 16:31 < bridge> mysql for learath is what using global variables is for me xdddd 16:31 < bridge> rabbitmq occasionally needs to be updated as well 16:31 < bridge> Maybe we should just store all ranks in a global variable 🤔 16:31 < bridge> version differences e.g. 16:31 < bridge> perfect 16:32 < bridge> global as in the earth global 16:32 < bridge> global variables 16:32 < bridge> yea, that sounds not nice, but also not related 16:32 < bridge> OH, we should hire a record keeper that just watches the logs and writes down the ranks and saves into a huge ledger 16:33 < bridge> web3 16:33 < bridge> AI 16:33 < bridge> code a custom client that keeps a tee active on every server and grabs ranks from chat 16:33 < bridge> yw 16:33 < bridge> global scale 16:33 < bridge> not guaranteed unless `#[repr(C)]` 16:33 < bridge> @louis.place can u try the bot with what we discussed? 16:33 < bridge> 16:33 < bridge> i dont even see it's commands anymore xd 16:33 < bridge> just try on the toast skins they are defs not dilated 16:34 < bridge> @jupeyy_keks do you know tokio-rs? 16:34 < bridge> https://discord.com/channels/252358080522747904/985717921600929872/1061522670904160367 16:34 < bridge> i tried doing it on a rly far back skin but the bot broke 16:34 < bridge> the organisation? 16:34 < bridge> the uploading msg just disappeared 16:34 < bridge> 😮 16:34 < bridge> can it not fetch old msgs? 16:35 < bridge> maybe try to first remove your reaction 16:35 < bridge> The tokio runtime in general. I want to know if I can somehow have a thread that never switches tasks 16:35 < bridge> ye ill try again 16:35 < bridge> but make sure to remember it xd 16:35 < bridge> in a min 16:35 < bridge> you can IIRC 16:36 < bridge> i never used smth so specific sry. 16:36 < bridge> 16:36 < bridge> if u want a thread that never switched tasks, use a blocking thread and call all async code sync xd 16:37 < bridge> nah dunno, if some logic uses tokio::spawn internally that is probably already cheating for you? 16:40 < bridge> btw, this is where I'm coming from: https://github.com/jxsl13/amqpx in regard to messaging queues. 17:15 < bridge> I thought something was wrong with my laptop, my earphone case has a magnet in it and I was getting it too close to the hall effect sensor 😄 17:18 < bridge> do dnsbl services have rate limits? 17:49 < bridge> I'm already using msys2 and minge64 😭 17:49 < bridge> I'm already using msys2 and mingw64 😭 17:54 < bridge> so? xd 17:54 < bridge> is the bot even online 18:01 < bridge> oh oops 18:01 < bridge> nah still doesn twork 18:02 < bridge> its weird though 18:02 < bridge> the message just disappears when i react to smth far back 18:02 < bridge> @murpi make me skin database crew 18:06 < bridge> ok 18:07 < bridge> no @chanch0o 18:07 < bridge> :pepeW: 18:07 < bridge> :kek: 18:08 < bridge> 🤓 18:12 < bridge> @louis.place mh ok really weird.. kinda looks like a discord client bug 18:12 < bridge> it just drops it for whatever reason 18:12 < bridge> dunno if it's some client setting 18:13 < bridge> can someone clear the cache of cloudflare? 18:13 < bridge> ok thx so im not going insane 😅 18:14 < bridge> @heinrich5991 maybe when u back 18:27 < bridge> @murpi u can remove me again, either it worked or not, we'll see 😄 18:30 < bridge> u can make me also 18:30 < bridge> im just gonna test dw 18:31 < bridge> @louis.place when are u goin to replace 18:31 < bridge> 🧐 18:33 < bridge> i forgot, later 18:36 < bridge> see? 18:36 < bridge> i would never forgot 18:36 < bridge> you should totally make me skin database crew 18:39 < bridge> which cloudflare cache? 18:40 < bridge> its up to admins but sorry, i won't recommend you 18:41 < bridge> for skins.ddnet.org 18:42 < bridge> https://ddnet.org/skins/skin/toast_kiinmn.png 18:43 < bridge> ye i know ty 18:44 < bridge> tried purging everything under https://ddnet.org/skins/skin/. did it work? 18:44 < bridge> yes thanks 18:45 < bridge> ok wait the skin is gone 18:45 < bridge> lol 18:45 < bridge> ah ok browser bug 18:45 < bridge> nvm 18:46 < bridge> 404 for me oO 18:47 < bridge> mh weird 18:47 < bridge> but it also isnt dilated :c 18:47 < bridge> but that is unrelated 19:04 < bridge> i had similar stuff but i broke it a few commits ago and forgot about it xdd 19:32 < bridge> damn @jupeyy_keks i knew you're a vulkan gigachad, but that GLEW PR you posted? juicy, weird it just got left sad, alone and dusty 19:33 < bridge> damn @jupeyy_keks i knew you're a vulkan gigachad, but that GLEW PR you posted? juicy... weird it just got left sad, alone and dusty 19:33 < bridge> i didnt use wayland as argument 19:33 < bridge> maybe that would convince him xd 19:33 < bridge> poke the reviewer and mention it 19:33 < bridge> XD 19:34 < bridge> but anyway, i am surprised there is now glew-egl package in arch anymore 19:34 < bridge> i thought i saw that once 19:34 < bridge> that would fix it 19:34 < bridge> bcs that is the package to use for wayland users 19:37 < bridge> isnt that just glew-wayland? 19:37 < bridge> or was there a specific glew-egl package once?, can't find any in the history 19:37 < bridge> i thought it was even named like that yeah 19:37 < bridge> but yeah lets see if glew-wayland works for him 19:37 < bridge> ye 19:39 < bridge> i found this: 19:39 < bridge> https://github.com/nigels-com/glew/pull/216#issuecomment-903655872 19:39 < bridge> maybe we can actually fix it in our code.. 19:39 < bridge> 19:39 < bridge> now i remember 19:39 < bridge> i think i even did it for bundled GLEW 19:39 < bridge> 😅 19:39 < bridge> :kek: 19:39 < bridge> ah yeah 19:40 < bridge> now that few years passed we can maybe enable it default 19:41 < bridge> wow 19:41 < bridge> he didnt release a version since then 19:41 < bridge> xDDDDD 19:41 < bridge> :KEKW: 19:41 < bridge> so all linux distros are outdated 19:41 < bridge> well you can't get more backwards compatible than that! 19:42 < bridge> Hello how can I make cheats like KRX? Thx in advance 19:42 < bridge> :think_bot: 19:54 < bridge> @apfff no mentioning cheat client names 19:57 < bridge> @blaiszephyr and that is why static linking is master race 😬 20:02 < Tarot> `~/DDNet-18.4 $ ninja -v game-server ninja: error: '/release/libddnet_engine_shared.a', needed by 'DDNet-Server', missing and no known rule to make it` ? Whats wrong 20:07 < Tarot> Same on `~/DDNet-18.4 $ ninja ninja: error: '/release/libddnet_engine_shared.a', needed by 'libDDNet.so', missing and no known rule to make it` 20:09 < bridge> are you still trying to build the server on android? 20:09 < bridge> sorry 20:09 < Tarot> No 20:11 < bridge> what rust toolchain are you using? 21:03 < bridge> yikes #general is fucked 😬 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:03 < bridge> "Msc empire fucked you, get on your knees discord.gg/pon" 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:04 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:05 < bridge> Msc empire fucked you, get on your knees discord.gg/pon 21:06 < bridge> @Discord Mod 21:57 < bridge> @louis.place i think the dilate worked.. i finally get the new image from ddnet.org 21:59 < bridge> maybe you can confirm with another skin tho 22:16 < bridge> @morpheus_tyler whatsup digga 23:13 < bridge> Hello! Are you continuing to develop a new version of ddnet mobile? Can not wait 23:14 < bridge> hi 23:14 < bridge> yes but asking every day wont make it come faster 😉 23:14 < bridge> https://github.com/DDNet-WinArm64/ddnet-build/actions/runs/10117505816 23:14 < bridge> I wanted to cheer you up 23:14 < bridge> winarm64 build is ready 23:15 < bridge> ok, thanks 23:15 < bridge> What will you add besides the change of management? 23:16 < bridge> wat? xd 23:17 < bridge> What do you want to add to the new version? 23:17 < bridge> neat, i guess nobody here except you has ARM64 yet 😄 23:17 < bridge> 23:17 < bridge> One important step will be that our devs can compile the ddnet-libs themself (e.g. for updates) 23:17 < bridge> Sorry, I'm using a translator 23:18 < bridge> touch controls. 23:18 < bridge> 23:18 < bridge> Other than that compared to the old version there is a lot of stuff that was added during the years 23:18 < bridge> should ask qualcomm to donate one dev to your ppl xD 23:18 < bridge> Is there anything else? 23:19 < bridge> did you ever play the PC version? 23:19 < bridge> it is fairly buildable on x86-64 but bairly testable 23:19 < bridge> it is fairly buildable on x86-64 but barely testable 23:19 < bridge> Yes, but more often I play on the phone because I don’t have a PC. Played with my brother and friends 23:20 < bridge> it will be like the PC version.. just with touch controls 23:20 < bridge> nothing less, nothing more 23:20 < bridge> That is, it will be possible to change the controls and that’s it? Although this is enough for me🥰 23:21 < bridge> some day you can also change controls yes 23:21 < bridge> when exactly is hard to say 23:23 < bridge> Well, anyway, I’ll wait for it, and don’t forget to add the function of using emotions, it’s not available in the test version)) 23:23 < bridge> @jupeyy_keks How many people are involved in development? 23:24 < bridge> the touch controls are made by robyte only 23:24 < bridge> if that is your question 23:24 < bridge> but if your question is how many ppl work on ddnet: 23:24 < bridge> https://github.com/ddnet/ddnet/graphs/contributors 23:25 < bridge> Thank you, I won't bother you anymore 23:28 < bridge> anyway, if devs are not ready to build and test win arm64 versions and other ppls make such demands, you can direct them to the repo. 23:28 < bridge> 23:28 < bridge> The build procedure itself is free of supply chain attack because everything is built from src without my uploaded binaries. 23:28 < bridge> 23:28 < bridge> But as unofficial build, I may not be able to always keep synced with upstream changes as I have other responsibilities.