diff options
author | Ashelyn Rose <git@tempest.dev> | 2023-05-08 19:25:46 -0600 |
---|---|---|
committer | Ashelyn Rose <git@tempest.dev> | 2023-05-08 19:29:19 -0600 |
commit | d89d92d3936683f4212186cef517c7930dd5b33a (patch) | |
tree | cba24caddd1dc5f950b5e42eb333261f0c13dca5 /posts/2023-01-04_advent-of-wasm.md | |
parent | 6cddfdf8fe9bccc291ee8625d42cb42fd4ce2134 (diff) |
add markdown rendering, copy in old posts
Diffstat (limited to 'posts/2023-01-04_advent-of-wasm.md')
-rw-r--r-- | posts/2023-01-04_advent-of-wasm.md | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/posts/2023-01-04_advent-of-wasm.md b/posts/2023-01-04_advent-of-wasm.md new file mode 100644 index 0000000..12a48c8 --- /dev/null +++ b/posts/2023-01-04_advent-of-wasm.md @@ -0,0 +1,75 @@ +--- +title: Advent of Wasm +subtitle: Now with 87% more pain +author: rose +--- + +So the last few years I have done Advent of Code off and on. Sometimes +I have tried to learn a new language, other times I was just trying to +beat my dad each evening. This year though, this year I don't know what +I was thinking. + +It was several weeks after everyone else had started, I had largely written +it off for the year - I was not up for it. Until a terrible idea crossed +my mind. + +Like an intrusive thought, my mind asked: "Well you've been wanting to do +something in web assembly for a while right? How bad could it be?" + +<br/> + +Turns out I was definitely not ready for this. + +## So what was so hard about it? + +More than anything else, I forgot how much you need to do by hand to do +any sort of assembly. The first day saw me spending several hours just +on some loader code to pass the puzzle input in from JS, call a wasm +function, and then read back the result. + +Next was a few functions for reading numbers out of the wasm memory buffer, +parsing them from ascii, etc. The core read loop was not too tricky, but +the bit that took far longer than it had any reason to was converting my +answer back to ascii and shoving it into an output area. + +Really none of it was surprising, and none of it <em><strong>*should*</strong></em> have +been that hard ... it's just been a while since this Javascript girl +has written truly low-level code. + +To make matters worse I got hard-core distracted by the non-wasm part of +my wasm project. After the first day I returned to my stub JS loader and +expanded it into a little wasm explorer. + +I added a code view, syntax highlighting, auto-loaded my puzzle inputs, +even made a janky little dynamic list that would automatically pick up +new days' solutions as I added them to the repo without needing me to +touch the loader page each day. + +In the end I'm really quite proud of it, I will absolutely be reusing +this setup for future years, and you should +<a href="https://aoc2022.tempest.dev/" target="_blank">check it out</a> +if you haven't already ... but for wanting to challenge myself with +something new I was doing a lot of the same-old. + +Ultimately I got through 3 days before giving up jusst because every +step along the way involved <em><strong>*so much*</strong></em> extra +code. I may come back to some of the puzzles later, but for now I'm +kind of happy with what I did, and I don't feel like I need to prove +myself by doing more. I was doing it for fun, and so I stopped when +it stopped being fun. + +## Tips if you want to get into writing wasm by hand? + +Uhh ... maybe consider don't? + +Jokes aside: do a throwaway project or two so you get used to passing +data into and out of wasm, whatever parsing you're going to do, etc. + +Do everything in your power to make sure you can focus on the actual +wasm part of your project, because (at least if you're anything like +me) it's easy to get sidetracked with all that. + +With that said: I had fun. Doing new things is always a treat, so if +you're looking for something new to try definitely consider giving +webassembly a look. + |