RSSAmplifier

Blog

Jason Maa

I am currently a software developer at AWS. My interests include networks, web, hiking, rhythm games, light novels, and really bad photoshop. Opinions are my own.

/RSS feed ↗31 posts

Latest posts

Setting up a Self-Hosted Single User Mastodon Instance

I’ve been self-hosting a single-user Mastodon instance for some time now. I figured it’s probably time to write up my experience setting it up so I can share my experiences with the rest of the world (and so I can also have it documented somewhere once I inevitably forget how I did do it). Dude, Where’s My Pi? Most stories start from the beginning so that’s where we shall start too. It was early…

The 1000 AI Domains that Really Really Really Really Really Want Your Attention (and money probably)

Last week, I saw an interesting entry on the front page of Lobsters. It was a blog post about a math puzzle that the author had found on a telephone pole in the streets of San Francisco. The author had tried to solve the puzzle but eventually gave up and ended up writing a blog post about his experiences. Thinking I would have better luck, I also tried my hand at solving the puzzle, gave up, and…

An Analysis of Cosmic Lucky Prize

What’s the best way to simultaneously get millions of weebs excited to play a gacha game AND to also motivate a tired guy to revive his blog for the nth time in his life? A lottery it seems. One of the games I play, Honkai Star Rail, is currently running an event titled Cosmic Lucky Prize. While most HSR events feature minigames, puzzles, or even full-blown side stories, Cosmic Lucky Prize is…

Dining Philosophers

I started watching Pantheon a few days ago. In the show, near the end of the first episode, we see a scene with one of the characters, a teenage loner named Caspian, at the dinner table with his parents. Caspian’s father begins to chide his son for learning differential calculus, an impractical subject he claims. He then poses the following problem to Caspian: Suppose n geniuses are sitting at a…

Ruining a Professor Layton Puzzle with Linear Algebra

Capcom recently re-released most of the Ace Attorney series on Switch which made me want to play those games again. I ended up digging up my copy of Professor Layton vs Phoenix Wright: Ace Attorney and brought it along for a plane ride a few weeks ago where I encountered a particular puzzle that could be solved using mathemagics. The puzzle in question was Puzzle #36: Decipher the Door and appears…

A Follow-Up to the Magic of --follow

Nearly half a year ago, I wrote a mini blog post detailing my exploits working with large outputs. I was trying to find a way to see both the output logs of a test and to get a copy of the outputs in a file to share around which eventually led me to a solution using tail -f . Then a few weeks ago, while my friends and I were searching each other up on the Internet, that very blog post was dug up…

Status 599

Recently, I’ve been seeing ads on the Metro targeting the military-industrial complex. While I didn’t find them terribly interesting per se 1 , they did do their job and somehow still ended up catching my attention. The Ad Each ad prominently features an HTTP error message plastered on a backdrop of military personnel along with some rhetoric for the viewer to buy the product/service advertised or…

The Magic of --follow

I recently discovered the joy of using the --follow flag. Let me tell you a little bit more about what I mean. One of the tools at my work involves running a test script that both (1) takes a long time to run and (2) generates a lot of output. When I first started working with it, I naively ran the script as-is: ./run-tests.sh I came back 1 hour later to find that it had printed a huge mess of a…

The Microsoft OAuth2 SPA Experience

Boo! It’s October, so I’ve decided to rise from the dead with a new post. I’ve recently had the pleasure of messing around with the Microsoft Identity platform and would like to recount my experience here. The Microsoft Identity platform is a service that Microsoft uses to handle authorization into several of its web APIs, most notably the Graph API which gives developers programmatic access to…

Fixing a D-Force Pad

This past year, I’ve been trying to get into DDR. One thing led to another, however, and instead of getting good at dancing, I ended up dissecting my soft pad instead. I first got into the game since it seemed like the next logical jump for me. I played a lot of Bang Dream and osu! in the past, so I felt like DDR would be another rhythm game I could easily pick up. Plus I don’t get enough…

A Eulogy for Heroku Free Tier

We are at the end of November and with it, the final hour of all of my Heroku free dynos. When I first heard that Heroku was slashing their free tier back in August , I remember feeling a bit of a bittersweet nostalgia. Like many other folks in software, Heroku had been my gateway into doing more web development. I first found out about Heroku in high school. I was a junior stuck in an elective…

Running Elixir on Lambda

A while back, I discovered that Johns Hopkins publishes daily COVID case and death counts for all 50 US states . The graphs reminded me a lot of metric graphs for monitoring services, and I began to imagine a system of mirroring the data into CloudWatch and paging myself whenever they breached a certain threshold. This idea ended up evolving into CovidPager , and while I never did get as far as…

Dunning-Kruger

I recently read a blog post arguing that the Dunning-Kruger effect was not a psychological phenomenon but, rather, a statistical artifact. For some context, the Dunning-Kruger effect is a well-known cognitive bias discovered and discussed by David Dunning and Justin Kruger in a 1999 paper . In short, the idea of the effect is that poor performers tend to overestimate their ability while skilled…

Thoughts: Wei Wei Daigakusei

I had previously written a separate post briefly talking about Yabai T. Most of their songs don’t have English translations, so I thought I would try my best to translate them and talk a bit about what I learned in the process. I’ve also been wanting to keep up with my Japanese, so it’s a win-win. To preface this post (and the rest of them if they come): I’m a hobbyist. I’m missing a lot of…

Yabai T-Shirts Yasan

I’m going to try to write on a non-project related topic and see how it goes. One of my favorite J-pop bands is Yabai T-Shirts Yasan (lit. The Bad T-Shirt Shop), or Yabai T for short. I first heard about them through one of their songs, KawaE , which was used as the credits theme for the Nisekoi live action, and have been enthralled with their work ever since. Yabai T is a 3 member rock band…

