Sean

Weekly Brain Dump #17

- 580 words

At a Glance

Taylor’s Five Year Anniversary

I wrote a whole blog post so go check it out!

I’m just so blown away at how far I’ve come with Taylor. It even lead to me getting my current job!

Refactored Taylor’s Config handling

An issue was raised because I have a discrepancy between the documentation and the code. In the code taylor-config.json is the file used for configuring all your Taylor needs. In the documentation I call it taylor_config.json. An easy fix right? Just rename the documentation? Well yes, that did fix it.

I looked closer at the code though because I briefly considered supporting both as a politeness. I did not end up doing that but I did not how awful the configuration handling is inside Taylor. So I took some time and completely refactored the configuration handling and created the [Taylor::Config][taylor-config] class to help out. This has reduced the amount of magic strings across the codebase and now lets developers easily use this configuration for themselves if they wanted.

[taylor-config:] https://github.com/HellRok/Taylor/blob/main/src/ruby/taylor/config.rb

Taylor Export Woes

The build for my previous config change broke on the web test suite. I thought this was really strange and was able to reproduce it locally. It just boots up, runs the C++ code portion of Taylor, then does nothing, and exits.

This took a decent chunk of debugging, lots of puts statements, and even going back commits. But the strangest thing was the mrb state didn’t claim to have an exception when running the mrb_load_irep method to load the test suite.

Interestingly going back to earlier commits didn’t fix this and it started happening on my Linux builds too. This made me realise something important, the actual cause. It was because I wasn’t locking the version of MRuby used in the export Docker image but I was locking it to 3.4.0 when I compile libmruby.a. So the most recent commits to MRuby seem to have changed how the bytecode is generated. This meant the older 3.4.0 version of MRuby couldn’t load and run it.

The fix isn’t that interesting, it’s mostly just me locking the MRuby version so this doesn’t happen again.

Sailing The High Seas: An Interview with Chantey Dev K.C. Gortyn Code: This game seems really fun, I will have to buy a copy.

The Kirby Frame: A damn good way to actually stop misinformation and bad faith arguments.

JRuby 10.0.5.0 Released : Always good to see alternative Ruby implementations going well.

I’ve been thinking a lot lately about the art education: This frames AI content in a way I haven’t seen yet and is well worth the read.

Rethinking HTTP Benchmarking: Why I Built cryload with Crystal: A new web server benchmarking tool written in Crystal.

How Pizza Tycoon simulated traffic on a 25 MHz CPU: I love seeing how old games overcame limitations with clever code.

Making of words.zip: Very cool breakdown of how their infinite word search MMO game was made