# Posts

##### Automating some steps of the conversion of an existing codebase to TypeScript
###### Wed, Sep 2, 2020 - ~300 Words
Below is a simple script which will take the list of .jsx files (in this case under the app/javascript directory and for each file it will rename it to have a .tsx extension, and then if webpack compiles (which means that the code type checks) and all tests pass, then this rename can be converted. If either fail, then the rename is reversed and the next file is tested. The motivation for this is that in a codebase of some hundreds of JS(X) files, the majority can actually be renamed cleanly, in part as currently we allow the any type implicitly.
##### Getting a Quick Summary of Failures on Github Actions With RSpec
###### Wed, Jan 27, 2021 - ~500 Words
We recently migrated from Circle CI to Github Actions to take advantage of the ability to have all CI runs start immediately no matter how many branches we pushed up at once (on Circle we paid for a limited number of runners, whereas on Github Actions you pay for the minutes used). One thing that we missed however was the short summary of failures that Circle would give us if any spec failed.
##### Zero Downtime Migrations With Rails and Mysql 5.6+
###### Sat, Apr 18, 2020 - ~700 Words
As the size of your tables increases the risk of downtime also increases as MySQL will by default apply a full table lock for many typical DDL operations. If you find yourself in the position where adding a column to a table will cause downtime for your application then you may avoid transformation of your schema in general, which can stop a major part of the system design from evolving.
##### Setting Up React and Bootstrap 4 on Rails 6
###### Sun, Sep 8, 2019 - ~800 Words

In this post we will take a freshly-created Rails 6 app and set up React with Bootstrap 4 such that both the Rails and React-based views can use Bootstrap components.

##### Initial Thoughts on Ruby Pattern Matching
###### Tue, Jul 2, 2019 - ~800 Words
This post represents a first attempt to evaluate the new pattern matching feature in Ruby 2.7 with a view to determining what use cases it might be a good fit for, both in general and in the context of Ruby. Thanks to @mametter for corrections to this post. Use case: processing JSON This is perhaps the most directly useful application of pattern matching that I could find. Taken from this slide.
##### Improving Vim/Neovim Rendering Performance
###### Mon, Apr 15, 2019 - ~400 Words

A work in progress, but if you’re experiencing slow rendering performance in vim or neovim (particularly in Ruby files) then here is a list of things to try for a hopefully smoother experience.

##### Recurring Issues Installing Ruby C Extensions on OSX Mojave
###### Thu, Mar 7, 2019 - ~400 Words

Recently I have had to take the time to fix failed installations of Ruby libraries which build C extensions on Mojave in multiple development environments and across multiple versions of Ruby. The solution(s) are in the end thankfully quite straightforward.

##### My Development Setup
###### Sat, Mar 2, 2019 - ~300 Words
Terminal / Shell Dotfiles use the Thoughtbot collection as a lightweight base, with all customisation performed in a separate dotfiles-local repository. This gets me: Basic configuration of zsh A basic tmux setup vim/nvim integrated with tmux such that moving between vim and tmux panes is seamless, using the same motions. And most importantly, with this approach there are no lines in the config that I do not understand. Using Alacritty for a lower-latency experience.
brew cask install macvim