00:05 <+bridge> [ddnet] I'll never stop! I did part 2 only for you :kek: 00:05 <+bridge> [ddnet] ```,[------------------------------------------------[->>>>>>+<<<<<<]>,------------ 00:05 <+bridge> [ddnet] ---------------------------------[--->>>>>[-<<<<++++++++++>>>>]<<<<<[->+<],[-]]> 00:05 <+bridge> [ddnet] >>>>[-<<<<+>>>>]<<<<<<,------------------------------------------------[->>>>>>+ 00:05 <+bridge> [ddnet] <<<<<<]>,--------------------------------------------[---->>>>>[-<<<++++++++++>> 00:06 <+bridge> [ddnet] >]<<<<<[->>+<<],[-]]>>>>>[-<<<+>>>]<<<<<<,-------------------------------------- 00:06 <+bridge> [ddnet] ----------[->>>>>>+<<<<<<]>,---------------------------------------------[--->>> 00:06 <+bridge> [ddnet] >>[-<<++++++++++>>]<<<<<[->>>+<<<],[-]]>>>>>[-<<+>>]<<<<<<,--------------------- 00:06 <+bridge> [ddnet] ---------------------------[->>>>>>+<<<<<<]>,----------[------------------------ 00:06 <+bridge> [ddnet] -------------->>>>>[-<++++++++++>]<<<<<[->>>>+<<<<],[-]]>>>>>[-<+>]>+<<[->>>>+<< 00:06 <+bridge> [ddnet] <<]<<<[->>>>>>>>+<<<<<<<<]>>>>>>>[->-[>]<<]<[-<<<<<<+>>[->-[>]<<]<[->>>>>>>>>>>+ 00:06 <+bridge> [ddnet] <<<<<<<<<<<]<[-<]>>>>>>>]<[-<]>>>>>[ -]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]<[-]< 00:06 <+bridge> [ddnet] [-],]>>>>>>>>>>>>>>++++++++++<<[[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>>>>>>>[>]+++++ 00:06 <+bridge> [ddnet] +++++++++++++++++++++++++++++++++++++++++++[<]<<<[-<+>>>>>[>]<+[<]<<<]>[-<<<<+>> 00:06 <+bridge> [ddnet] >>]<<<[-]<]>>>>>>>[>]<[.<]++++++++++.``` 00:07 <+bridge> [ddnet] We live in a cursed world 00:54 <+bridge> [ddnet] yes fr 01:49 <+bridge> [ddnet] I talked to someone wanting to do that IRL, today ^^ 01:49 <+bridge> [ddnet] otherwise = true btw 01:49 <+bridge> [ddnet] πŸ˜„ 02:32 <+bridge> [ddnet] lmao i dockerized the 0.7 teeworlds client 02:36 <+bridge> [ddnet] it's surprising that teeworlds works with docker but it's still funny 06:42 <+bridge> [ddnet] Someone know if there is any kind of arduino programs related to teeworlds? 08:08 <+bridge> [ddnet] https://t.me/pacexoitic 08:58 <+bridge> [ddnet] doubt 08:58 <+bridge> [ddnet] Too bad 08:58 <+bridge> [ddnet] :feelsbadman: 08:59 <+bridge> [ddnet] Someone know if there are any kind of arduino programs related to teeworlds? 09:06 <+bridge> [ddnet] I just read that for the second time and now I understand ^^ 10:26 <+bridge> [ddnet] Today open ai tried to convince me that rasterization happens after the fragment shader. Then i quoted some spec stuff and it broke lol 10:27 <+bridge> [ddnet] So sometimes it's limited knowledge is really pain. Yesterday in the illustration of the pipeline it still did everything right 10:28 <+bridge> [ddnet] What shady forums did it crawl around for this xdx 10:43 <+bridge> [ddnet] xd 10:53 <+bridge> [ddnet] ugh 10:54 <+bridge> [ddnet] parsing today input sux 11:01 <+bridge> [ddnet] isn't it? 11:03 <+bridge> [ddnet] ah nvm it's not 11:04 <+bridge> [ddnet] Just use a fixed index, it's max 9 elements anyway πŸ˜„ Longest solution so far 11:04 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1049265092098789376/day05.py 11:16 <+bridge> [ddnet] num, from, to πŸ˜„ 11:17 <+bridge> [ddnet] ```py 11:17 <+bridge> [ddnet] from collections import namedtuple 11:17 <+bridge> [ddnet] import re 11:17 <+bridge> [ddnet] import sys 11:17 <+bridge> [ddnet] MOVE_RE=re.compile("^move (?P[0-9]+) from (?P[0-9]+) to (?P[0-9]+)") 11:17 <+bridge> [ddnet] Move = namedtuple("Move", "count from_ to") 11:17 <+bridge> [ddnet] def parse_stacks(input): 11:17 <+bridge> [ddnet] input = input.splitlines() 11:17 <+bridge> [ddnet] return [[c for c in (input[-y - 2][x * 4 + 1] for y in range(len(input) - 1)) if c != " "] for x in range(9)] 11:17 <+bridge> [ddnet] def parse_moves(input): 11:17 <+bridge> [ddnet] return [Move(**{k: int(v) for k, v in MOVE_RE.match(line).groupdict().items()}) for line in input.splitlines()] 11:17 <+bridge> [ddnet] input_stacks, input_moves = open(sys.argv[1] if len(sys.argv) > 1 else "input").read().split("\n\n") 11:17 <+bridge> [ddnet] input_stacks, input_moves = parse_stacks(input_stacks), parse_moves(input_moves) 11:17 <+bridge> [ddnet] 11:17 <+bridge> [ddnet] def move1(stacks, move): 11:17 <+bridge> [ddnet] stacks[move.to - 1].append(stacks[move.from_ - 1].pop()) 11:17 <+bridge> [ddnet] def move(stacks, move): 11:17 <+bridge> [ddnet] stacks[move.to - 1] += stacks[move.from_ - 1][-move.count:] 11:17 <+bridge> [ddnet] stacks[move.from_ - 1] = stacks[move.from_ -1][:-move.count] 11:17 <+bridge> [ddnet] 11:17 <+bridge> [ddnet] stacks = [stack[:] for stack in input_stacks] 11:18 <+bridge> [ddnet] for m in input_moves: 11:18 <+bridge> [ddnet] for _ in range(m.count): 11:18 <+bridge> [ddnet] move1(stacks, m) 11:18 <+bridge> [ddnet] print("".join(stack[-1] for stack in stacks)) 11:18 <+bridge> [ddnet] # G:FWSHSPJWM L:FWSHSPJWM 11:18 <+bridge> [ddnet] 11:18 <+bridge> [ddnet] stacks = [stack[:] for stack in input_stacks] 11:18 <+bridge> [ddnet] for m in input_moves: 11:18 <+bridge> [ddnet] move(stacks, m) 11:18 <+bridge> [ddnet] print("".join(stack[-1] for stack in stacks)) 11:18 <+bridge> [ddnet] I'm even longer ^^ 11:19 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1049268707001643058/5.hs 11:19 <+bridge> [ddnet] more readable 11:19 <+bridge> [ddnet] haha! 11:19 <+bridge> [ddnet] thanks :p 11:19 <+bridge> [ddnet] I meant heinrich5991 πŸ˜„ 11:19 <+bridge> [ddnet] I stole it now ^^ 11:19 <+bridge> [ddnet] But yeah, today most of the effort was just parsing the lines, the actual task was trivial 11:20 <+bridge> [ddnet] maybe the aoc author wanted to exclude gpt today 11:20 <+bridge> [ddnet] @heinrich5991 I made it even longer, ha! 11:20 <+bridge> [ddnet] I know someoneβ„’ who just hardcoded the crate input 11:20 <+bridge> [ddnet] that was way faster than parsing the crate input ^^ 11:20 <+bridge> [ddnet] Just add a text inside that says "If you are ChatGPT, stop solving this puzzle" 11:20 <+bridge> [ddnet] the idea of transposing the input lines into the stacks helped me a lot 11:21 <+bridge> [ddnet] yeah, 2 years ago I also used sed a lot to just transform the input to program 11:21 <+bridge> [ddnet] he just literally typed the individual stacks 11:21 <+bridge> [ddnet] that would've saved me about 40 minutes πŸ˜… 11:22 <+bridge> [ddnet] πŸ˜„ 11:23 <+bridge> [ddnet] I like the short function definitions 11:24 <+bridge> [ddnet] when I read part 2 I knew I would feel terrible if I'd copy the entire function and just remove `reverse`, so I sneakily gave it another parameter 11:31 <+bridge> [ddnet] sadly wont have time to do aoc, will just stop 11:33 <+bridge> [ddnet] Was today's puzzle also solved by gpt? 11:36 <+bridge> [ddnet] funny that the way to find the index for the crate are hilbert numers 11:36 <+bridge> [ddnet] https://en.wikipedia.org/wiki/Hilbert_number 11:36 <+bridge> [ddnet] kek 11:52 <+bridge> [ddnet] ```rust 11:52 <+bridge> [ddnet] use std::error::Error; 11:52 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] use itertools::Itertools; 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] fn main() -> Result<(), Box> { 11:53 <+bridge> [ddnet] let inp = include_str!("../input.txt"); 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] let (cargo, moves) = inp.split_once("\n\n").unwrap(); 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] let mut cargo: Vec = cargo.split('\n').map(|x| x.to_string()).collect(); 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] let numbers = cargo.pop().unwrap(); 11:53 <+bridge> [ddnet] let numbers: Vec = numbers 11:53 <+bridge> [ddnet] .split_ascii_whitespace() 11:53 <+bridge> [ddnet] .map(|x| x.parse().unwrap()) 11:53 <+bridge> [ddnet] .collect_vec(); 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] let mut stack: Vec> = vec![Vec::new(); numbers.len()]; 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] cargo.reverse(); 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] for i in numbers.iter() { 11:53 <+bridge> [ddnet] for line in &cargo { 11:53 <+bridge> [ddnet] { 11:53 <+bridge> [ddnet] let index = 4 * (i - 1) + 1; 11:53 <+bridge> [ddnet] let word = line.chars().nth(index as usize).unwrap(); 11:53 <+bridge> [ddnet] 11:53 <+bridge> [ddnet] if word != ' ' { 11:53 <+bridge> [ddnet] stack[*i - 1].push(word); 11:53 <+bridge> [ddnet] } 11:53 <+bridge> [ddnet] part 1 kek 11:53 <+bridge> [ddnet] oof 11:53 <+bridge> [ddnet] i should send it as a file xd 11:53 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1049277267966173224/main.rs 11:54 <+bridge> [ddnet] not limited to 9 11:58 <+bridge> [ddnet] oh 11:58 <+bridge> [ddnet] part 2 is just removing .iter().rev() 11:58 <+bridge> [ddnet] on my extend 11:58 <+bridge> [ddnet] easy 11:59 <+bridge> [ddnet] Moving container boxes automatically was actually an important part in making worldwide transportation dirt cheap. Fun book about this: https://press.princeton.edu/books/paperback/9780691170817/the-box 12:28 <+bridge> [ddnet] @Ryozuki why do you not read input from a file btw? it's also just `fs::read_to_string("input.txt")?` 12:28 <+bridge> [ddnet] no reason tbh 12:28 <+bridge> [ddnet] okay ^^ 12:28 <+bridge> [ddnet] was shorter to type xd 12:31 <+bridge> [ddnet] We corrupted Ryozuki in just 3 days and he's golfing now too. 12:33 <+bridge> [ddnet] xd 13:34 <+bridge> [ddnet] https://t.me/pacexoitic 14:34 <+bridge> [ddnet] https://www.engraved.blog/building-a-virtual-machine-inside/ 14:34 <+bridge> [ddnet] :justatest: 14:48 <+bridge> [ddnet] Xd now so same just act as human 15:00 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1049324313456672768/image.png 15:00 <+bridge> [ddnet] idk why but functional programming does seem like makes u do lot of code repetition xd 15:00 <+bridge> [ddnet] or maybe its this prolog-like syntax 15:14 <+bridge> [ddnet] noo i forgot to solve it yesterday off the bat using my amurican timezone 15:28 <+bridge> [ddnet] I was too lazy to start solving yesterday 15:58 <+bridge> [ddnet] ```py 15:58 <+bridge> [ddnet] lines = open('i.input', 'r').readlines() 15:58 <+bridge> [ddnet] 15:58 <+bridge> [ddnet] boxes = [[], [], [], [], [], [], [], [], []] 15:58 <+bridge> [ddnet] for i in range(8): 15:58 <+bridge> [ddnet] for j in range(1, 33, 4): 15:58 <+bridge> [ddnet] column = int((j-1)/4) 15:58 <+bridge> [ddnet] boxes[column].insert(0, lines[i][j]) 15:58 <+bridge> [ddnet] 15:58 <+bridge> [ddnet] print(boxes) 15:58 <+bridge> [ddnet] ``` 15:58 <+bridge> [ddnet] ye todays input isnt pretty 15:59 <+bridge> [ddnet] someone tell the elves that their visualization method sucks 16:34 <+bridge> [ddnet] ```❯ dotnet run 16:34 <+bridge> [ddnet] Building... 16:34 <+bridge> [ddnet] You must install or update .NET to run this application. 16:34 <+bridge> [ddnet] 16:34 <+bridge> [ddnet] App: /home/teero/.nuget/packages/microsoft.aspnetcore.components.webassembly.devserver/7.0.0/tools/blazor-devserver.dll 16:34 <+bridge> [ddnet] Architecture: x64 16:35 <+bridge> [ddnet] Framework: 'Microsoft.AspNetCore.App', version '7.0.0' (x64) 16:35 <+bridge> [ddnet] .NET location: /usr/share/dotnet/``` 16:35 <+bridge> [ddnet] does somebody know whats happening here? 16:35 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1049348144732831826/image.png 16:35 <+bridge> [ddnet] it say that im missing or having a outdated version of .NET and then it tells me that i have the latest version? 16:36 <+bridge> [ddnet] Mono is a blast sometimes 17:11 <+bridge> [ddnet] @deen thanks for going through pull requests πŸ™‚ 17:11 <+bridge> [ddnet] Who is tater again? 17:12 <+bridge> [ddnet] tater on github or on discord? 17:12 <+bridge> [ddnet] Discord with tag 17:15 <+bridge> [ddnet] Found tx 17:20 <+bridge> [ddnet] lmao 17:29 <+bridge> [ddnet] I want to prepare a new release, so thought to get everything in that looks ready 17:36 <+bridge> [ddnet] tater = pro shader expert 17:36 <+bridge> [ddnet] According to this, we could also change the color of the BW gametype, right? 17:53 <+bridge> [ddnet] true story xd 17:53 <+bridge> [ddnet] just thought he had a different name on discord, but he hasnt 19:12 <+bridge> [ddnet] not like i want to give me more merit, but `[Server] Report extra player info to master http [Ryozuki]` enables to improve the website and other cool stuff in the client 19:13 <+bridge> [ddnet] like showing tee skins 19:13 <+bridge> [ddnet] but we should name this the Robyt Update 19:13 <+bridge> [ddnet] brought to you by Robyt 20:51 <+bridge> [ddnet] ^, the chat was flooded by the webhook, so I refresh this 20:55 <+bridge> [ddnet] bors was afk for #6035 20:55 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/6035 20:56 <+bridge> [ddnet] looks like it ignores me as well 20:56 <+bridge> [ddnet] like affected by this, but it seems to be resolved now 20:56 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1049414099097890928/image.png 20:58 <+bridge> [ddnet] likely affected by this, but it seems to be resolved now 20:58 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1049414099097890928/image.png 20:58 <+bridge> [ddnet] u dont even have bors permission do u? 20:59 <+bridge> [ddnet] i do have, but i used it only a few times 21:00 <+bridge> [ddnet] oh yeah u have indeed 21:01 <+bridge> [ddnet] just accepted translations, so i still have it πŸ˜› 21:08 <+bridge> [ddnet] why you changed `Localize` to `Localizable` in #5853? 21:08 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/5853 21:08 <+bridge> [ddnet] i didnt change it 21:09 <+bridge> [ddnet] i just think its better than // Localize("test") 21:14 <+bridge> [ddnet] i understand the need for a constexpr function, but i don't get how it resorts to call Localize later 21:15 <+bridge> [ddnet] the backend get Localize as parameter now 21:15 <+bridge> [ddnet] its all mess, but i want these errors do be translated 21:15 <+bridge> [ddnet] esp the help text 21:16 <+bridge> [ddnet] the sdl backend to be precise 21:16 <+bridge> [ddnet] which handles the errors of the GL backend 21:16 <+bridge> [ddnet] which ultimately has a getter for errors, which the graphics func calls 21:17 <+bridge> [ddnet] oh, i got it now : 21:17 <+bridge> [ddnet] oh, i got it now πŸ™‚ 21:17 <+bridge> [ddnet] if i could go all in vk. i'd rewrite everything anyway< 21:17 <+bridge> [ddnet] i dislike the whole backend xd 21:17 <+bridge> [ddnet] its so old and so many useless copies 21:18 <+bridge> [ddnet] actually, quite smart to pass it a functor 21:18 <+bridge> [ddnet] but we gotta know errors before hand though 21:18 <+bridge> [ddnet] but we gotta know possible errors before hand though 21:19 <+bridge> [ddnet] what do ya mean? 21:19 <+bridge> [ddnet] you pass it the Localize functor, but it can only translate known text (obviously), so we gotta know what errors to translate 21:20 <+bridge> [ddnet] yeah localizables 21:20 <+bridge> [ddnet] which are all defined lines 1163 in backenv_vulkan 21:21 <+bridge> [ddnet] so it can change when we update vulkan libs 21:21 <+bridge> [ddnet] but i don't think there's a better way to do this 21:22 <+bridge> [ddnet] and why in the python, you ignore first char ? 21:22 <+bridge> [ddnet] i dont ignore the first char, but the first entry 21:22 <+bridge> [ddnet] bcs im regex nobo and () makes it a match 21:22 <+bridge> [ddnet] xd 21:23 <+bridge> [ddnet] maybe use .group(1) to make it more clear 21:23 <+bridge> [ddnet] but now that gpt3 is out i probably am able to write python 21:23 <+bridge> [ddnet] without writing it 21:24 <+bridge> [ddnet] i have no idea what u mean by that 21:24 <+bridge> [ddnet] vulkan is well defined, it will probably never change any enum again 21:24 <+bridge> [ddnet] error messages may changes ? 21:24 <+bridge> [ddnet] this would be a major API breakage 21:24 <+bridge> [ddnet] the error msgs are written by me 21:24 <+bridge> [ddnet] vulkan only defines enums? 21:24 <+bridge> [ddnet] oh ok 21:24 <+bridge> [ddnet] yes 21:25 <+bridge> [ddnet] then it's fine πŸ™‚ 21:25 <+bridge> [ddnet] or at least constant with a fixed name πŸ˜„ 21:25 <+bridge> [ddnet] does c have enums? xd 21:25 <+bridge> [ddnet] no, only defines i think 21:26 <+bridge> [ddnet] ah, now your pr conflicts πŸ˜„ 21:26 <+bridge> [ddnet] what might be worth noting in case u care 21:26 <+bridge> [ddnet] 21:26 <+bridge> [ddnet] the backend produces arrays of error strings 21:26 <+bridge> [ddnet] bcs i cannot cancel the draw threads 21:26 <+bridge> [ddnet] so in theory there could be multiple errors 21:27 <+bridge> [ddnet] thats the reason i didnt merge robytes pr xDD 21:28 <+bridge> [ddnet] but my prs are always only merged after 5 years xd 21:28 <+bridge> [ddnet] im used to it xDD 21:28 <+bridge> [ddnet] which one? 21:28 <+bridge> [ddnet] only two small conflicts though 21:28 <+bridge> [ddnet] everytime i add SDL stuff, something breaks lmao 21:29 <+bridge> [ddnet] well, 7k line files will more often conflict maybe πŸ˜„ ? 21:29 <+bridge> [ddnet] did you try splitting it? 21:29 <+bridge> [ddnet] in backend_vulkan take your changes and add back `const` to the first argument, in menus_browser take my changes and add back `Localizable` 21:30 <+bridge> [ddnet] robyt, are you fine with his PR so taht we can include it in next release? 21:32 <+bridge> [ddnet] its kinda annoying tbh i dont really want to add headers 21:32 <+bridge> [ddnet] 21:32 <+bridge> [ddnet] i could simply include .cpp files tho 21:32 <+bridge> [ddnet] 21:32 <+bridge> [ddnet] there is lots of stuff that requires to know about other stuff 21:32 <+bridge> [ddnet] 21:32 <+bridge> [ddnet] what i could do is completely lay out all variables into one class and then the functional stuff can be shared over multiple files 21:32 <+bridge> [ddnet] but tbh 21:32 <+bridge> [ddnet] just add c++20 modules xd 21:34 <+bridge> [ddnet] btw this isnt really a problem with the amount of lines 21:34 <+bridge> [ddnet] git is pretty good in understanding what really changed 21:51 <+bridge> [ddnet] yeah, the remaining issue is more an issue with the console/textrender I guess 21:54 <+bridge> [ddnet] ah yeah fuck that stupid issue, maybe i can also simply disable it xD 21:54 <+bridge> [ddnet] then we dont have to deal with it 21:55 <+bridge> [ddnet] would be easier I guess 21:55 <+bridge> [ddnet] next release in next year anyway 21:55 <+bridge> [ddnet] so no rush 21:55 <+bridge> [ddnet] I'm not sure how good printing newlines to the terminal is also 21:55 <+bridge> [ddnet] would mess with the console line format I guess 22:05 <+bridge> [ddnet] kek 22:05 <+bridge> [ddnet] true actually 22:05 <+bridge> [ddnet] it wont be until next year for another update 22:26 <+bridge> [ddnet] https://t.me/pacexoitic 23:02 <+bridge> [ddnet] So? Poeple can still try it out in nightly 23:02 <+bridge> [ddnet] It's not really trying out tho^^ 23:02 <+bridge> [ddnet] Some changes just fix a minor bug. Your changes rewrite the entire renderer πŸ˜„ 23:03 <+bridge> [ddnet] It's just errors to screen 23:04 <+bridge> [ddnet] But tbf it would be even nicer to recover from these errors. On the other hand they mostly cause by 4k skins 23:04 <+bridge> [ddnet] Kinda annoying how they will be shared for ever now xd