# /wakamoleguy

## Recent Posts

### Advent of Code 2022 - Day 13: Distress Signal

After a bit of a break, I'm returning to finish the Advent Calendar. In Day 13: Distress Signal, we sort packets and learn about the InstanceSigs Haskell language extension.

### Advent of Code 2022 - Day 12: Hill Climbing Algorithm

In Day 12: Hill Climbing Algorithm, we write Dijkstra's algorithm from scratch!

### Advent of Code 2022 - Day 11: Monkey in the Middle

In Day 11: Monkey in the Middle, we carefully watch the items thrown from monkey to monkey. But did you see the moonwalking bear?

### Advent of Code 2022 - Day 10: Cathode-Ray Tube

In Day 10: Cathod-Ray Tube, we simulate the processer of a small device using the State monad. Plus, we use some fancy characters for printing.

### Advent of Code 2022 - Day 9: Rope Bridge

In Day 9: Rope Bridge, we simulate a swinging rope with recursive rules.

### Advent of Code 2022 - Day 8: Treetop Tree House

In Day 8: Treetop Tree House, we use the list monad to simulatenously step in any of four cardinal directions.

### Advent of Code 2022 - Day 7: No Space Left On Device

After taking a break for a few days, we return for Day 7: No Space Left On Device, where we parse and parse again.

### Advent of Code 2022 - Day 6: Tuning Trouble

In Day 6: Tuning Trouble, we scan through a string looking for subsets of unique characters.

### Advent of Code 2022 - Day 5: Supply Stacks

In Day 5: Supply Stacks, we watch a crane push and pop items from several stacks.

### Advent of Code 2022 - Day 4 Bonus: Parsing

Following up on Day 4, I refactor my parsing function to reduce repetition.

### Advent of Code 2022 - Day 4: Camp Cleanup

In Day 4: Camp Cleanup, we write a bunch of code to avoid doing extra work. Wait a minute…

### Advent of Code 2022 - Day 3 Bonus: Split in Half

Following up on Day 3, I explore some functions to split strings in half.

### Advent of Code 2022 - Day 3: Rucksack Reorganization

In Day 3: Rucksack Reorganization, we help our elfen friends identify shared features across sets.

### Advent of Code 2022 - Day 2: Rock Paper Scissors

In Day 2: Rock Paper Scissors, we evaluate the merits of using an encrypted strategy guide to cheat our new friends.

### Advent of Code 2022 - Day 1: Calorie Counting

In Day 1: Calorie Counting, we start our expedition into the jungle. I describe and annotate my solution.

### Goodbye Heroku

For many years, I left this website largely unmaintained, and it continued working just fine. After all, it's primarily a set of static files which should not demand any attention. So, I consider that a win.

Today, however, I underwent a larger maintenance task, and moved this site from Heroku (with a custom Node.js server with Express) to Vercel (with a Next.js backend). Here's looking forward to many more years of zero maintenance.

### You Can't Avoid Markup

I like writing blog posts. You may not realize that, considering I write about two posts per year. Whoops. The thing is, a lot of work goes into writing a single post; there is thinking of an idea, sketching an outline, composing the post itself, and finally marking it up and publishing it.

Most of that seems inevitable, but that last piece, the markup, feels like wasted effort. More effort makes writing less enjoyable and widens the gaps between posts, simply because I don't want to be bothered with that hassle again. In an ideal world, I would like to just write the words and post them. Everything else (the paragraph tags, links to external sites, emphasis markers, etc) would be automatically added or inferred based on context. So, what is stopping me from living in that utopia?

### How Many Pixels Are In An Infinite Resolution Screen?

Earlier this week, I came across an article on Butterick's Practical Typography that was about 4K monitors. Or, so I thought when I started reading it. I had glossed over the title, so about halfway down I was hit by some sudden Cantor. Discrete Math!

A lot of people would have a lot of different reactions to that, but I was pleasantly surprised. The question posed was this: If you keep doubling the resolution of a computor monitor, how many pixels will the infinitely divided screen have?

### Revealing Module Pattern and `This`

I read an interesting post the other day by Ben Nadel (@BenNadel). It used a relatively simple cache module to illustrate `this` behavior in the revealing module pattern . It's a good read, and it got me thinking further about public and private methods and `this`. The most thought provoking aspect for me, though, was the almost-footnote at the end: this doesn't work for private methods.

Can we fix that? Maybe.

### Playing a FLAC file over WebRTC with SIP.js and Flac.js

After getting my Raspberry Pi up and running last week, I was really pumped to continue on, find a project, and put it to good use. I spent this weekend exploring the world of Web Audio. Even working with browsers and WebRTC all day at work, I am constantly surprised by the ease with which HTML5 lets you wield a lot of power to do cool things. Here is how to do one thing I learned this weekend: Playing a FLAC file from one computer to another using WebRTC.

### Waka's Raspberry Pi - An Adventure Begins

It has been over a year since curiosity got the best of me and I purchased a Raspberry Pi. Due to a bad SD card, it was originally shelved, one operating system short. The past couple days, though, the Pi came off the shelf and back into the workshop (read: corner of my desk). I'm still not sure entirely what I am going to build with the Pi (perhaps something music related), but I am happy to say that I managed to get it primed and ready for development. Here's the rundown of the setup process.

### Clouds and Butts

Browsers nowadays provide lots of ways to personalize your experience. Firefox has its Add Ons and Chrome has Extensions. These can be great for enhancing your browser, from increasing productivity, personalizing themes, or even adding just a little humor to your day to day surfing, but they can also be dangerous.

### Here Be Dragons

For a few years now, the JS1K contest has been asking folks, "What can you do with just 1,024 bytes of JavaScript?" As it turns out, people can do some really amazing things. Just check out the winner from back in 2010 (Firefox seems to work best) which animates a decorated Christmas tree, or Strange Crystals II, which won in the spring of 2013. For the current contest, title 'Here Be Dragons', I decided to try my hand at it. What can I do with just 1K of JavaScript? Not much.

### Variations on a Vanilla Accordion List

In the last post, I walked through one way to make a simple accordion list using vanilla JavaScript. Today, I'll explore several ways an accordion list could be tweaked, sometimes for performance, sometimes for semantics, and sometimes just for style. No one solution is ever perfect for everybody, so the aim here is to give you ideas for how to best fit the widget to your needs. And if you don't need an accordion list on your web site, perhaps you can at least walk away having learned a couple questions to ask yourself when adding other fancy widgets to your site. But enough delay...let's get to it!

### A Basic Vanilla Accordion List

Here lies my first contribution to the Vanilla Web Diet. I first coded up this accordion list several months ago as part of the GetOnSIP project. No simple widget can be perfect for every use case. In this post, I walk through a simple version of a collapsible accordion list, with customization ideas to come later.

### Wakamoleguy.com Launch

Hi. My name is Will Mitchell, but I often go by wakamoleguy. Today marks the launch of wakamoleguy.com, my new site. Okay, so it has been up since Saturday, but it didn't have any content on it until now.

What is wakamoleguy.com? It's my website. For the time being, that means it's my personal blog. I'll keep the subject matter pretty technical, although I won't commit to talking about any one topic. I'll write what I know. Since I'm currently doing a lot of web development, that probably means mostly JavaScript and HTML5 posts at first.

As I write and accumulate examples, I hope to host those on wakamoleguy.com as well. Experiments and proofs of concept may show up here, too. In the end, I hope it will become my home on the web.

If you experience a delay when visiting this site, please excuse me. I am using free Heroku hosting which takes five or ten seconds to wake up after inactivity. Anyways, thank you for putting up with it, welcome, and enjoy your stay!

Cheers!