27 Jan 25

Fascination Street #3

Writing for the week of Jan 31, 2025

Another technical post this week. I’ve been spending my time with generics in Rust and writing a new Ruby Gem for data contracts. Generics in Rust are pretty fascinating. The language design itself is really interesting. I remember feeling the same about the dynamic nature of Ruby years ago. There is usually one aspect of every language that really holds my attention.

The Ruby Gem I have started serves a selfish purpose. I am going to support data contracts in Schemabook and need a way to not only accept them but do things like validate them. After doing some research I’ve decided to support two different specifications. I’m in the middle of adding the validation for the first right now.

This should be really useful functionality. A team will be able to publish a contract including a schema and other business information. I’ll abstract the schema and allow teams to iterate on it, each iteration will have an option to update the contract. I’ll also abstract the business information and make that easily accessible.

Writing another Gem has been an enjoyable experience. I thought about writing it as a Rust Crate but a Ruby Gem will be easier to add to Schemabook. While doing so I’ve been looking into some of the more recent Rails additions. Rails has always including these little details that makes it enjoyable to use and backs up DHH’s recent labeling of “the one person framework”. I can attest to that being true through my work with Schemabook. But this small PR caught my eye. Aaron is including a script to make using devcontainers easier. It’s a great example of something small that spoils developers. Spinning up a devcontainer is not very complex but why should we have to think about it when a script can very easily automate it. I need to keep that in mind with my projects.

Short post this week due to being time constrained and wanting to get back to writing the Ruby Gem. This project gives me feelings like art projects do.

▧ ▧ ▧

Links

  • GitHub’s colorblind nvim theme - So good. I’ve been using it for a while now. I’m red/green colorbind and this works so well for me in dark mode. I’ve also made it my theme in the GitHub UI, which was new to me. I didn’t realize you could personalize the GitHub UI’s appearance.

▧ ▧ ▧

Music

  • Front 242 - final show video: My friend Tim pinged me alerting me to the final 242 show being posted. I wasn’t able to watch live but I’ve watched it piecemeal this week. Would have loved to have been there. I wasn’t able to go to the final US shows to deep regret.
  • New Order - Substance: revisiting this old classic, my wife and I were able to see Peter Hook again last fall and he played this album plus a lot of classic Joy Division tracks.

▧ ▧ ▧

A couple of promotions each week. First, use my invite link to try Warp as your terminal. It’s fast and has some great features. I’m not affiliated with them at all, just really like it. Also, check out my project–Schemabook, especially if you work in an organization that wants to get organized around defining data through contracts and collaboration. Lastly, I’m writing a book about learning Rust if you are familiar with Ruby. Stay tuned. As always, you can connect with me more at https://mikekrisher.com.