Method Missing

Let’s try a shorter-form blog post today. Suppose you are bored and want to learn more about a Ruby library. You do the sensible thing: read the source, starting from a class the library’s clients would consume. You expect to find a plethora of method definitions or at least some mixins or class inheritance that might point you in the right direction. Instead you get the following: class Foo @bar…

The Nand2Tetris Experience

I recently went through the Nand2Tetris course . The motivating goal behind the material is to learn about the foundational hardware and software components of a computer by building one from scratch. As the name suggests, the course starts you off with nothing but a NAND chip and, through a series of projects, helps you build your way up to being able to hypothetically program Tetris. Along the…

Maze Contest: A Quick Analysis

One of my CS classes this semester runs a semester-long contest to see who can write the fastest concurrent maze solver. Submitted programs are tested on a battery of 7 mazes that may or may not be solvable and a public scoreboard is updated quasi-daily with each competitor’s runtime performance on all the mazes as well as their rank and score. With such a treasure trove of data before my eyes, I…

Misaka Net

Since my personal site went through a recent re-haul (I can’t believe we’re on v4 now…), I figured now would be a good a time as any to, hopefully, start up writing this blog again. As you can all tell from the title, today’s topic will be: the Misaka Network! Or rather, the strange and haphazard distributed computing project I made named after it. Background Side A: The Misaka Network When the…

VS Code Bolt

Recently, I had started experimenting with Firebase’s Realtime Database. Then one thing led to another, and I eventually found myself working on a language extension for a rules language, but I’m getting ahead of myself. Background Taking a step back and providing some much-needed background: the Firebase Realtime Database is a JSON-based, key-value store which makes it easy to start with but also…

adxtools

A little over half a year ago, I got it in my head to make a character mod for the 3DS game Persona Q. While I did not make it very far, I did dive far enough into the sound files to switch tracks and start working on making my own encoder and decoder for them in Go. Background Persona Q uses a proprietary file format developed by Criware called ADX for storing compressed audio. The ADX file…

Speed Trig

At the time of writing, the app is available for Android on Google Play here ! UPDATE (12/29/2019): Now available on iOS as well here One of my fondest memories from high school were a set of re-takeable quizzes from pre-calculus collectively called “Speed Trig”. The idea was that you had to solve a battery of rote trig problems under time pressure and graded on an all or nothing basis. While…

DQNsort

A famous saying goes: There are many ways to skin a cat. These are words that apply especially well to sorting arrays. When asked to sort one, your sane person may immediately go with bubble sort, insertion sort, or perhaps the very lovely and very fast quicksort. The show-offs like to call out radix sort and the jokers always point out bogosort and Stalinsort. Today, however, I present to you…

Game of the Amazons

Game of the Amazons is a lot like chess except all pieces cannot be killed, move like queens, and shoot fire arrows that also move like queens. Ok, maybe it’s not like chess at all. In short, Game of the Amazons pits two players on a grid with an equal number of pieces or “Amazons.” Each player takes turns moving their Amazon and firing an arrow from it, both actions functioning like the queen’s…

Protobowl VR

Late last year, after a session of my school’s XR club, I had, on a whim, proposed to a friend my grand idea of putting quizbowl in VR. As per usual, my absurd scheme was quickly shot down, and we moved to other points of discussion. Later at the outset of winter break with nothing better to do, I told myself: Why not? and got to work. Design The goal of this project was to emulate quizbowl to the…

Bubbles

Among many things brought out into the cold of December 1st, 2018 were four nerds with nothing better to do on a Saturday morning than participate in their school’s local hack day. While I cannot speak for the experiences of my companions, I do recall being awoken at 2 in the morning earlier that day by the finest drunks on our floor. In my drowsy state of quasi-conciousness, I came to a sudden…

Kuiperbowl

As of the time of writing, Kuiperbowl is live here ! Another old idea that had been swimming in my head for a few years was creating a Protobowl clone. Since I owe the more impressive parts of my largely unimpressive trivia knowledge base to rote practice on Protobowl, it has always been a small dream of mine to make something similar in functionality (and bot the site lol). Design Roughly,…

CHIP-8

I haven’t had fish ‘n chips in a while but that’s beside the point. Way back, I started a CHIP-8 emulator project in Java and then dropped it soon after I realized my lack of experience with low-level programming. However, since delving into NESASM, I decided this would be prime time to pick CHIP-8 back up again. I also chose to make it in C++ this time since, prior, I had nearly zero experience…

CMSC Undergrad Calendar

Going into college, one of my primary goals was to get my act together. I’ve always been awful at managing events, so recently I’ve started trying to actively use Google Calendar. Integrating it into my livelihood was very straight-forward: Add calendars for bulk events Manually add smaller, one-off events Then I happened upon the behemoth that is the CMSC Undergrad calendar. Not only could I not…

Spooter

Fresh out of the Nerdy Nights Pong tutorial, I had vowed never to write any assembly for the NES ever again. As you can guess, that didn’t happen. Background While on vacation visiting my grandparents, I found out about a game jam called Floppy Jam. The gimmick of the jam was that all entries must theoretically fit on the 1.44MB alloted to a floppy disk, hence the name of the jam. Naturally, this…

Protobot

Winter break’s here, so I decided to spend some time off making a way to programmatically interface with Protobowl The main goal of this was to prototype and then port code to Swift as iOS 10 has broken mobile Protobowl. Also out of some morbid desire to beat my quizbowl teammates at their game, an auto-answer bot was developed alongside API code. Of course, I’ve already tried this multiple times…