Skip to main content

Dithered Tree
Newest Post: Reducing Code Complexity using UI

Hi, my name’s Jack Garbus. I’m a graduate student in computer science interested in artificial societies, cultural evolution, machine learning, and decentralization.

Featured Projects:

  • Jevo.jl
    • A high-performance, highly flexible framework for distributed deep neuroevolution
  • emergent trade
    • emergent trading protocols between embodied agents using reinforcement learning
  • kittyplot
    • a repl-based terminal plotting program
  • dtree
    • a vim-inspired mind-mapping program written in C
  • fe-alts
    • A single docker-compose of alternative front-ends to big tech services

Favorite Posts:

Contact me via:

Reducing Code Complexity using UI

I’m doing an internship right now, and thankfully, I read a few books on software design before starting.

I had to design a database schema, data submission page, submission approval page, and dynamic dashboard for the project I was assigned to. This is one of those projects that AI can obviously do 90% of to work for if designed appropriately–if the right abstractions are used, performance trade-offs are made, and the right tools are chosen. I wanted to make sure that, throughout the project, AI could always easily with any part of the codebase.

Eudaimonia in the Information Age

Wikipedia translates the Greek philosophical concept of Eudaimonia as “Human Flourishing”, particularly on the spiritual level. It refers to genuine happiness and fulfillment over hedonism or GDP.

The modern world feels meaningless at times. Instead of hunting or farming to put food on the table, many of us sit at a computer or stand behind a counter, far removed from the fruits of our labor—if our labor even bears fruit. Our screens bombard us with videos of people more beautiful and successful than we could ever hope to be while we stay inside, alone.

Upwards Pressure on Originality

It used to be good enough just to copy others. Now, with AI in the hands of billions, there’s little value in copying.

For instance, take programming. Five years ago, building apps, websites, or games required a non-trivial amount of skill, and getting your first project off the ground was an accomplishment. Now, AI can generate most starter projects in hours, if not minutes. I think this decimates the reward, both internal and external, of actually completing the first few projects.

Apple Announces iPad Pro Max

CUPERTINO, CALIFORNIA - Apple today announced the release of the groundbreaking iPad Pro Max, the world’s first tablet powered by the all-new quantum Q1 processor. Capable of 30 octillion floating point operations per second, the Q1 makes the iPad Pro Max the most powerful streaming device ever made, over 2x faster than the M4 iPad Pro. Available in both 11-inch and 13-inch sizes, Apple says that the iPad Pro Max is the perfect device for generating TV shows, movies, and games in real-time on the go using the power of AI, no network connection needed.

The Reasonable Effectiveness of Using Old Phones as Servers

I installed linux on a OnePlus6T. Setup took less than an hour, technical issues included.

Why

  • $90 for 8GB RAM, 128GB storage, 2.8GHz 8-core CPU
  • Linux on the OnePlus 6T is well documented
  • Low power consumption
  • Tiny footprint
  • No additional cables
  • Built-in battery backup
  • WiFi, bluetooth, speaker, screen, etc
  • Negligible environmental impact sans shipping
  • I wanted to play with Linux on ARM

I don’t need a dedicated cable to power or connect it. Running on wifi, it only needs to be plugged into my phone’s charger. Whenever I need to charge my phone, I unplug the server and plug in my phone. It takes up so little space that I literally leave it on my night stand.

Zen in the Art of Beat Saber

Contents: Introduction, Step away, come back later, Focus, but not too much, Generalization comes after specialization, Don’t bother if you don’t need to, Let Go

Introduction

I recently read Zen in the Art of Archery, which isn’t a book about archery as much as it is a book about zen. The book describes author’s journey learning archery from a zen master. I highly recommend it, the book is a short read–I finished it in a day.

Emergent Trade and Tolerated Theft Using Multi-Agent Reinforcement Learning

I’ve been an author on a few papers before, but I recently published the first research project where I was responsible for most of the work and direction. It’s in the first 2024 issue of the journal Artificial Life, which you can find here. You can find a non-paywalled version here Below, I tell the chronology of the project and summarize our findings.

Emergent Trade

We explore the conditions under which trade can emerge between four deep reinforcement learning agents that pick up and put down resources in a 2D foraging environment. Agents are rewarded for having both resources once, but the resources are distributed far apart from each other. To maximize reward, agents need to split up the work - agent 1 goes to resource A, agent 2 goes to resource B, etc, and then they meet to exchange resources, since meeting halfway can get them the most of each resource in the shortest amount of time.

Take the Road Most Documented

How great would it be if the solution to most errors you face were in the first place you looked? That’s what the Arch Wiki has been for me: a massive wealth of information and troubleshooting resources to help me navigate the various configuration and installation issues I’ve encountered. Some people claim Arch Linux is too difficult for new users, but for me it’s been the only distribution I’ve been able to get consistently working, and it’s all thanks to the detailed documentation and known workarounds.

Numerical Stability in Flash Attention

Flash attention, a recent implementation of attention which makes less calls to high-bandwidth memory, uses a version of the softmax function which is numerically stable. In this post, I’ll briefly showcase how this is done and an example of an unstable softmax.

The softmax function is used in machine learning to convert a vector of real numbers to a vector of probabilities which sum to 1, and is defined as: