Skip to main content

Newest Post: The Reasonable Effectiveness of Using Old Phones as Servers

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:

  • 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:

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.

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 (I’ll post camera-ready paper here later this year, but for now, you can view the pre-print on arxiv. Below, I tell the chronology of the project and summarize our findings.

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.

The Way of Zen

Excerpts I found interesting from Alan Watt’s The Way of Zen, grouped by vibes: Definition Convention Feel Growing Spontaneity Pointing Ego Interference Present Negation Liberation Za-zen Widespread Art Definition Zen Buddhism is a way and a view of life which does not belong to any of the formal categories of modern Western thought. As will soon be obvious, a way of liberation can have no positive definition. It has to be suggested by saying what it is not, somewhat as a sculptor reveals an image by the act of removing pieces of stone from a block.

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:

Introducing Kittyplot

Kittyplot is a program designed to plot experiment data in the kitty terminal using the kitty graphics protocol, primarily for use on HPC clusters. Plots are rendered using matplotlib, and users can zoom into different regions of the plots by setting x and y limits using their editor. I use prompt_toolkit to accept regexp input and I override the tab-completion to instead display a list of all metrics that are matched by the current regexp.

Owen, Make Your Website Already

Make a fucking website already, Owen. You’ve been playing around with the idea of making a blog for like two years, but you’ve been dragging your feet. Maybe you can’t decide what framework to use, or where to host it, or blah blah blah. If you want excuses not to make a site, I’m sure you’ll find them. But it literally just takes a few hours, less if you don’t set up a domain name or theme to start.

Unexpected Benefits of Testing Code

Matthew Carlson’s blog post “Fighting Distraction With Unit Tests” inspired me to share some extra benefits of writing test code I’ve discovered during my PhD program. I’m working on a weird project that’s constantly changing as I try new things, and naturally, debugging and ensuring correctness was a nightmare. So I started writing tests, cursing myself for needing to write so much code I’ll likely throw away soon. But as it turns out, testing can be pretty helpful in a few other ways:

I Dont Know Anyone Who Blogs

I don’t know anybody in real life who blogs regularly, and I think that kills my motivation to write blog posts myself. I actually started writing this post before realizing that a friend of mine has a blog, but in my defense he’s only posted twice in the past 2 years. I suppose that makes my title a lie, but I like the title, and the point still stands. I want to build a writing habit, but it feels hard to get the motivation to do it from within myself.