Compiler Enforced Best Practices

The other day, I was working on a project in ASP.NET MVC Core. I added a field to a model I was trying to pass into a view, which got created by a CreateModel function. The create factory function would take a lot of arguments, then use them to decide which subclass to return. Before my edits, this function had grown to take 16 parameters. This obviously is not great, but this was for a quick bugfix and I hadn’t allocated enough time to do a refactor of my controller, so I figured: what’s one more parameter? I was able...

Continue Reading →


The Derek Zoolander School for College Kids Who Can't Database Good

One of the most useful classes I took during my time here at Penn State was CMPSC 431W: Database Management Systems. Amazingly, this is one of two classes offered by the CS department here on databases, and it is not required to graduate. The only required class isn’t a database class, but a Java programming class that teaches students about basic SQL since one of your projects uses JDBC to connect to an extremely rudimentary database and requires basic knowledge of implicit joins and creating tables with a GUI. So, for a while, I thought databases were easy and once...

Continue Reading →


Resolutions

I recently updated the theme on this blog, and in the course of doing so I realized that I had not posted on it in the year 2017. The last time I posted about something software related was over two years ago. I then realized that this sort of defeats the purpose of having a blog as a software developer. So here I am, a tad over a year later, reflecting on 2017 and—like many people—how to better myself in 2018. I realize the terrible cliché that I’m starting to tumble into, but bear with me here. In 2017, my...

Continue Reading →


My 2016 in Music

Last year, my friend Dylan made a Facebook post showcasing what he thought were the best albums to come out in/that he discovered in 2015. I thought that was a cool idea, so here are my favorite new (or new to me) albums from 2016. If you want more info on the album, hover your mouse over the album’s tile (albums that came out prior to 2016 have their year indicated). Radiohead A Moon Shaped Pool Childish Gambino Awaken, My Love! Animal Collective Painting With A Tribe Called Quest We Got It from Here... Thank You 4 Your Service Kanye...

Continue Reading →


Solving an Android CORS Bug

In the course of developing a hybrid app with the Ionic Framework, I ran into a strange bug: the app would display data grabbed from a JSON API backend perfectly on my desktop web browser, through the ionic serve --lab command, and on the iOS Simulator. But for some strange reason, the space on the Android app where the data was supposed to go was blank on the Android emulator. After trying a number of fixes on the client side and digging through StackOverflow threads, I finally figured it out: the error was not with the client side code on...

Continue Reading →


Just Press the Button

I think I just won the award for the most stupid, overly minimal app ever created. It was a rough fight, and I faced some seemingly insurmountable competition (the app Yo, for instance). But I think I just may have won. My app is called “Just Press the Button.” It has two things on screen when you open it: a button and a counter. Every time you press the button, the counter increases. However, the button also ends the game eventually. So, eventually you’ll press the button and will receive a game over screen instead of the usual point on...

Continue Reading →


Removing the Title Bar from iTerm2

I have recently been trying to learn Vim, and have therefore spent a great deal of time in the OS X terminal app. I soon made the upgrade to iTerm2, but started getting jealous whenever I saw some of the crazy minimalistic terminal pane setups on /r/unixporn. So I wondered: was there a way to remove the shameful title bar from iTerm2 on OS X like there was on Linux/BSD distros? The answer is yes. It’s a bit involved, but yes. It took me a bit of Googling to figure it out though, so here’s a guide. Firstly, you’ll need...

Continue Reading →


AutoTame for Bukkit

I’ve recently been crawling Bukkit’s “Plugin Request” forum to find some plugin ideas and sharpen up my Java skills, and yesterday, I made one. It’s a simple plugin called AutoTame, and it was suggested by user roumen4. Here’s the basic idea for the plugin: whenever a user spawns a wolf with a spawn-egg, the plugin will automatically tame the wolf and set its owner as the player who used the spawn egg. Here we have an open patch of area: And when we spawn a wolf, he is automatically tamed to the closest player: We can change his collar color...

Continue Reading →