Today’s AoC puzzle is a very simple problem on modern machines, but quite tricky for me: It involves a number that doesn’t fit into 32 bits. 🤔 I wonder if/how I can manage to port this beast to DOS. (I once wrote a “big int” library myself, but that was ages ago and I hardly remember it anymore.)
@firstname.lastname@example.org I see, interesting. 🤔 Now I’m curious if I could optimize my brute-force solution as well. 😅 (I wrote a “proper” solution in the meantime after watching a visualization by someone else.)
@email@example.com What a great scenery. 😊 I hope the snow comes back soon. It’s all gone at the moment and well above 0°C.
@firstname.lastname@example.org And that is still a brute-force attempt? That’d be really fast. 😳 Are you doing anything clever or is your CPU just that powerful? 😅
@email@example.com Doing AoC competitively is super hard. I don’t enjoy this at all. I just happened to be quick these first few days. 😅
I rather set my own goals. Like the DOS thing this year. That is a lot of fun. 😊 (I just have to remember not to check the leaderboards. 🤣)
… it just finished and brute-force worked. 18 minutes of computing time on my 11 year old machine, single-threaded.
@firstname.lastname@example.org I ask myself that question every year. 🤣
To be fair, the first part wasn’t really that difficult. If you have A LOT of experience with these kind of problems/puzzles and if you have a proper framework, I imagine it’s doable. (I, on the other hand, spent about 40 minutes just writing my C code to parse the input.)
Some of these people record themselves and then post it on YouTube. It’s pretty crazy to watch. 🥴
The second part of the puzzle, was/is pretty hard, though. At least for me, because I haven’t found “the trick” yet. I’m currently trying to brute-force it while having breakfast. 😅 (But given that it took ~8 minutes for the first person to get both stars, maybe they brute-forced it as well. With a faster machine and multithreading, ~8 minutes sounds about right. Brute-force is rarely the answer in AoC, though.)
@email@example.com It’s been a while since I used QBasic/QuickBasic, but yep, I remember the experience being quite similar. 😊
@firstname.lastname@example.org I got it. I was already asleep yesterday. 😅
@email@example.com Sure thing. The address is on my website. 👌
It is a pleasure to work with the help system of Borland’s Turbo C++ 3.0 on DOS. The descriptions are clear and concise. There are short and simple examples. Pretty much every help page is cross-refenced and those links can be clicked.
Holidays up until next year, hm?
Exactly that. 🛌
That second photo is from our local pond. See all those tracks in the snow? Those are from the ducks and the other birds that stayed here.
This video is from a couple of days ago – just frozen, no snow yet:
@firstname.lastname@example.org If you can describe the problem, maybe I can help.
@email@example.com I can try to explain, if you want to know. 😅 Or maybe this guy’s visualization will help (if you can see it, not sure): https://old.reddit.com/r/adventofcode/comments/18af47j/2023_day_4_scratchcard_counting/
A couple centimeters of snow today. 😊 And I’ve got a loooooooong vacation coming up. Time to relax. 😃
This is my favorite time of the year – by far. Even if it means the snow will freeze in my beard. 😂
@firstname.lastname@example.org (Mild spoilers ahead.)
Today’s puzzle was one of those where I immediately knew that there must be a solution that does not require actually copying anything. AoC often has these kinds of problems that make it look like you have to create lots of duplicates, multiply objects, stuff like that. That’s often a sign that you can solve it by doing something simple. 😅 (If only that was true in real life as well. 😂)
A little “visualization” / “progress bar” of day 3 part 2:
Running in a DOS box under OS/2 Warp 4, including some of OS/2’s silly sound effects. 🤣
@email@example.com Yours is more clever and cleaner, I think. 🤔 You were able to reuse more code for the second part. I, instead, wrote a different search logic for part 2. 😅
Did I write too much code again? 😅
I don’t know. 😅 My solution is rather long as well:
Still happily runs on DOS.
@firstname.lastname@example.org Oof, it’s already getting a bit tricky. 😬
@email@example.com All I can say is: My client didn’t report any errors. :-) (Does that mean anything? 😅)
@firstname.lastname@example.org Ah, you went with the “scanning” approach as well. I did that, too.
It’s quite surprising to see (imho) how many people on reddit started substituting strings (
1 etc.). That makes the puzzle much harder by introducing nasty corner cases.
(Maybe I was just lucky this time to pick the correct approach right from the start. 🤣 Or maybe it’s a bit of experience from doing past AoC events …)
Here’s some more #AdventOfCode nostalgia:
It shows the machine’s boot sequence and the copy process: I somehow have to grab the files from my normal PC and I do that using FTP under Windows 3.11, there’s a PCI Ethernet card in that machine. Then some glorious WinZip action to decompress the files. 😃 Finally the first two AoC 2023 puzzles are being run.
(Yes, there’s a GRUB on that machine. 🥴 It’s a left-over from some experiments with Linux ages ago and I didn’t bother to uninstall it.)
@email@example.com That is a lot of code, yes. 😅 Mine is shorter, has more naive searching (it searches a word like
red and then backtracks to the number before it; completely ignoring the semi-colons because they don’t matter), and – like any good C program – will crash horribly on malformed input. 👌😂🥴
It really depends on what you’re after. I’d never write code like this in “real-world applications”. But for these puzzles and my DOS use case, it’s “good enough”. 😅
My immediate reaction to today’s puzzle was: “Ahhh, shit.” 😂 Parsing these input files in C is not a lot of fun. 🥴
@firstname.lastname@example.org It sure does! 😊 (Was the video big/large enough? I should probably capture in a higher resolution next time. 🤔)
@email@example.com The solutions will go here:
git clone https://uninformativ.de/git/advent-of-code.git
About demos … I made a video yesterday, but I’m not sure if it’s that interesting. 😅
I’d probably have to do some cool visualizations for the more interesting puzzles. 🤔 Not sure if I can pull that off, though. 😅 It’s probably going to be hard enough anyway. (I wonder how long I can get away with just conventional memory, i.e. only ~500 kB.) We’ll see.
@firstname.lastname@example.org Ah, right, kids and school. Yeah, oof, nothing you can do about that. 😐
@email@example.com It’s the perfect time of day for Aussies, isn’t it? People in the EU would have to get up around 6am. 🤣 I just happened to be awake anyway today.
@firstname.lastname@example.org I joined as
movq42rax. Don’t expect speedy results from me, because porting my solutions to DOS is my personal goal this year, intended to be runnable on that old Pentium. 😅
@email@example.com Argh! 🤢 I wish you guys a speedy recovery. (Any idea where you got it?)
@firstname.lastname@example.org Great timing. 😅
Yeah, it can be quite exhausting to do one puzzle per day. I guess taking some vacation is mandatory. 😂
@email@example.com Now that’s what I’d call winter. 😊 Awesome to look at. Poor camera, though. 😮
@firstname.lastname@example.org Whaaaaaaaat, you’re doing a programming challenge at this time of the year and it ISN’T Advent of Code?! 😱 😅
@email@example.com Oh lovely, look at all that snow. 😍 Good luck to the restaurant guys.
@firstname.lastname@example.org I walked. 😅 I mean, I walk rather fast and it’s not a relaxed stroll, but it certainly isn’t running. 😅 The goal isn’t to lose weight but to be outdoors, enjoy nature, and clear my mind.
Just to be clear, it was 100km over the course of a whole month. It was 23 tracks with 4.4km per track on average (4.4km is roughly 50 minutes). It’s actually not that much, it’s mostly time consuming. 😂
Made it to 100km today. 🥳 (It was harder than it should have been, because I was basically knocked out for about a week. 🤣)
@email@example.com No need for snowplows here. All the snow is already gone. 😢
I’m aware that virtualization itself is much older than Windows 3 (IBM did it in the 1960ies, I believe?), but knowing that similar concepts existed in my tiny little machine that ran Windows 3.1 is just mindblowing. 🤯 (Alright, it wasn’t exactly “tiny”. It was an IBM PS/2 Model 80. 🤣)
@firstname.lastname@example.org We finally had snow today as well. 😊 I went out for a quick walk immediately, because who knows how long it’ll last. ⛄
That last story he tells there (about the masked interrupts), that’s what fascinates me about computing. 😍 You’re close to the machine and you’re dealing with interesting problems. I find this way more intriguing than all the “modern” hyped stuff like “““AI”””.
@email@example.com Nice. 😊 One can hope for a white christmas. 😅
@stigatle Whoa. 😲
I’m willing to get that Google™ is losing ad revenue from sponsored advertising and sponsors of Youtubers.
That sounds like a plausible explanation to me. (Then again, I have little insight into how “making money on YouTube” works. 😅)
Like @firstname.lastname@example.org, I skip these sections immediately, unless it’s just one or two sentences. If it’s too long, I might just close the tab right away. 🤷
@email@example.com I don’t have a clue if they work or not. 😅 There are probably studies, but I’m too lazy to search now. 🤣
I, myself, don’t remember even having clicked on one of those banners and then proceeded to actually buy something. But what certainly does work on me is the effect of hearing/seeing a certain brand over and over again. “Oh, that’s a Logitech mouse, I know that manufacturer.” Stuff like that.
@firstname.lastname@example.org What I “love” about this is that the popup randomly disappears after just 1 or 2 seconds – and then reappears a litle while later.