RSSAmplifier

Blog

Yuri's Site

This website is a virtual proof that I'm awesome

blog.yuribocharov.devRSS feed ↗14 posts

Latest posts

TIL

TLDR Assuming a repo main_repo/whatever and your fork forked_repo/whatever. git clone git@main_repo/whatever.git git remote rename origin upstream git remote add origin git@forked_repo/whatever.git Setting Up A Forked Repo for Easy Contributions Have you ever contributed to an open source project? The typical process is as follows: Fork the repo git clone...

TIL

Ruby can match string against other strings or regular expressions using =~, match and match?. They all do slightly different things. p "teapot".match /pot/ # => <MatchData "pot"> p "teapot".match? /pot/ # => true p "teapot" =~ /pot/ # => 3 (offset of match start) But did you know that...

Playwright Tips and Tricks

I recently made a post talking about migrating from Selenium to Playwright backed tests and the benefits my company saw from the migration. That post was mainly higher level and it avoided direct discussion of a lot of the issues I ran into. This post is meant to be a...

Deflaking System Specs by Migrating from Selenium to Playwright

Deflaking System Specs by Migrating from Selenium to Playwright The post is mainly targeted towards Ruby developers that write system specs and have issues with non-determinism. I recently worked on porting several Rails codebases from Selenium to Playwright backed tests and saw massive increases in consistency of tests. Below is...

Building a CI Platform on Github Actions

Providing CI for 25 Rails Apps On the code you see The code you see here may or may not work. It is largely taken from memory because I am not allowed to share my companies code. Brief Background I work on something similar to a “platform” team for 130...

Suuuuuuper Weird JSON Bug

Suuuuuuper Weird JSON Bug I was working on a Rails 7.1 to 7.2 upgrade this last week and ran into a particularly unexpected JSON bug. In this post I wanted to document my troubleshooting process. Initially the bug manifested as failing system specs in CI with no clear connection between...

RSpec --bisect And Flaky Tests

Rspec --bisect And Flaky Tests A few months ago I watched this talk on flaky tests at RubyConf by Alan Ridlehoover. I watched it found it, found it interesting but thought to myself: “That’s great, but I don’t have those issues, my flakiness is just systems tests being systems tests”....

Random Tidbit: Delayed Job Queues

Random Tidbit: Delayed Job Queues I recently added named queues to a Rails I was working on using the Delayed Job gem. There were a few small hiccups that I wanted to share. Why Named Queues? This application primarily used jobs to send email notifications. Most of these email notifications...

Converting nix-shell Personal Site to a nix flake

Converting nix-shell Personal Site to a Nix Flake As mentioned in this post, I have finally converted my personal site, previously configured as a nix-shell, into a Nix Flake. In this post, I will explore the benefits of this transition and outline the process. Don’t worry, it really isn’t difficult....

Exploration: Trie Data Structures

Exploring Trie Data Structures: A Brief Exploration Go Trie Implementation If you just want a Go Trie implementation to copy and paste, just jump to the end. A Trie, also called a digital tree or prefix tree, is a type of tree data structure used for locating specific keys in...

Tmux Session Auto-Saving using a Systemd Service

Exploring basic usages of systemd services - Setting Up a Service to Run tmux-continuum without a Status Line tmux-continuum and its companion plugin, tmux-resurrect, are invaluable tools for managing sessions in tmux. However, I recently encountered an issue where these plugins stopped working after I made some changes to my configuration. Note on Nix and the Content...

Bundling Node Modules on Nix

Bundling Node Modules on Nix This will be a relatively short how-to post, focusing on practical steps rather than in-depth explanations. When we last left the process of packaging our Jekyll site, we had the following as a shell.nix file: with (import <nixpkgs> { }); let env = bundlerEnv {...

Developing a Jekyll site on NixOS

Developing a Jekyll Site on NixOS This post is long I won’t fault you if you are trying to solve your own issue and want to skip to the end. (Or if you think I am a terrible writer). So here is a link. Why Am I Writing This Post?...

Exploring Concepts: Bloom Filters

Exploring Concepts: Bloom Filters Ever wondered how, when signing up for Gmail, it can immediately tell you whether the account name you are selecting is in use? Is Google running Gmail on something so powerful that it can inspect every Gmail account and tell you if you are trying to...