Recent Posts

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!