Latest Posts

Dance: Plugins »

Code · May 14, 2022

In the first post of this series, we covered the design and implementation of Dance’s graphical application. We talked about some of our supporting technologies, and we mused about a couple abstractions that I thought were kinda clever. All of that naturally segues us into the plugin system. Dance’s plugin system is the keystone of the project; it allows us to dynamically host external visualizers (in their own DLL files) by hooking them into our runtime and render pipeline. There’s quite a bit of nuance though, so let’s dive right in!

Dance: Windows »

Code · May 04, 2022

In this miniseries, I’m going to be walking through a project I’ve been working on recently called Dance. Well, that’s the working name, at least. I’m definitely going to have to do a bit of bikeshedding. To quote the README, Dance is a high performance music visualizer powered by the Windows multimedia API, FFTW3, and DirectX. The goal of this project is twofold: to provide dynamic, exciting, and customizable, visuals for end users while also serving as a reference for the APIs it relies on. The purpose of these blog posts, alongside it, is to provide an in-depth look at novel bits of the source, some thoughts and decisions regarding the architecture, and everything I learned along the way.

Bringing Things to a Close »

Life · May 02, 2022

As the semester comes to a close, I’m quickly approaching one of the last certain inflection points of my life; this is the last time I’m guaranteed a major change to where I live, what I do, etc. Honestly, describing it that way makes it sound a lot more daunting than it is. But what I’m trying to say is that I could very well stay in NYC for the rest of my life working in software and living in roughly the same place. This is the last sure transition. Consequently, I feel like it’s worth thinking about what will change over this summer in particular; what I plan to do, what I’ll be leaving behind, and I what I hope to find.

Wrapping up 2020 »

Life · January 03, 2022

That’s right, I’m a whole year behind. I swear, it’s so hard to keep up with this blog. I waste so much time at school playing videogames and finding other creative ways to procrastinate on work, and yet somehow, this always gets pushed off. Nonetheless, here we are, a year later, forging on. Hopefully these will be easier to write once I’ve finally caught up…

Some Thoughts on Interior Design »

Life · December 25, 2021

One of the best things that’s come out of my four years at USC is living in my own studio for the latter two. In this post, which I’ll probably come back to and update periodically, I’ll detail lessons I’ve learned about functional interior design as well as some ideas I have for future living spaces.

The Summer of 2020 »

Life · July 31, 2021

As I discussed in the previous post, it’s been a few months over a year since my last series of blog posts. All sorts of things have happened in that time; the world has changed dramatically, and with it, the people both in and outside the lens of my day-to-day. Focally, I too have changed—perhaps even accidentally growing or maturing along the way. This is a chronicle of change.

Third Time's the Charm »

Life · July 18, 2021

This post marks my third attempt at consistent blogging. It is of no coincidence that this post will also likely precede my third, vaguely-justified hiatus from consistent blogging. However, as they say, the third time’s the charm.

Sailing FJ's »

Life · March 13, 2020

I got inspired by some stuff I was watching over the weekend to go back and cut together the footage I got when we took the FJ’s out for NAUT 001B last semester. Unfortunately, I’m too attached to the copyrighted music to put it on YouTube, so here we are!

Spring Sailing »

Life · February 02, 2020

It’s been a pretty exciting start to the semester, and while I’ve managed to keep my academic workload pretty light this semester, I’ve filled that time with TAing, drumming, and work on Graduate. Needless to say, the first sailing trip of the semester was a welcome break.

Of Plans and Paradise »

Life · January 14, 2020

The second day of the semester culminates in exhaustion. Expected, perhaps, though, not discounting the sheer throughput of my todo list, likely for unexpected reasons. With full knowledge that my first class for the day started at 3:30 PM, I elected to wake up at 8:30 AM. To hit the gym with Mark at 9:00. Here’s hoping he keeps up with his New Year’s resolutions.

The Latest Dispatch »

Life · November 13, 2019

What the hell have I been up to? Well, certainly not posting any new music. Or really even keeping up with the blog. Unfortunately, I also don’t have a lot of interesting, tech-related stuff to discuss right now; most of what I’m working on is either hush-hush or still in progress. However, that’s certainly not to say that nothing’s been going on.

Reflections of a Pet Rock »

Life · October 12, 2019

A couple of weeks ago I was drawn into somewhat of a perspective-altering, late-night session of interpersonal connection and introspective nuance. What this amounted to in actuality was each of us taking turns clowning each other for our various quirks, of which there are many. But despite the (mostly) lighthearted nature of that night, I ended up walking away with a lot more to think about than I had originally brought.

