An Overdue Update - Hi!


Hi, sorry I’ve been off the radar. As I’ve alluded to in previous posts, fulltime work can be a bit all-consuming at times, and after finishing my degree and jumping into focused, 40+-hour-a-week work (along with the inevitable real life complications), I’ve had some difficulty dedicating time to posting what I’ve been up to. Excuses aside, I’d like to get back into the swing of making and documenting projects, so starting now.

Jump to a section

Real Life


My job has been the primary source of my technical development, which I like a lot. I’ve been at Gro Intelligence for a little over 18 months now, and I’ve found in that time that I’ve honed a lot of existing skills and picked up quite a few new ones. Writing Python several hours a day has made me feel quite at home using Pandas, NumPy, Dash, among other libraries. I’ve learned a lot about different AWS platforms, building, deploying, and maintaining applications, effectively using containers, etc. I’ve also gained quite a bit of knowledge about agriculture, data manipulation and analysis, and blending the two to further Gro’s mission. It’s continues to be very rewarding work–technically, intellectually, and socially.

Outside of work, I’m still living it up in NYC. I’ve gone out to spend some time with family in CA intermittently over the last several months, but I’m back for the foreseeable future to endure this strangely warm winter. Some things that have brought me joy in the later half of this last year, for those interested:

  • 🎬 Saw SNL live – I don’t really watch SNL but this was a great time
  • 🌍 Went to the Queen’s Museum
  • 📕 Started reading The Three Body Problem – enjoying it very much so far
  • 📺 Watched Better Call Saul – you gotta see it
  • 🎮 Played some Elden Ring, Dwarf Fortress, Resident Evil Village

Garry’s Mod Addons With Lua


Quick backstory: I was big into playing online multiplayer Garry’s Mod gamemodes in high school. I remember interacting closely with people who developed addons for the game and being interested in learning how to do it and making some of my own. At the time, it was a little daunting, and I didn’t get far past the (at the time) scary documentation.

This last Summer, I started playing a bit on a server that ended up being in need of more developer hands. I hopped into it, started picking up some Lua, and since then have made quite a few improvements to the server. Admittedly it doesn’t pay, but I find it rather fulfilling, and there are some interesting technical challenges in making the addons work well and communicate efficiently between the clients and the server.

A few of the improvements I’ve made:

Warning System

There’s an existing addon that handles giving warnings to players for breaking rules. This server in particular wanted a more robust warning system, with warnings of different severities with different expiration lengths. I overhauled the addon to support this, and added analytics for tracking total warns, recent warns, upcoming expirations, etc.

One interesting part of this was creating the bar chart. At work I’ve never had to give any thought to the actual implementation of the bar chart; I just feed it the data and pass arguments to make it look how I want. Here I had to draw the bars, automatically size the chart to fit the data, add labels, and make it all look nice. It was a fun challenge, and I’m happy with the result.

The warn stats page, for monitoring warn trends and frequently warned players.

Mapvote

Another improvement to an existing addon, the mapvote system. While it worked well for tracking player votes for a new map, the server administrators wanted better metrics on how often maps were being played, player sentiment of maps, etc. I added a reputation system for maps which allows players to like/dislike a map, as well as stat-tracking for how many votes maps receive and how often they’re selected. This data is stored and is viewable through an in-game panel (can you tell I like visualizing data?).

The Mapvote stats panel. Data can be toggled weighted/unweighted and sorted.

Blackjack Minigame

The current inventory addon allowed for gambling of in-game points (used to buy skins, weapons, etc.), though the existing Slots game got a bit stale. A blackjack game was requested, and sounded like a lot of fun to implement and fun for players to play. Blackjack logic is reasonably easy to implement, though it was a little more challenging to implement the UI to flow well with the gameloop. Overall, I think it turned out pretty well.

The Blackjack game. Players can bet, hit, stand, and double down.

I’ve made various other small improvements, but these are some of the ones more worth sharing. Lua and Garry’s Mod hooks evidently are not as scary as 15-year-old me thought (the five years of college education and working experience probably helped). Really the scariest part is Lua’s 1-indexing, but I’ve gotten used to it. Sometimes I 1-index by accident in Python, before quickly backspacing to cover it up (to my current and potential future employers: this is a joke).

Dusting Off Cobwebs


Let’s address the elephant in the room. BaristaVR? MLDrivers? Sitting sad and dusty in my Github repositories. The latter came quite a long way, and fell just short of the finishing line with incomplete training and ultimately disappointing driver behaviour. I’d still very much like to continue and finish it, I think I just wanted to distance myself after graduating and jumping into real life. BaristaVR has been in a bit of a limbo ever since I tried porting from SteamVR to Quest. There is solid work there (also plenty of cleanup to be done, I’m sure), and I think if I revert to SteamVR and get it working again, I’ll be in a good place to finish up the alpha I planned so long ago.

I’m looking forward to getting back to both of these projects, and I’ll share updates here as I make progress.

The Future


As mentioned, I’m planning on starting back up with some old projects. On top of that, I’ve been brushing up on my Machine Learning from school, and getting some hands-on experience experimenting with different learning techniques with Kaggle datasets that interest me. I’d like to get a repo or two up with some of the more interesting things I’ve done, and overall spend more time messing around and learning. There’s some really (really) cool stuff being done in ML, and I’d like to further familiarize myself with the field.

If you’re reading this, thanks for stopping by. I’ll be updating more regularly, and am excited to share some more hopefully cool things.

⇠ Capstone Project Update #4: The Deadline is Fast Approaching!
Barista VR Dev Update #2 ⇢