Polannach ag foghlaim na Gaelainne ⁊ a staire (.i. inna Sengoídilce ⁊ na Gáoiḋeilge Clasaiciġe), ⁊ Gàidhlige na h-Alba cuideachd. Multilingual: Polish, Irish, Sc. Gaelic, Interslavic (+ some Czech, Ukrainian, Belarusian), and a few words of English. Freetard. Rust ⁊ Kotlin. Linux desktop since 2006. Neovim, KDE, Firefox (+firenvim + Tridactyl). Used to organize Pyrkon. I know some basic IE hist-ling (PIE ⁊ Proto-Slavic reconstruction, Old Irish, Old Church Slavonic).
Public Key
npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4
Profile Code
nprofile1qqsgtq672sdg5yk7y7cvcqttep8wl7uw5xtfmxhg6m5redhwrqpd7vqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0ds447y45
Author Public Key
npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 Show more details
Published at
2023-12-06T12:22:41+01:00 Event JSON
{
"id": "b5e83ce300a39496bccbb7e7e5d960c84147f85de66b232928945e4145e882a5" ,
"pubkey": "85835e541a8a12de27b0cc016bc84eeffb8ea1969d9ae8d6e83cb6ee1802df30" ,
"created_at": 1701861761 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://mstdn.social/users/silmeth",
"activitypub"
]
],
"content": "{\"name\":\"silmeth 🇺🇦\",\"about\":\"Polannach ag foghlaim na Gaelainne ⁊ a staire (.i. inna Sengoídilce ⁊ na Gáoiḋeilge Clasaiciġe), ⁊ Gàidhlige na h-Alba cuideachd.\\n\\nMultilingual: Polish, Irish, Sc. Gaelic, Interslavic (+ some Czech, Ukrainian, Belarusian), and a few words of English.\\n\\nFreetard. Rust ⁊ Kotlin. Linux desktop since 2006. Neovim, KDE, Firefox (+firenvim + Tridactyl).\\n\\nUsed to organize Pyrkon.\\n\\nI know some basic IE hist-ling (PIE ⁊ Proto-Slavic reconstruction, Old Irish, Old Church Slavonic).\",\"picture\":\"https://media.mstdn.social/accounts/avatars/109/432/988/604/550/519/original/9c2f9ddd8e5a00a3.jpg\",\"nip05\":\"[email protected] \"}" ,
"sig": "d882123c11a9c0e3cb3af40c057b6ba59822c891db35b2279b71ea6a4827d45d508b9631ba946e04276a55b99285738647e72f936efb0746d782f835dd7d56cb"
}
Last Notes npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 I bought a new M.Zuiko 40–150mm R lens, it has a miniature dot on the inner-side glass, looks like a scratch (I tried to blow it off with compressed air, didn’t move). see https://photos.app.goo.gl/jAAvTByAzdS3pxn1A and https://photos.app.goo.gl/R3eYwF6BChHncwUb9 Should I be worried? #photography #lens #m43 #olympus https://media.mstdn.social/media_attachments/files/112/717/000/787/844/982/original/69429060709982e6.png npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 Upgraded the OS today with #Plasma bump to 5.27, and #Bismuth (window auto-tiling for #KDE) stopped working for whatever reason. I set up some keyboard shortcuts for working with native tiling of Plasma 5, but there’s no auto-tiling. Has the time finally come for me to try some actual adult tiler window manager?… npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 I bought a new phone, Google Pixel 7a, the screen’s 6.1″ diagonally and it’s featured on lists of the smallest, most compact smartphones available… and I remember how, years ago, I had a Motorola Milestone (aka DROID1), 3.7″, and my friends used to make fun of me saying I was “carrying a television in my pocket” #android #smartphones #pixel7a #phablets npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 lol, bye two-lines-crossed site then https://media.mstdn.social/media_attachments/files/112/455/686/481/492/771/original/55cd4f538f132744.png npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 I made a CLI binary to visualize the beam spreading through the system. :) Recorded two animated SVGs + GIF: • test input: https://gitlab.com/silmeth/advent-of-code-2023/-/blob/main/day-16/animation-test-input.svg • and the full puzzle input (only 64 lines shown): a) GIF – https://gitlab.com/silmeth/advent-of-code-2023/-/blob/main/day-16/animation-part1.gif b) SVG – WARNING: it’s *LARGE* (~11.5 MB): https://gitlab.com/silmeth/advent-of-code-2023/-/blob/main/day-16/animation-part1.svg #AdventOfCode #AdventOfCode2023 #AoC #AoC2023 #RustLang #Rust https://media.mstdn.social/media_attachments/files/111/592/664/052/598/197/original/74549e4954b4757f.mp4 npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 @npub129g…4kwg Doing linear scan of bytes instead of split(',') brings part1 benchmark down to 33 µs. So yeah, I’m definitely losing some time there in parsing. Actually, I noticed my parsing times going slightly up since I started using lines() and split() more liberally (I did hand-roll simple top-bottom parses for the first few puzzles and it was generally faster). npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 @npub129g…4kwg Yeah, I meant for a bucket. Using it for all the buckets storage doesn’t make much sense (you could make it statically sized array though, since the amount of buckets is known). npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 @npub129g…4kwg I do `input.trim().split(',')` and then `hash` function for the substrings in part 1 – not sure where’s the bottleneck here (maybe just all the function calls? would need to do some profiling). For part 2 I do the same (`trim().split(',')`) and then parse into a custom `Instruction` enum which also has some error checking, so my guess is this takes a bit longer (edit: and then there’s interpreting the instructions one by one). npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 @npub129g…4kwg Wow, those times are crazy! You could try SmallVec to shave off some ptr indirection still for the buckets (they don’t grow more than up to ~5–8 elements anyway…). I guess I lose a lot of time on parsing here… (I’ve 87 µs for part1, 237 µs for part2 on my PC). npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 @npub129g…4kwg btw, tried to sprinkle rayon on top of my day 14.2 solution – but it only made it significantly worse. I guess sending mutable subslices across threads throws the cache coherence out the window and synchronization becomes much more expensive than whatever speed-up is gained by doing a few calculations on multiple cores. npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 @npub129g…4kwg Yeah, I haven’t – though it seems I came up with the ray casting approach on my own. But the edge shapes (like x=2 situation in the image above) made it very unpleasant to implement. Now I wonder if doing diagonal “rays” wouldn’t be easier, just to avoid dealing with those curved pieces with parts parallel to the ray. npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 Phew, caught up on Advent of Code. Day 10, part 2 took me most of the whole day. I feel stupid cause of the time I spent on fighting with enclosed boundary edges… (part 1 went smoothly) Day 11 was easy though, finished part 2 in just minutes after finishing part 1. The image illustrates schematically the approach I came up with for calculating day 10, part 2 (cause I wasn’t familiar with any common algorithms for it). https://gitlab.com/silmeth/advent-of-code-2023 #AoC2023 #AdventOfCode #AdventOfCode2023 #RustLang https://media.mstdn.social/media_attachments/files/111/564/342/234/552/470/original/bc4e6ef5aab2d79e.png npub1skp4u4q63gfdufasesqkhjzwalacagvknkdw34hg8jmwuxqzmucqehhtf4 silmeth 🇺🇦 @npub129g…4kwg I did part 2 the “correct” way because I’m impatient. So I got tired of waiting for the brute force solution to finish after about ~30 seconds. So instead of waiting 3 minutes for the result I spent 2 hours chasing weird range-operation bugs. Mine finishes in ~37 µs on my PC (on top of input parsing which is another 43 ± 3 µs). I do allocate a new vector for resulting ranges for every input range though. https://gitlab.com/silmeth/advent-of-code-2023/-/blob/main/day-05/src/lib.rs#L163-200