Functors »

Code · September 27, 2019

After a couple of pretty compelling lectures in the topology course I’m taking at school, I’ve found myself on somewhat of a functional programming kick. However, I’ve also been having a really tough time wrapping my mind around functors, profunctors, bifunctors, optics, etc., and I think this is largely because 1) I can’t read Haskell competently, and 2) there are not really many example-based articles on the subject that aren’t either purely mathematical notation or, well, Haskell. Thus, I’ve set out to write up everything I can to help build a foundation for understanding this aspect of functional programming.

New Year, Same Me »

Life · January 09, 2019

It’s been one hell of a first semester, and there have been a bunch of things I’ve been meaning to do since the last few weeks that have been relegated to the back burners. First and foremost, I want to update my website. You know - put up a couple albums, edit the resume, the usual. But more importantly, I figured I should also anyone interested enough to keep up with these posts up to speed on what I’ve been up to.

Writing a Resume in HTML/CSS »

Code · September 24, 2018

When it comes to making a proper resumé, there seems to be an endless array of options. You can use Word or Pages and the multitude of templates they provide. You can look online for a resumé creator that has a desirable theme and format. If you’re brave, you can follow in the footsteps of someone else’s LaTeX template. However, each of these options comes with its own downsides. Rich document editors are finicky, online platforms are limited, and LaTeX is…LaTeX. Instead, I decided to make my life as difficult as possible and write my resume from scratch—with pure HTML and CSS.

The Enigma of the Safari Push Framework »

Code · August 19, 2018

Despite there being numerous tutorials and sources of documentation online, it’s still incredibly difficult to crack the code of Safari push notifications. The documentation by Apple itself leaves much to be desired, and if you’re not familiar with existing API’s, such as that used to send all Apple push notifications, it can be impossible to crack the code. Over three days of blood, sweat, and tears, I managed to figure it out. Check out the code I wrote for this project here.

Downloading Album Art with Jekyll »

Code · August 02, 2018

When I added the album of the month side of my website, I wanted to make sure the archive had access to all the cover art of the previously chosen albums without loading a bunch of unnaturally heavy Spotify iframes. After a solid hour of messing around with the Spotify API followed by several hours of grokking of Ruby, here’s what I came up with.

Web Requests in Swift »

Code · July 25, 2018

For one of the apps I developed I wanted to interface with an API hosted somewhere else on the web. This is the framework I set up to make basic web requests, and it consists of two main components and one optional one.

How not to Blog »

Life · July 23, 2018

It’s been a long while since my last post; over an entire year, to be exact. Fortunately, nothing drastic has occurred in my life to garner this sudden deceleration. I haven’t dropped off the grid, forgotten my password, or stopped learning anything worth writing about on this side of my site. In fact, it’s quite the opposite. Over the last year I’ve made huge progress both as a human and as a coder. I’ve uncovered the secret to grinding out long-term projects. I’ve figured out the magical trick to forcing myself to consistently work out. And atop my conquered endeavors sits the prized proficiency I have, since March 10, 2017, honed: how not to write a blog.

Abstract Engine »

Projects · March 10, 2017

Abstract Engine is a lightweight 2D game engine for HTML5 and Javascript 2017, and after spending such a long time making it, I’d like to spend a post or two talking about why we made it, how it works, and why obviously the best game engine in all of existence!

MBHS Course Development »

Projects · February 15, 2017

In the fall semester of 2017 (our junior year), we spent a class in an organized study hall developing a new elective for Montgomery Blair’s Computer Science department. This post is intended to provide a little bit more information about the current status of this project and our plans for the future.

Anduril and MBHS Home »

Projects · January 20, 2017

Yes, yes, I know my fans are heartbroken over the recent hiatus I’ve effectively been on. Unfortunately, I’ve just been super busy, and since I have a bunch of software projects, the code usually takes precedence over the blog. However, I’ve finished something cool recently (or at least deployed initial release), so I’d like to take an article to write about it.

A Highspeed Tutorial on Jekyll Setup and Deployment »

Code · January 03, 2017

Every server developer one day realizes that they no longer wish to manually log into their server, cd to their repositories, and manually update them every time they push a change to the source. Fortunately, this can be remedied by a functionality of Git specifically designed for this purpose.

Finishing Up the Jekyll Installation »

Life · December 06, 2016

At this point I’ve almost completely migrated the site to Jekyll, and although the styles still need improvement, my opinion of the platform has, at the very least, brightened. The remaining tasks are mostly to also move projects over so people can check them out.