00:39 < bridge> Reality isn't easy, no recruiters and companies are searching for "diamonds in the rough" 00:39 < bridge> If the recruiter can't find something fast -> you are "senior" they want you out of their inbox, you're the lowest I'd the low 00:39 < bridge> Reality isn't easy, no recruiters and companies are searching for "diamonds in the rough" 00:39 < bridge> If the recruiter can't find something fast -> you are "senior" they want you out of their inbox, you're the lowest of the low 00:41 < bridge> Reality isn't easy, no recruiters and companies are searching for "diamonds in the rough" 00:41 < bridge> If the recruiter can't find something fast for you -> you are "senior" they want you out of their inbox, you're the lowest of the low 00:41 < bridge> It's completely dehumanizing, it's horrible 00:41 < bridge> I have big empathy for anyone in that position 00:43 < bridge> You aren't lazy, it's genuinely hard and draining to submit them 00:44 < bridge> 10 in a day assumes I want to spend a whole day of my free time doing that 00:44 < bridge> Which I don't 01:39 < ws-client> Prs are like missing persons. If they are not merged within 24 hours its a bad sign. 01:41 < bridge> yah 01:42 < bridge> you have to make the recruiter’s job as easy as possible 01:42 < bridge> write yourself a cover letter for each position you are seriously considering 01:42 < bridge> tie it to the skills and experience on your resume wherever possible but tailor it to the job description 01:42 < bridge> and if you get in contact with the recruiter directly that’s usually even better 01:43 < bridge> they don’t wanna sit and sift through applications all day so if you present yourself well and you seem a legitimately good option then your chances are very good 01:43 < bridge> also most places like to see you take initiative for something like that 01:44 < bridge> also best time to apply is usually monday mornings. those are when the postings are the freshest. sometimes they’ll refresh listings for the same positions 03:03 < ws-client> til there is ``strlcpy(3)`` 09:28 < bridge> morning 09:41 < bridge> morning 10:22 < bridge> done 10:25 < bridge> chillerdragon: thanks for the link 10:26 < bridge> ChillerDragon: maybe on the weekend of june 1st/2nd 10:28 < bridge> it'd be nice if the servers were open-sourced. it would allow to continue running kog after kog has died (just like with ddnet or teeworlds) 10:30 < bridge> We are not aiming to let KoG die for now. But I've already said some months ago, in case it will, we will open source some parts of it ( esp. the game-source with some minor modifications ) 10:32 < bridge> please use code blocks instead of screenshots. then we can copy-paste it. try `-1802633287 & 0xffffff` 10:32 < bridge> I already figured it out 10:33 < bridge> . 10:33 < bridge> something like that 10:34 < bridge> tho now Im having sizing problems 10:42 < bridge> which programming language? `array[0] | (array[1] << 8) | (array[2] << 16) | (array[3] << 24)` 10:44 < bridge> very cool ❤️ 10:44 < bridge> (but no one aims to let a project die, not even teeworlds. it just happens at some point. at that point, it's usually too late to start trying to open-source it) 10:45 < bridge> looks good 10:47 < bridge> True that, but I have to remove some parts in order to make it runnable on bare-metal 11:03 < bridge> nice 11:09 < bridge> It works ye, but what if the number is very big, bigger than 128 bits 11:09 < bridge> which programming language? that works indefinitely in python 11:10 < bridge> Rust 😬 11:10 < bridge> print the last byte in binary, padding it to 8 characters using zeros 11:10 < bridge> then print the second to last one, … and finally print the first one 11:11 < bridge> printing it in base 10 requires big int arithmetic AFAICT 11:11 < bridge> oh 11:11 < bridge> base 2 to base 10 requires big int arithmetic 11:11 < bridge> for large numbers 11:12 < bridge> I suggest using something like this: https://docs.rs/byteorder/latest/byteorder/ 11:12 < bridge> Crates for da weak 11:12 < bridge> XD true 11:12 < bridge> Hacking own crapy solution > already made crate 11:13 < bridge> Hacking your hacked solution > RCE 11:13 < bridge> doesn't help for printing converting a base 2 number into a base 10 number 11:13 < bridge> you're going to need to implement big integers then 11:14 < bridge> Multiplying by 2 and adding 1 will be enough ig 11:14 < bridge> you also need modulo 10 11:15 < bridge> unless of course, you store the number as decimal 🤔 11:26 < bridge> ```rust 11:26 < bridge> fn main() { 11:26 < bridge> let num: [u8; 4] = 42u32.to_le_bytes(); 11:26 < bridge> //how to convert these bytes into a number string, how to get "42" 11:26 < bridge> } 11:26 < bridge> ``` 11:26 < bridge> here's what i have, and what i need to get xd 11:27 < bridge> and you need it to work for arbitrary amounts of bytes? 11:27 < bridge> Yep 11:28 < bridge> you could store your number as a vector of `u8` 11:28 < bridge> the digits of your number in base 10 11:28 < bridge> then you can implement `* 2` and `+ 1` on that 11:28 < bridge> and convert your base 2 number into base 10 like that 11:29 < bridge> Ye, that's the only solution i could find 11:29 < bridge> (usually you'd just use a big integer library though) 11:30 < bridge> (that can do arbitrary arithmetics on integers. like normal python integers) 11:30 < bridge> Sooner or later ill need to write it myself, so it decided to write myself from start 😄 11:31 < bridge> why do you need to write it yourself? 11:31 < bridge> sooner or later 11:32 < bridge> U will see :p if i don't give up on the project 12:15 < bridge> What does *2 and + 1 have to do with printing an integer? 12:18 < bridge> ```cpp 12:18 < bridge> char s[] = "01001011"; 12:18 < bridge> int value = 0; 12:18 < bridge> for (int i=0; i< strlen(s); i++) // for every character in the string strlen(s) returns the length of a char array 12:18 < bridge> { 12:18 < bridge> value *= 2; // double the result so far 12:18 < bridge> if (s[i] == '1') value++; //add 1 if needed 12:18 < bridge> } 12:18 < bridge> Serial.println(value); 12:18 < bridge> ``` 12:18 < bridge> I yonked this code from some forum but i can this mafs on string and get what i need. 12:18 < bridge> Doesn't it work? 12:30 < bridge> Oh, you are going from base 2 string to native byte order integer, yeah that's fine 12:30 < bridge> Though it feels to me as if it has nothing to do with your original question 😄 12:31 < bridge> (also doesn't work on arbitrary lengths of s) 12:33 < bridge> (also unless the compiler is smart it keeps calling `strlen` which gives you a nice nasty `O(n^2)` algorithm) 12:36 < bridge> ```rust 12:36 < bridge> fn mul2(s: &str) -> String { 12:36 < bridge> todo!(); 12:36 < bridge> } 12:37 < bridge> 12:37 < bridge> fn inc1(s: &str) -> String { 12:37 < bridge> todo!(); 12:37 < bridge> } 12:37 < bridge> 12:37 < bridge> fn the_function(bytes: &[u8]) -> String { 12:37 < bridge> let mut res = String::new(); 12:37 < bridge> 12:37 < bridge> for byte in bytes { 12:37 < bridge> for i in 0..8 { 12:37 < bridge> let bit = (byte >> i) & 1; 12:37 < bridge> 12:37 < bridge> res = mul2(&res); 12:37 < bridge> 12:37 < bridge> if bit == 1 { 12:37 < bridge> res = inc1(&res); 12:37 < bridge> } 12:37 < bridge> } 12:37 < bridge> } 12:37 < bridge> 12:37 < bridge> res 12:37 < bridge> } 12:37 < bridge> 12:37 < bridge> fn main() { 12:37 < bridge> let num: [u8; 4] = 0x45u32.to_be_bytes(); 12:37 < bridge> 12:37 < bridge> let num_str = the_function(&num); 12:38 < bridge> Do you want a base 2 output? 12:39 < bridge> base 10 12:40 < bridge> This is very wrong then 12:40 < bridge> Even ignoring the fact that you are trying to abuse a string as an arbitrary precision integer 12:41 < bridge> What does it even mean to `mul2` a string? 12:41 < bridge> mul2("22" ) -> "44" 12:41 < bridge> Yeah but how would you do that operation? 12:41 < bridge> You'd have to go back to an int 12:43 < bridge> I'm having trouble telling you which part is wrong because too much of it is wrong. I urge you to go back to the drawing board 12:44 < bridge> Like this method will kind of sort of work for building a base2 string, but then `mul2("1") == "10"` 12:44 < bridge> it will be passing already base 10 string ._. 12:45 < bridge> Then `mul2` is wrong, what does 2 have to do with 10? 12:45 < bridge> that's the magic, i guess :justatest: 12:46 < bridge> Unless I hit my head harder than I thought this morning this is the wrong magic 😄 12:46 < bridge> ill try to make it the way i think it will work and if it wont ill come back 😄 12:46 < bridge> You want `mul10` and `add` not `inc` 12:49 < bridge> Actually there is no way this works without an accumulator, you need 4 bits to get one digit of base10, and you'll need to handle a remainder. It's just far too much work for an algorithm worse than the naive one. Just build your integer from LSB to MSB and reverse it at the end like a normal person? 😄 12:51 < bridge> (or pre-overallocate and write from right to left, there is no sane/cheap way to go the other way around due to how the mafs mafs) 13:44 < bridge> @learath2 as I wrote above, it should work if you build up your integer as a `Vec` base 10 repr 13:45 < bridge> you'll have the digits of your base-10 integer in the array 13:45 < bridge> then implement `mul2` and `add1` like long addition/long multiplication on paper 13:45 < bridge> this way, you can convert a base-2 integer repr to a base-10 integer repr 13:46 < bridge> a normal person would just use a bigint library, but @milkeeycat prefers not to 13:48 < bridge> Ohhh, I see what you are trying to do now, this is still a little insane to me tbh, why go bit by bit? 13:49 < bridge> This algorithm I guess has the benefit of being very easy to read? Other than that it's probably worse both in memory usage and performance 13:50 < bridge> the algorithm has the benefit of being easy to write 13:50 < bridge> since @milkeeycat doesn't want to use a library ^^ 13:51 < bridge> I guess this is the best you can do without having to think of carries 13:52 < bridge> mul2 and add1 already need carrie 13:52 < bridge> mul2 and add1 already need carries 13:54 < bridge> mh, the inc1 will never result in a carry, since it's preceded by a mul2 13:55 < bridge> the mul2 itself can create new digits, but that's not really an issue since you are building the integer MSB to LSB 13:55 < bridge> amazing, I didn't notice 😄 13:56 < bridge> you still need carry. e.g. 18 * 2 is 36 not 26 13:57 < bridge> Ah true, that's where the carry goes, nicely abstracted away 14:59 < bridge> Seemed that all KoG CHN servers shutdown. 15:30 < bridge> The cursor on android version still have problems now (I know this is not important) 17:04 < bridge> im advancing, im learning qutebrowser now 17:05 < bridge> browser with vim motions lets go 17:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1239594293010894929/image.png?ex=66437da6&is=66422c26&hm=4836eaebe94d9e49ab727381c9801b4a96ed796d7b39534eb32e31c608bf5802& 17:05 < bridge> browser with vim like motions lets go 17:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1239594293010894929/image.png?ex=66437da6&is=66422c26&hm=4836eaebe94d9e49ab727381c9801b4a96ed796d7b39534eb32e31c608bf5802& 17:30 < bridge> @milkeeycat https://gmplib.org/ 17:33 < bridge> https://docs.rs/rug/1.24.1/rug/ 17:47 < bridge> hello, i have problem 17:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1239605008832659487/image.png?ex=664387a0&is=66423620&hm=12791269754a8f2459f579a166f513710a8a692616fe5a40c7ff1222629cfd53& 17:48 < bridge> did you properly install all dependencies listed here?: 17:48 < bridge> 17:48 < bridge> https://github.com/ddnet/ddnet?tab=readme-ov-file#dependencies-on-linux--macos 17:49 < bridge> not, im on ubuntu and downloading here https://ddnet.org/downloads/ 17:50 < bridge> ah 17:50 < bridge> which ubuntu version do you use 17:51 < bridge> last 24.04 LTS 17:51 < bridge> but yeah installing the dependencies might help. apparently some ffmpeg stuff is not static linked 17:52 < bridge> Install the dependencies and Hit it with a sudo APT Update && sudo APT upgrade and Check again i guess 17:52 < bridge> ok im try 17:52 < bridge> give me some time 17:52 < bridge> good luck, try 17:54 < bridge> dont helped 17:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1239606722822406155/image.png?ex=66438939&is=664237b9&hm=b8f8ce6fcf43bedab917d1112ec52b0a35b8741cb67329e9245089e01317a8b1& 17:55 < bridge> sudo apt install libmfx1 17:56 < bridge> libmfx1-dev maybe 17:56 < bridge> thx, helped 17:56 < bridge> libmfx-dev 17:57 < bridge> this is helped 17:58 < bridge> :justatest: 17:58 < bridge> wsp gang 17:59 < bridge> how do I open the game im on phone 🔥 18:03 < bridge> #questions 18:03 < bridge> 18:03 < bridge> but i can tell you, there is no current version for android 18:03 < bridge> only ddnet 9.x 18:03 < bridge> and also only android 18:03 < bridge> im on iphone 18:03 < bridge> then u cant open ddnet there 18:04 < bridge> shit 18:04 < bridge> no 18:05 < bridge> why does ddnet even depend on that lib 18:05 < bridge> sounds like it's not even directly related to ffmpeg 18:40 < bridge> the dependencies should not be needed for regular playing, only for development 18:49 < bridge> -dev is never needed to run a program 18:50 < bridge> hmm. it seems their system was a bit broken. we don't depend on libmfx.so.1: 18:50 < bridge> ```sh 18:50 < bridge> $ objdump -p DDNet | grep NEEDED 18:50 < bridge> NEEDED libfreetype.so.6 18:50 < bridge> NEEDED libSDL2-2.0.so.0 18:50 < bridge> NEEDED libdl.so.2 18:50 < bridge> NEEDED libvulkan.so.1 18:50 < bridge> NEEDED libGL.so.1 18:50 < bridge> NEEDED libnotify.so.4 18:50 < bridge> NEEDED libgdk_pixbuf-2.0.so.0 18:50 < bridge> NEEDED libgio-2.0.so.0 18:50 < bridge> NEEDED libgobject-2.0.so.0 18:50 < bridge> NEEDED libglib-2.0.so.0 18:50 < bridge> NEEDED libcurl.so.4 18:50 < bridge> NEEDED librt.so.1 18:50 < bridge> NEEDED libm.so.6 18:50 < bridge> NEEDED libpthread.so.0 18:50 < bridge> NEEDED libc.so.6 18:50 < bridge> NEEDED ld-linux-x86-64.so.2 18:50 < bridge> ``` 18:50 < bridge> so it must be pulled in by the system libraries 18:50 < bridge> which shouldn't have these dependency problems 18:51 < bridge> (-dev contains headers etc.) 18:55 < bridge> ah 18:59 < bridge> okay who packaged ddnet on flathub :kek: 18:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1239623005169123339/image.png?ex=66439863&is=664246e3&hm=1440d459cbd4ca7ba7e29649f7cc48843e7d9f6cd1b90c7f95fd8f697b577020& 19:01 < bridge> only 4*?? 19:01 < bridge> xd 19:02 < bridge> https://github.com/flathub/tw.ddnet.ddnet/issues/64 19:02 < bridge> xdd 19:02 < bridge> he clearly played it before packaging xD 19:03 < bridge> https://github.com/flathub/tw.ddnet.ddnet/issues/39 21:11 < bridge> nice demos: https://openai.com/index/hello-gpt-4o/ 22:05 < bridge> https://github.com/MilkeeyCat/milklang/blob/main/src/parser/expr/int_repr.rs that's what i ended up with(if you write in Rust, you may have a heart attack :justatest: ) 22:06 < bridge> permalink (press 'y' anywhere on github): https://github.com/MilkeeyCat/milklang/blob/b3e16e0197d32cf6aeb3435fa282774b41bd0395/src/parser/expr/int_repr.rs 22:35 < bridge> this is reportable