04:10 < bridge> i've always heard that unsigned is better for raw data and signed is better for text 04:10 < bridge> in practice there's very little difference 05:59 < ws-client> @Jupstar ✪ wtf where did you get that name from xd 06:11 < bridge> Depends on the shell. Thats one of the portability hacks. Tbh I usually avoid sed -i in my scripts because its so annoying. Creating a temporary file is much more portable. So the issue is that macOS sed -i refuses to work without backup file. But the backup file is not supported by linux. So you need basically a if statement saying. If mac do backup else do nothing. And the -i'' hack does that in some cases I still think it fails on most mac 06:12 < bridge> https://unix.stackexchange.com/a/92907/429645 06:17 < bridge> i use clangd. Go send your compiler flags 06:20 < bridge> I use mason. But ddnet does not work out of the box. I assume because of the generated code. This has to be a solved problem by one of you i just cba to reinvent the wheel here 06:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1214804681155416094/image.png?ex=65fa7205&is=65e7fd05&hm=aec6d00761a894bffcff025283fa628f83db830a3a0027d22545b4a4d04b1686& 07:08 < bridge> chillerdragon: (https://github.com/MilkeeyCat/ddnet_demo_web_viewer/assets/40633857/6211920f-c5e8-4bee-a15e-6455d5437cd1 07:08 < bridge> chillerdragon: https://github.com/MilkeeyCat/ddnet_demo_web_viewer/assets/40633857/6211920f-c5e8-4bee-a15e-6455d5437cd1 07:09 < bridge> all i had to do is add `-DCMAKE_EXPORT_COMPILE_COMMANDS=1` to cmake command 08:12 < bridge> @jupeyy_keks webgl doesn't support geometry shaders, a gg 08:33 < bridge> Switch to webgpu. But maybe they also don't support it xd 10:15 < bridge> For clang yea 10:15 < bridge> For clang-tidy yea 10:15 < bridge> Hm, I definitely remember fraunhofer holding mp3 patents. I wonder how that happened with EU not doing software patents to begin with 10:17 < bridge> Then symlink the generated file to the main folder 10:18 < bridge> i dont have to symlink anything :p 10:19 < bridge> Hmm. I had to do it for nvim clangd 10:21 < bridge> This ^ or cxx_compiler_ Something ( im at Work and cant Check atm, i Made it an alias so i dont remember lmao ) 10:34 < bridge> @heinrich5991 it seems they really did hold patents to it. I guess these are not "software patents" for some reason. EP0393526A3 11:06 < bridge> note that `signed char`, `char` and `unsigned char` are three different types 11:07 < bridge> whether `char` has a sign or not depends on the platform, but AFAIK independent of that, it's a type different from `signed char` and `unsigned char` 11:07 < bridge> in that manner, I think you should use `unsigned char` or `uint8_t` for bytes, and `char` for text 11:09 < bridge> name me one shell where `-i` and `-i''` isn't exactly the same 11:09 < bridge> chillerdrgon 11:09 < bridge> chillerdragon 11:12 < bridge> I have no clue why this wouldn't be a software (or math) patent 11:12 < bridge> there are no math patents either in europ AFAIK 11:12 < bridge> there are no math patents either in europe AFAIK 11:43 < bridge> I think(tm), the patent does not represent itself as a computer software patent, or a math patent. It's just the right amount of both to be considered neither. As in the math and the software are a means to an end, rather than the things getting patented 11:44 < bridge> Article 52 is the piece of law that grants these exceptions to patentability and it is worded in such a bizarre way with that "as such" at the end that it's hard for me to interpret 11:46 < bridge> has the mp3 patent been tested in court? 11:46 < bridge> I've only found settlements wrt. that patent yesterday 11:48 < bridge> It's for some reason extremely hard to google for this stuff. But I'm guessing not 11:49 < bridge> it might be related to the fact that google tries to prioritize new results 11:50 < bridge> Also this is like the core patent. There are like a dozen more around this that patent more specific parts of mp3. Maybe they litigated one of those somewhere 11:55 < bridge> morning 11:56 < bridge> Morning 11:59 < bridge> ```cpp 11:59 < bridge> MlirAttribute mlirLLVMDISubroutineTypeAttrGet(MlirContext ctx, 11:59 < bridge> unsigned int callingConvention, 11:59 < bridge> intptr_t nTypes, 11:59 < bridge> MlirAttribute const *types) { 11:59 < bridge> SmallVector attrStorage; 11:59 < bridge> attrStorage.reserve(nTypes); 12:00 < bridge> 12:00 < bridge> return wrap(DISubroutineTypeAttr::get( 12:00 < bridge> unwrap(ctx), callingConvention, 12:00 < bridge> llvm::map_to_vector(unwrapList(nTypes, types, attrStorage), 12:00 < bridge> [](Attribute a) { return a.cast(); }))); 12:00 < bridge> } 12:00 < bridge> ``` 12:00 < bridge> is this unholy? 12:03 < bridge> https://github.com/llvm/llvm-project/releases/tag/llvmorg-18.1.0 12:03 < bridge> llvm 18 is out 12:04 < bridge> that hurts -.- 12:04 < bridge> what's wrong with it? 12:05 < bridge> these are conventions I've seen in software 12:05 < bridge> use `unsigned char` if you mean bytes and `char` if you mean strings 12:05 < bridge> the standard states that it's in general undefined if `char` is `signed char` or `unsigned char` 12:05 < bridge> implementation-defined 12:06 < bridge> but yes 12:06 < bridge> wait no 12:06 < bridge> it's implementation defined if `char` is signed or not 12:06 < bridge> but it's never `signed char` or `unsigned char` AFAIK 12:07 < bridge> ```The signedness of char depends on the compiler and the target platform: the defaults for ARM and PowerPC are typically unsigned, the defaults for x86 and x64 are typically signed. ``` 12:07 < bridge> >The signedness of char depends on the compiler and the target platform: the defaults for ARM and PowerPC are typically unsigned, the defaults for x86 and x64 are typically signed. 12:07 < bridge> > The signedness of char depends on the compiler and the target platform: the defaults for ARM and PowerPC are typically unsigned, the defaults for x86 and x64 are typically signed. 12:08 < bridge> this does say anything about the point of contention 12:08 < bridge> this does not say anything about the point of contention 12:09 < bridge> erm yes, `signed char`, `unsigned char` and `char` are distinct types iirc 12:09 < bridge> (even if `char` is one of the other 2 under the hood) 12:09 < bridge> I just verified this using a compiler 12:11 < bridge> sqlite works for different platforms and doesn't want to mess around with what `char` really is on the concrete platform/compiler ^^ 12:11 < bridge> it wouldn't matter for sqlite3 12:12 < bridge> it could simply™ cast it to `char` just at the API boundary if it wanted to be internally oblivious of `char`'s signedness 12:14 < bridge> Just use char8_t 12:14 < bridge> Then u epyc c23 coder 12:14 < bridge> Also it's unsigned 12:15 < bridge> But this whole mess about data types is something I always disliked about c and cpp 12:19 < bridge> As with most other things, C suffers from still supporting ancient shit 12:19 < bridge> like ddnet 12:19 < bridge> i get it 12:19 < bridge> Xdddd 12:19 < bridge> Based 12:20 < bridge> No need to support ebcdic, no need for CHAR_BIT to be anything but 8 12:20 < bridge> there were architectures with less than 8bit/byte :D 12:21 < bridge> Looks at the External json that cant be merged because we still support.. what was it, Ubuntu 12(?) and some other really old fkn distros and they dont Support latest upstream :cammostripes: 12:21 < bridge> The keyword being "were" 12:21 < bridge> link? 12:21 < bridge> hey, they for sure run some military weather station 12:22 < bridge> #7703 Heinrich 12:22 < bridge> https://github.com/ddnet/ddnet/pull/7703 12:23 < bridge> There are also some exotic embedded stuff that uses chars bigger than 8 but honestly they can just compile with an older compiler. C23 has no reason to be able to target a DSP or whatever designed in the 80s 12:24 < bridge> that doesn't look like "ubuntu 12", but even now, "the currently newest fedora version" 12:24 < bridge> https://repology.org/project/json-parser/versions 12:26 < bridge> perhaps we could use rust to parse json ^^ 12:26 < bridge> I must be getting scammed on my internet bill. 93€ for 2 months is insane 12:27 < bridge> 🤤 12:27 < bridge> Wtf 12:27 < bridge> Mh, not an amazing fit I imagine. You'd either have to fill a complex C++ structure from rust or have C++ call into rust to retrieve fields 12:28 < bridge> I'd do the latter fwiw, if you want to give it a go 12:28 < bridge> > The size of the byte has historically been hardware-dependent and no definitive standards existed that mandated the size. Sizes from 1 to 48 bits have been used. 12:29 < bridge> :D 12:29 < bridge> try to write portable code with this 12:30 < bridge> Well C truly makes this sort of portability easy. Unless you are doing something with the bit representation of a char, you'll be fine 12:30 < bridge> I was thinking the first, the structs we parse into aren't that complicated 12:30 < bridge> I wouldn't say "easy". maybe "possible" 12:31 < bridge> But then you need to generate a struct from each of our json schemas which we don't even have because we don't really enforce 12:31 < bridge> I don't think C is compatible with a 1-bit `char` btw 12:31 < bridge> I ask myself what the difference between `signed char` and `unsigned char` is on a 1-bit-byte architecture ^^ 12:31 < bridge> Can't be less than 8b iirc 12:31 < bridge> because a `char` must be able to store `[A-Za-z0-9]` IIRC 12:32 < bridge> Im developing a restAPI in rust that Kind of does that, and communicate to IT using ddnets http, curl stuff, If i understood it correctly thats what you meant ? 12:32 < bridge> link? 12:32 < bridge> Private still :P 12:32 < bridge> Not really. We were talking about using ffi 12:32 < bridge> Can Send parts to you in DM later when im Home 12:33 < bridge> Just directly calling into native code compiled from rust 12:33 < bridge> I c 12:35 < bridge> Http client would have been perfect fit for rust 12:36 < bridge> Yep, not performance critical. I considered it but then I didn't feel like rewriting the entire thing 12:37 < bridge> Tbf I doubt there is much overhead to the c++ bridge, so a lot can be done in rust 12:38 < bridge> I only mentioned it BCs of the struggle we had with our job system and curl lately 12:38 < bridge> I guess from a learning POV you learned new stuff xd 12:39 < bridge> I really don't like the job system tbh 12:40 < bridge> If I were doing teeworlds from scracth in C++ I'd probably look into using something like folly::future with green threads 12:40 < bridge> Or at the very least I'd implement something with an API resembling folly futures. Chaining and being able to control execution locality is so useful 12:43 < bridge> I used reqwest with tokio. The only thing I can complain about is that reqwest takes 20ms to start the client 12:43 < bridge> That's as much as the vulkan backend 12:43 < bridge> Fwiw, rust wouldn't have saved us from any of those either. The issues were with logic at the edge of the interface with aborting 12:44 < bridge> Yeah dunno. My io aborting is like 5 lines of code xdd 12:44 < bridge> 12:44 < bridge> Raii carries 12:44 < bridge> rust's futures can be implicitly aborted, it's pretty built into the system 12:46 < bridge> anyone can send me a file to host insta laser lan server? 12:47 < bridge> i think they talk about using current rust-cxx-bridge to parse json in rust and work with it in cpp 12:50 < bridge> ```rust 12:50 < bridge> 12:50 < bridge> // else path is only for the internal state 12:50 < bridge> pub fn cancelable(mut self) -> Self { 12:50 < bridge> if let TaskState::WaitAndDrop | TaskState::CancelAndDrop = self.task_state { 12:50 < bridge> self.task_state = TaskState::CancelAndDrop; 12:50 < bridge> } else { 12:50 < bridge> panic!("the cancelable call has no effect on this task, because it was not part of the task queue. Use the join handle directly."); 12:50 < bridge> } 12:50 < bridge> self 12:50 < bridge> } 12:50 < bridge> 12:50 < bridge> // in the Drop impl: 12:50 < bridge> TaskState::CancelAndDrop => { 12:50 < bridge> let mut inner = self.io_batcher.borrow_mut(); 12:50 < bridge> let task = Self::drop_task(self.queue_id, &mut inner); 12:50 < bridge> #[cfg(not(target_arch = "wasm32"))] 12:50 < bridge> task.abort(); 12:50 < bridge> #[cfg(target_arch = "wasm32")] 12:50 < bridge> task.cancel(); 12:50 < bridge> } 12:50 < bridge> 12:50 < bridge> ```` 12:50 < bridge> 12:50 < bridge> so i do it over the join handle of tokio (and whatever i use on wasm) and they simply support aborting as a function call. 12:50 < bridge> i hope it formatted well xd 12:52 < bridge> ```rust 12:52 < bridge> let http = io.http.clone(); 12:52 < bridge> io.io_batcher 12:52 < bridge> .spawn(async move { 12:52 < bridge> http.download_text("https://master1.ddnet.org/ddnet/15/servers.json") 12:52 < bridge> .await 12:52 < bridge> }) 12:52 < bridge> .cancelable() 12:52 < bridge> ``` 12:52 < bridge> example spawned task to download server list as text 12:52 < bridge> which auto cancels 12:53 < bridge> use hyper xd 12:53 < bridge> i think it uses hyper under the hood 12:54 < bridge> it simply gives me an idiomatic interface.. perfect, because i doubt the ddnet client or server will ever need performance critical http requests xd 12:54 < bridge> at least not as a http client 12:55 < bridge> bro can some of yall help me on how to set up a mod? like zillyinsta google isnt helping 12:55 < bridge> using http for ipc seems to be slow xd 12:55 < bridge> bro can one of yall help me on how to set up a mod? like zillyinsta google isnt helping 12:55 < ws-client> @heinrich5991 i am bash maximalist i basically know no other shell but i have seen that on stack overflow. But now that i think about it more it seems to be quite useless. So sed -i needs another fix for mac. 12:55 < bridge> tru xd 12:55 < bridge> idk if quic fits for it 12:55 < bridge> @xv.15 ping chillerdragon 12:56 < bridge> who just spawned 12:56 < bridge> @chillerdragon 12:56 < ws-client> @xv.15 i happen to know some of the zillyinsta devs irl 12:56 < bridge> he talks with a bot 12:56 < bridge> if it's fully local, probably not 12:56 < bridge> ChillerDragon: spawnkill 12:56 < bridge> its confusing 12:56 < bridge> ok help!! 12:56 < bridge> he's on irc 12:56 < ws-client> make sure not to use the master branch 12:56 < ws-client> there are segfaults on the master branch as a political statement 12:56 < bridge> xdd 12:57 < bridge> what 12:57 < bridge> im cofnused 12:57 < bridge> why cant it be like alivefng where u just press run server? 12:57 < ws-client> master is a wording used in slavery 12:57 < bridge> yep it ran rm -rf ~/ on mine server after first segfault 12:57 < ws-client> idk alivefng run server is there a gui with a button? :D 12:57 < ws-client> @xv.15 what are you looking for? 12:58 < bridge> insta laser 12:58 < ws-client> what do you need zillyinsta for? 12:58 < ws-client> fng is not implemented yet 12:58 < bridge> just insta laser lol 12:58 < ws-client> just iCTF 12:58 < ws-client> no iDM 12:58 < ws-client> is that working for you? 12:58 < bridge> nope i couldn't figure out anything 12:58 < ws-client> but iCTF is what you want ye? 12:59 < ws-client> have you ever compiled a teeworlds server? 12:59 < bridge> does that work on w11's new terminal? xd 12:59 < bridge> 12:59 < bridge> i bet he uses windows 12:59 < bridge> No 12:59 < bridge> nah most i did was run a fng server which was literally just running an exe 13:00 < bridge> rm works but it's not the same binary, you can't -rf 13:00 < ws-client> so you want to run it on your windows machine locally? 13:00 < bridge> yes 13:00 < bridge> ah too bad. u can't troll linux users with that, would be cool to be at least able to do it for windows users 13:00 < bridge> U have since the ls 13:00 < bridge> Then* 13:00 < bridge> There's some tools in windows11 now but sometimes they work differently 13:01 < ws-client> @xv.15 windows is untested but you can be my Guinea pig if you want 13:01 < bridge> as long as i don't get sent maleware thats fine 😁 13:01 < bridge> as long as i don't get sent malware thats fine 😁 13:02 < ws-client> as a language model i can not send malware 13:02 < bridge> ok lets test it 13:02 < ws-client> gimme 10min to download and upload some m$ exe with asian bamboo network 13:03 < ws-client> or you know what 13:03 < ws-client> just use the old version thats ok the new only added bugs 13:03 < bridge> why do you speak with a webhook btw 13:03 < bridge> what version 13:03 < ws-client> https://github.com/ZillyInsta/ddnet-insta/releases/tag/v1.5 13:04 < bridge> he's on irc 13:04 < bridge> thats why 13:04 < ws-client> https://zillyhuhn.com/cs/.1709726642.png 13:04 < bridge> pigeon mail when 13:04 < ws-client> click here and enjoy virus 13:04 < bridge> ok 13:04 < bridge> done 13:04 < ws-client> then unzip it and there is a DDNet-Server.exe that you should just be able to run 13:04 < ws-client> hopefully as smooth as alivefng 13:05 < bridge> 🙏 13:06 < ws-client> 10mins was probably too ambitious anyways xd https://zillyhuhn.com/cs/.1709726742.png 13:06 < bridge> am i stupid 13:06 < bridge> or is that just ddnet 13:06 < bridge> 🫣 13:06 < ws-client> a 13:06 < ws-client> set sv_gametype xd 13:07 < ws-client> ``sv_gametype iCTF`` 13:07 < ws-client> in your config 13:07 < ws-client> more config options are documented here https://github.com/ZillyInsta/ddnet-insta?tab=readme-ov-file#configs 13:08 < bridge> is that f2 or something in the files 13:08 < ws-client> autoexec_server.cfg is where your configs go :) 13:08 < bridge> alr 13:08 < bridge> found it 13:08 < ws-client> there should be one already just delete the entire content of the file and then add in your configs 13:09 < bridge> in this case just sv_gametype iCTF? 13:09 < ws-client> ye 13:09 < bridge> chillerdragon: hey 😏 13:09 < ws-client> maybe also ``sv_rcon_password youradminpass`` 13:09 < ws-client> yo milk 13:09 < ws-client> i am browsing ur dotfiles rn 13:09 < ws-client> lookin for ur clang options 13:09 < ws-client> not finding it 13:09 < bridge> I dont have any 13:09 < bridge> XD 13:09 < ws-client> bruv 13:10 < bridge> i did it but now my maps don't show !!! 13:10 < bridge> but it works 13:10 < bridge> if at all chiller would add miners, not viruses xd 13:10 < ws-client> maps don't show automatically 13:10 < ws-client> you mean in the votes? 13:10 < bridge> ye 13:10 < ws-client> you need to add every vote manually 13:10 < bridge> chillerdragon: did u try that cmake flag? 13:10 < ws-client> what maps do you have? 13:10 < bridge> just the classic fng map 13:10 < bridge> how do i make the server start with that 13:11 < ws-client> sv_map classic_fng_map_name 13:11 < bridge> alright 13:11 < ws-client> ``sv_map openFNGBeat64`` 13:11 < ws-client> and to add map vote ``add_vote "ctf1" "sv_map ctf1"`` for ctf1 for example 13:11 < ws-client> @milkeeycat idk i dont use cmake 13:12 < bridge> oh 13:12 < bridge> what u use :thonk: 13:12 < ws-client> https://github.com/ChillerDragon/kickstart.nvim/blob/ae9dc893373ce2deaebd336ee806b1147c2e2074/init.lua#L542 13:12 < bridge> that under the sv gametype correct? 13:12 < ws-client> @xv.15 yes or above 13:12 < ws-client> in a new line 13:12 < bridge> how do u compile ddnet 13:12 < bridge> ? 13:13 < ws-client> with cmake 13:13 < ws-client> but this is for vim lsp 13:13 < bridge> did that but now the server cant run probably because openfngbeat64 isnt actually the map name 13:13 < ws-client> not compile 13:13 < ws-client> xd @xv.15 13:13 < bridge> can u gimme the cmake command 13:13 < bridge> u use 13:13 < ws-client> thats not related to my vim 13:14 < ws-client> but i use this ``mkdir build && cd build && cmake .. && make -j69`` 13:14 < ws-client> which i aliased as bam ofc 13:14 < ws-client> ``alias bam='mkdir build && cd build && cmake .. && make -j69'`` 13:15 < bridge> chiller after adding a map called openFNGBeat64 in my map folder it will work fine right? 13:15 < ws-client> eh yes @xv.15 :D 13:15 < ws-client> you already have the map right? 13:15 < ws-client> how is it called 13:15 < bridge> finally done 13:15 < ws-client> pro 13:15 < bridge> thansk chillerdragon for the viruses 13:15 < ws-client> thanks for the bitcoin 13:16 < bridge> enjoy 13:16 < ws-client> you having a ictf lan party or what are you doin? 13:17 < bridge> having ictf lan party lol 13:18 < bridge> chillerdragon: ur clangd tries to find the file cmake makes 13:19 < bridge> invite us too!! 13:19 < bridge> its lan 13:19 < bridge> how do i do that 13:19 < bridge> i cnat ipforward cuz 5g 13:19 < bridge> chillerdragon: if u use dis `cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..` ur lsp will work 13:22 < ws-client> milk thanks vim overlord lemme try 13:23 < ws-client> fk my lua has buggos 13:24 < ws-client> it works very pog! 13:24 < ws-client> ima add that flag to my bashrc c: 13:24 < bridge> noice 13:25 < ws-client> @milkeeycat thanks prolly saved me like 3 hours of figuring that shit out my self xd 13:26 < bridge> i had the same problem with clangdeez nuts first time when i tried to write c++ code xD 13:26 < ws-client> ur such a primate 13:26 < ws-client> the forced deez nuts jokes xd 13:27 < ws-client> i am still waiting for him to mention teeworlds on stream 13:27 < ws-client> it should happen any second now 13:27 < bridge> any helix users? :justatest: 13:27 < ws-client> wats dat 13:27 < bridge> code editor 13:28 < bridge> https://helix-editor.com/ 13:30 < ws-client> Im lost without heinrichs dissector 13:30 < ws-client> anyone wanna decipher some tw packet ? :D 13:30 < ws-client> as fun challenge 13:30 < ws-client> 13:30 < ws-client> https://twnet.zillyhuhn.com/?d=08+04+02+9c+6b+cb+da+42+0e+07+06+00+40+27+6e+61+6d+65+6c+65+73+73+20+74+65+65+27+20+65+6e+74+65+72+65+64+20+61+6e+64+20+6a+6f+69+6e+65+64+20+74+68+65+20+67+61+6d+65+00+06+0b+0f+9a+51+9b+51+b3+92+ad+b9+0b+9f+01+00+03+00+06+00+00+00+00+00+14+00+00+01+0b+00+da+c8+f0+91+02+cc+b0+d0+b1+02+da+e8+d8+f0+0b+ff+ff+fb+f7+0f+ff+fd+fb+f7+0f+ff+fd+fb+f7+0f+ff+ff+fb+f7+0f+40+de+e4+d0+b1+03+ff+ad+98+a1+01+ff+fd+fb+f7+0f+ff+fd+fb+ 13:30 < ws-client> f7+0f+ff+fd+fb+f7+0f+ff+ff+fb+f7+0f+00+80+fe+07+80+fe+07+0a+00+01+00+00+00+00&v=6 13:30 < ws-client> its teeworlds 0.6.5 13:30 < ws-client> and the parser does seem to parse it wrong 13:30 < bridge> pass 13:32 < bridge> Looks nice might try later ve been looking for a vscode replacement 13:32 < bridge> can i paste there snapshot bytes from demo? :thonk: 13:33 < bridge> neovim :gigachad: 13:34 < bridge> I have made myself a good config but I'm not comfortable yet 13:34 < bridge> I am always switching back and forth between nvim and code 13:35 < bridge> i closed vscode one day and never opened it since 13:35 < ws-client> @milkeeycat i don't parse snaps yet and also it needs full packets not only parts 13:35 < bridge> ah gg 13:35 < ws-client> but soon(tm) 13:35 < ws-client> yes 15:46 < bridge> Ggwp chillerdragon nice bait 15:47 < bridge> I've been very happy with my nvim setup, I add keybindings as I need them so it's easier to keep in mind 15:50 < bridge> glad you liked it, i remember you beeing unsure about using it or not :D 15:50 < bridge> glad you enjoying it, i remember you beeing unsure about using it or not :D 15:50 < bridge> One thing I've been missing is multiple cursors, but instead of getting a very complex extension that implements it, I've been trying to get used to the vim way 15:52 < bridge> can you give an example of when you'd use multiple cursors? 15:52 < bridge> multiple cursors? where you edit 20+ loc at the same time? 15:53 < bridge> i've only ever used it to comment out stuff in vsc without using /**/, but even then, you can just g[lines]/ in vim to do that (i think?) atleast i dont remember binding that myself 15:54 < bridge> multiple cursors? where you edit multiple loc at the same time? 15:55 < bridge> I comment lines using ctrl + v, select lines u need, shift + i, `//` :owo: 15:55 < bridge> i avoid visual as much as possible :kek: 15:55 < bridge> so i keybinded everything to normal 15:57 < bridge> i've used multiline cursor in jsonmodels kekw 15:57 < bridge> °-° 15:57 < bridge> <0xdeen> https://cdn.discordapp.com/attachments/293493549758939136/1214949986622513274/Screenshot_2024-03-06_at_15.57.25.png?ex=65faf959&is=65e88459&hm=1e0349d3b38678cac56cfea054752b2647383fc09d9a877a97230ba83ad00036& 15:57 < bridge> its kinda useful with help of ctrl+arrows 15:58 < bridge> an email starting with "It's not scam" is always a good sign, what are airdrop projects? crypto stuff? 15:58 < bridge> (thats what google said) 15:59 < bridge> <0xdeen> I too would start my scam mails with "it's not scam" and then ask for 10 minutes access to my Github account 😄 15:59 < bridge> <0xdeen> https://cdn.discordapp.com/attachments/293493549758939136/1214950598353358878/Screenshot_2024-03-06_at_15.59.34.png?ex=65faf9eb&is=65e884eb&hm=45896acef2210346c7794c216a017873ee19950723b38f2dea9cf0fb3bdb524d& 16:00 < bridge> :kek: 16:00 < bridge> https://en.wikipedia.org/wiki/Airdrop_(cryptocurrency) 16:00 < bridge> ye found that aswell 16:00 < bridge> i mean hey, its only 10 minutes! 16:01 < bridge> ANd you could get 1200 yuan! 16:01 < bridge> <0xdeen> maybe it's related to some Nim code I wrote a while ago, but I don't think I even care enough to check if this is a real scam or a crypto-scam 16:01 < bridge> its both ig xd 16:01 < bridge> It literally said that it's not scam 16:03 < bridge> fair enough, ey deen, mind redirecting that e-mail to me? i need that 1200 yuan, my coffee machine just broke 16:03 < bridge> fair enough, hey deen, mind redirecting that e-mail to me? i need that 1200 yuan, my coffee machine just broke 16:04 < bridge> Ez 1200 to donate for ddnet :santatrollet: 16:04 < bridge> Ez 1200 yuan to donate for ddnet :santatrollet: 16:05 < bridge> 153€, not bad 16:05 < bridge> but still, with a non-zero probability of getting scammed, working some hours to get 153€ sounds better 16:05 < bridge> well if you have an ethereum wallet already you could just claim it, there is no way they can get to your private key from something signed with your public key 16:06 < bridge> where does it say "signed with the **public** key"? 16:07 < bridge> well if you have an ethereum wallet already you could just claim it, there is no way they can get to your private key from something signed with your private key 16:07 < bridge> fixed 😄 16:07 < bridge> signing something you don't understand with your private key sounds very dangerous 16:08 < bridge> Hm, doesn't sound particularly dangerous to me, atleast not in the sense that it might compromise your security 16:09 < bridge> It might be compromising legally 16:10 < bridge> compromising your current or future funds on this address 16:15 < bridge> I was talking about your github ssh private key, but even if it was your wallet private key, I don't understand at all how signing a message can compromise anything 16:16 < bridge> What sort of ethereum signed message are you thinking about that could compromise your current and future funds on this address? 16:17 < bridge> github ssh key is even worrse 16:17 < bridge> potentially free ssh auth for ddnet.org 16:18 < bridge> Ok you have to elaborate on this attack because it breaks everything I know about asymmetric cryptography 16:18 < bridge> i checked and my account can receive 5000 flt 16:18 < bridge> but the ssh thing looks iffy 16:19 < bridge> btw, they didn't implement it like that, I misunderstood their script. They give you an ethereum private key that is encrypted using your github PUBLIC key it seems, then with that private key you sign the address you want the FLT in 16:19 < bridge> btw the starknet drop is real 16:19 < bridge> i know cuz i claimed that one 16:19 < bridge> and got a substanciable amount of cash 16:19 < bridge> i will not disclose kek 16:21 < bridge> If I got in any of those drops I would just immediately sell it btw, these shitcoins are usually only worth something right after they are allowed to be traded 16:21 < bridge> ill just say its more than the ddnet funding of this year 16:22 < bridge> :justatest: 16:22 < bridge> thats what i did 16:29 < bridge> @heinrich5991 pls send elaboration, I have banks to hack 16:30 < bridge> sec 16:38 < bridge> ddnet nfts when :gigachad: 16:40 < bridge> I want the bluekitty nft 16:40 < bridge> twinbop 16:40 < bridge> I would by all the twinbops my wallet allows me 16:40 < bridge> :owo: 16:52 < bridge> Im paying all my money for twerking twinbop nft 16:53 < bridge> I will try to parse it using teeframe later 16:56 < bridge> (me wanting some mermydon_twinbop2) 17:28 < bridge> nixos doesn't do PIE by default 😮 https://github.com/NixOS/nixpkgs/pull/252310 17:29 < bridge> that seems super weird. it's good to see that it might get fixed in the future though 17:42 < bridge> nixOS's approach is to focus on certain compiler flags to enhance security, i think it was just preference tbh, maybe scrump knows more about it 17:42 < bridge> `https://nixos.wiki/wiki/Systemd_Hardening` 17:42 < bridge> nixOS's approach is to focus on certain compiler flags to enhance security, i think it was just preference tbh, maybe scrump knows more about it 17:42 < bridge> https://nixos.wiki/wiki/Systemd_Hardening 17:43 < bridge> nixOS's approach is to focus on certain compiler flags to enhance security, i think it was just preference tbh, maybe scrump knows more about it 18:16 < bridge> <0xdeen> I went through the less shady-seeming steps, then they asked me to put my private key into some 500 MB script downloaded from random addresses with their "trust-me-bro-we-will-only-hash-your-private-key" 18:16 < bridge> <0xdeen> Further proof that it's a scam (and I wasted time), they could just have asked me to upload a file or something on my github profile to prove who I am 18:18 < bridge> https://github.com/fluencelabs/dev-rewards/blob/main/proof-sh/proof.sh this is the script I was looking at 18:19 < bridge> <0xdeen> The sha3sum is some random binary for example 18:21 < bridge> Well imo it looks like far too much detail put into it to be a true scam, it'll just be a worthless coin 18:22 < bridge> But pretend I did not say that, it might still turn out to be a scam then you'll be mad at me 😄 18:23 < bridge> and u wont be an admin anymore :santatrollet: 18:23 < bridge> and u wont be admin anymore :santatrollet: 18:25 < bridge> Also this is not web3 hype, smartcontract magic 18:26 < bridge> Far too manual for zoomer crypto scammers 18:28 < bridge> Anyway, please ignore everything I said and just go with your own gut feeling 18:43 < bridge> <0xdeen> Took me 5 tries with 50 € wasted on fees and reverts 😄 Let's see if something ever arrives 18:44 < bridge> <0xdeen> Every time I use crypto I hate it more 18:53 < bridge> #metoo, especially ethereum and tokens based on the ethereum chain 18:53 < bridge> literally nothing good has ever come out of it 18:56 < bridge> LOL one of my disks died in raid1 and I did not even notice 18:56 < bridge> On the 14th of June... 19:06 < bridge> in 3 months 19:11 < bridge> could have asked xd 19:22 < bridge> 2023... 19:22 < bridge> I don't even know if this server is able to restart, because it has an encrypted disk, god what a horrible idea to have an encrypted disk on a server 19:36 < bridge> nice raid 19:37 < bridge> I really need to set up monitoring next time, so stupid of me 19:37 < bridge> and the remaining disk is like on the verge of death 19:37 < bridge> how u know if disk is working? 19:37 < bridge> wym? 19:38 < bridge> my hetzner vps 19:38 < bridge> well dedicated 19:38 < bridge> you periodically check SMART 19:38 < bridge> has a raid 19:38 < bridge> ``` 19:38 < bridge> root@debian-ryzen ~ # fdisk -l 19:38 < bridge> Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors 19:38 < bridge> Disk model: SAMSUNG MZVL2512HCJQ-00B00 19:38 < bridge> Units: sectors of 1 * 512 = 512 bytes 19:38 < bridge> Sector size (logical/physical): 512 bytes / 512 bytes 19:38 < bridge> I/O size (minimum/optimal): 512 bytes / 512 bytes 19:38 < bridge> Disklabel type: dos 19:38 < bridge> Disk identifier: 0x6a118ee3 19:38 < bridge> 19:38 < bridge> Device Boot Start End Sectors Size Id Type 19:38 < bridge> /dev/nvme0n1p1 2048 67110911 67108864 32G fd Linux raid autodetect 19:38 < bridge> /dev/nvme0n1p2 67110912 69208063 2097152 1G fd Linux raid autodetect 19:38 < bridge> /dev/nvme0n1p3 69208064 1000213167 931005104 443.9G fd Linux raid autodetect 19:38 < bridge> 19:38 < bridge> 19:38 < bridge> Disk /dev/nvme1n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors 19:38 < bridge> Disk model: SAMSUNG MZVL2512HCJQ-00B00 19:38 < bridge> Units: sectors of 1 * 512 = 512 bytes 19:38 < bridge> Sector size (logical/physical): 512 bytes / 512 bytes 19:38 < bridge> I/O size (minimum/optimal): 512 bytes / 512 bytes 19:38 < bridge> Disklabel type: dos 19:38 < bridge> Disk identifier: 0x3aebf455 19:38 < bridge> 19:38 < bridge> Device Boot Start End Sectors Size Id Type 19:39 < bridge> /dev/nvme1n1p1 2048 67110911 67108864 32G fd Linux raid autodetect 19:39 < bridge> /dev/nvme1n1p2 67110912 69208063 2097152 1G fd Linux raid autodetect 19:39 < bridge> /dev/nvme1n1p3 69208064 1000213167 931005104 443.9G fd Linux raid autodetect 19:39 < bridge> 19:39 < bridge> 19:39 < bridge> Disk /dev/md1: 1022 MiB, 1071644672 bytes, 2093056 sectors 19:39 < bridge> also dmesg, there are lots of signs before a disk completely fails 19:39 < bridge> check `smartctl` 19:39 < bridge> dmesg is full of ufw spam xd 19:39 < bridge> i dont seem to have smartctl 19:39 < bridge> smartmontools 19:39 < bridge> grep for `ata[0-9]` in dmesg and it'd take you around to the relevant stuff 19:40 < bridge> ok installing smart on my gentoo too 19:41 < bridge> server seems ok 19:42 < bridge> @ryozuki did you run the selftest? 19:45 < bridge> you should probably configure notifications from smartd unlike me btw 😄 19:45 < bridge> how 19:45 < bridge> sudo smartctl -t short /dev/nvme1 19:45 < bridge> `smartctl -t short ` for the short selftest yeah 19:45 < bridge> how to know when it finished 19:46 < bridge> ❯ sudo smartctl -H /dev/nvme1 19:46 < bridge> smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.6.13-gentoo+] (local build) 19:46 < bridge> Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org 19:46 < bridge> 19:46 < bridge> === START OF SMART DATA SECTION === 19:46 < bridge> SMART overall-health self-assessment test result: PASSED 19:46 < bridge> You can check `smartctl -a` near the bottom, but the short test is very short 😄 19:47 < bridge> or `smartctl -l selftest ` to see just that 19:48 < bridge> Where can I see the whole playtime of a name again? 19:49 < bridge> Do we provide this information? I thought it was only available on a day by day basis 19:49 < bridge> (which you can sum up yourself) 19:49 < bridge> https://ddnet.org/players/?json2=Learath2 19:50 < bridge> We only seem to provide last 365 days 19:50 < bridge> I think I saw someone somehow calculating it with some SQL query if my brain isn't fried yet 19:51 < bridge> With a SQL query you can only sum up the time for all their finishes I guess 19:51 < bridge> Not what I need tho 19:52 < bridge> Something like `SELECT SUM(Time) FROM record_race WHERE Name="Learath2" GROUP BY Name` 19:52 < bridge> Is all data beyond 365 days deleted? 19:52 < bridge> actually that query looks sus 😄 19:52 < bridge> That would be pretty disappointing 19:52 < bridge> No it's not, but it's not in parsed format. We use the masterserver log for it 19:53 < bridge> Is it publicly accessible? 19:53 < bridge> You can get all of that and use a streaming parser, I think @ryozuki had one in Rust 19:53 < bridge> https://github.com/edg-l/teemasterparser 19:53 < bridge> i forgor about it 19:54 < bridge> @teero777 don't make the mistake of thinking you can uncompress them, they are massive files 19:54 < bridge> They just compress very well 19:54 < bridge> I have ram 19:55 < bridge> Aka. a lot of swap space xdd 19:57 < bridge> https://ddnet.org/stats/master/ I only see them after 2021. Where's the rest? 19:58 < bridge> Sadly the past is lost, the old non-http masters didn't keep this kind of information (nor could they) 19:58 < bridge> I think there was a 3rd party that kept a bit of it but idk how accurate their data is 19:58 < bridge> :banhammer: 20:07 < bridge> I would still not try to uncompress the entire thing in one go, just one of those 16M `.tar.zstd` files unpacks to 12G 20:08 < bridge> That's a compression ratio of 750:1 😄 20:08 < bridge> ChillerDragon: when any allow-origin? 20:08 < bridge> 20:08 < bridge> `index.html:1 Access to image at 'https://skins.zillyhuhn.com/skin/uhd/greensward.png' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.` 20:09 < bridge> @teero777 read https://edgarluque.com/blog/zstd-streaming-in-rust/ 20:09 < bridge> or 99.96% compression 😛 20:09 < bridge> Okay ima go zipbomb myself 20:09 < bridge> i have 32gb ram and i ran out 20:09 < bridge> im parse them all, you can ask some questions 😄 20:10 < bridge> im parsed them all, you can ask some questions 😄 20:10 < bridge> What? 20:10 < bridge> What time does the name Teero have 20:10 < bridge> Online timd 20:10 < bridge> Online time 20:11 < bridge> And the name "hidebook" 20:12 < bridge> It seems my hard drive is dying, everything freezes, wait a minute) 20:12 < bridge> :owo: 20:12 < bridge> 💀 20:12 < bridge> cats jump on the system unit, from there onto the shelf for a week, maybe this is the reason 💀💀💀 20:12 < bridge> cats jump on the PC, from there onto the shelf for a week, maybe this is the reason 💀💀💀 20:14 < bridge> https://tee.skin/api/players/stats/get?name=Teero 20:15 < bridge> Thats not correct xdddd 20:16 < bridge> I have >5k hours. Not 900 xd 20:16 < bridge> From when is that data? 20:17 < bridge> from 2022, 11, 19 20:17 < bridge> and only where you play > 5hour on using same skin 20:17 < bridge> Huh? 20:17 < bridge> Why? 20:18 < bridge> Go reparse and remove skin condition xdd 20:18 < bridge> pls 20:19 < bridge> I get the following with my data. 20:19 < bridge> 20:19 < bridge> Teero: 2282 hours 20:19 < bridge> hidebook: 3183 hours 20:19 < bridge> Total: 5466 hours 20:21 < bridge> skin priority project xD 20:21 < bridge> Still off by a few thousand hours xddd 20:22 < bridge> And I was just curious too I'm not teero xd 20:22 < bridge> Even on steam I have 1.5k hours and I haven't played on steam for ~2.5years 20:22 < bridge> It's accurate, data is since 2021-05-18. 20:22 < bridge> @hidebook is my dummy btw 20:22 < bridge> Huh 20:23 < bridge> oke I started in 2019 on gores 20:23 < bridge> ``` 20:23 < bridge> ┌─client_skin────────┬─client_name─┬─client_playtime_total_sec─┐ 20:23 < bridge> │ greyfox │ Teero │ 1338835 │ 20:23 < bridge> │ nanami │ Teero │ 418895 │ 20:23 < bridge> │ twinbop │ Teero │ 281705 │ 20:23 < bridge> │ napoleon │ Teero │ 153260 │ 20:23 < bridge> │ Master_of_disguise │ Teero │ 145535 │ 20:23 < bridge> │ greensward │ Teero │ 139650 │ 20:23 < bridge> │ mermyfox │ Teero │ 128055 │ 20:24 < bridge> │ nanami_glow │ Teero │ 111390 │ 20:24 < bridge> │ flokes │ Teero │ 75800 │ 20:24 < bridge> │ brownbear │ Teero │ 73805 │ 20:24 < bridge> └────────────────────┴─────────────┴───────────────────────────┘ 20:24 < bridge> ``` 20:24 < bridge> sad that data is lost 20:26 < bridge> ChillerDragon: two bugs we found 20:26 < bridge> ``` 20:26 < bridge> ┌─skin───────────────┬─name──┬─seconds─┐ 20:26 < bridge> │ greyfox │ Teero │ 1338835 │ 20:26 < bridge> │ nanami │ Teero │ 418895 │ 20:26 < bridge> │ twinbop │ Teero │ 281705 │ 20:26 < bridge> │ napoleon │ Teero │ 153260 │ 20:26 < bridge> │ Master_of_disguise │ Teero │ 145535 │ 20:26 < bridge> │ greensward │ Teero │ 139650 │ 20:26 < bridge> │ mermyfox │ Teero │ 128055 │ 20:26 < bridge> │ nanami_glow │ Teero │ 111390 │ 20:26 < bridge> │ flokes │ Teero │ 75800 │ 20:26 < bridge> │ brownbear │ Teero │ 73805 │ 20:26 < bridge> └────────────────────┴───────┴─────────┘ 20:26 < bridge> ``` 20:26 < bridge> I can't believe the absurd cryptsetup script I wrote 8 years ago still works 20:26 < bridge> 1. if you switch from gctf to ictf, you will have both grenade and laser on start 20:26 < bridge> Also rip my 1200 day uptime 20:26 < bridge> 2. if you will be out of ammo, laser will not reload and will behave strangely 20:31 < bridge> can u check my time with skins? :owo: 20:32 < bridge> ``` 20:32 < bridge> ┌─skin────────────┬─name───────┬─seconds─┐ 20:32 < bridge> │ glowfox │ MilkeeyCat │ 1739245 │ 20:32 < bridge> │ whis │ MilkeeyCat │ 1099860 │ 20:32 < bridge> │ pajamafrog │ MilkeeyCat │ 108215 │ 20:32 < bridge> │ santa_brownbear │ MilkeeyCat │ 71915 │ 20:32 < bridge> │ bluekitty │ MilkeeyCat │ 16540 │ 20:32 < bridge> │ default │ MilkeeyCat │ 12815 │ 20:32 < bridge> │ Monopole │ MilkeeyCat │ 8760 │ 20:32 < bridge> │ gigachad │ MilkeeyCat │ 7000 │ 20:32 < bridge> │ tfm_mouse │ MilkeeyCat │ 4070 │ 20:32 < bridge> │ santa_default │ MilkeeyCat │ 2705 │ 20:32 < bridge> └─────────────────┴────────────┴─────────┘ 20:32 < bridge> ``` 20:37 < bridge> Can you check my? :owo: 20:37 < bridge> I wanna check how much time I'm using greyfox :gigachad: 20:37 < bridge> `State : clean, degraded, recovering` now if my other drive doesn't fail until my raid recovers I'll be golden 20:38 < bridge> https://twitter.com/watcherguru/status/1765433105077121514?t=2dwFgMFomr6EkCwAOfGelQ 20:38 < bridge> lol 20:39 < bridge> More accurately, the data was never collected 20:39 < bridge> @matodor can you check mine per skin? 20:39 < bridge> guys wait better api for this) 20:39 < bridge> I'm curious if you caught my testing with some very bizarre skins 20:40 < bridge> check nameless tee 20:47 < bridge> I also need to upgrade this ancient server sometime but I'm scared it'll break the initramfs script I have that decrypts the drives 20:53 < bridge> Oh I'm actually curious if the weird utf8 stuff I tried broke anything in the masterserver logs 20:54 < bridge> The master is written in rust so it should be handling it just fine 21:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1215037970877251604/MilkeeyCat.json?ex=65fb4b4a&is=65e8d64a&hm=65c69506915cf7e5238fdcebf09a3eb5cf2ed3f162ac6ae9da4400920e2fd1d8& 21:47 < bridge> u already sent XD 21:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1215038060631162880/M.json?ex=65fb4b5f&is=65e8d65f&hm=9d38143271c8677654c4afbe5c1459bf5f01110da70763f6efbb470570e52b71& 21:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1215038142726545438/Learath2.json?ex=65fb4b73&is=65e8d673&hm=2cdf8f61db202e09da0f3eeb8ff099a542b96bd999c2136a8e168926a2721d1a& 21:48 < bridge> more details 21:58 < bridge> heh it did catch the weird unicode name 22:36 < bridge> given you have uint8_t, for sure