Hi, I'm Nithin.
I am a software developer based in Ottawa, Canada. This is my blog about programming. Ruby is my programming language of choice and the topic of most of the posts here, but I occasionally also write about the books I read, or other technologies that I'm tinkering with.
2026
2025
-
31 DecFavorite books of 2025 books -
17 DecWhat's new in Ruby 4.0 ruby -
25 NovReview: Airpods Pro 2 with Android reviews -
14 NovObsidian Bases: Formula for star ratings with half stars obsidian -
10 NovMoving form Logseq to Obsidian logseq obsidian -
11 JulStop memoizing Hash lookups in Ruby ruby -
26 JunMigrating Postgres to SQLite using the Sequel gem postgres ruby sqlite -
25 JunExporting fly.io postgres database postgres rails -
09 JanFavorite books of 2024 books
2024
-
17 DecWhat's new in Ruby 3.4 ruby -
16 DecReview: Galaxy Watch 7 Ultra reviews -
04 Novavante.nvim: AI copilot in Neovim ai vim -
30 OctOptimizing page loads for Giscus comments jekyll javascript -
22 OctRails 8 authentication generator rails -
08 OctContributing to Ruby docs ruby -
26 SepRails: Benchmark.ms deprecated rails ruby -
03 JulScript to bump Ruby version in Rails app ruby rails -
30 MayA decade of vim vim -
25 MayBlocking AI bots with robots.txt in Jekyll ai jekyll -
23 MayReview: Macbook Pro 14" (M3 Pro) reviews -
21 MayComparing Llama3, Phi3 and Gemma performance on different machines ai -
29 AprRunning LLama 3 and Phi-3 locally using ollama ai -
09 AprAbstract methods and NotImplementedError in Ruby ruby -
25 MarCopilot and Neovim vim -
26 JanRake task for Jekyll stats jekyll ruby -
21 JanNumeric operations on value objects in Ruby ruby -
15 JanLong exposure images from videos photography -
13 JanFavorite books of 2023 books
2023
-
17 DecWhat's new in Ruby 3.3 ruby -
16 Oct15 years of programming programming -
08 AugRuby's bang methods - Handle with care! ruby -
02 AugHighlighting liquid code in Jekyll jekyll -
01 AugRuby and Jupyter notebooks ruby ai -
27 JulJekyll: Skip analytics scripts in development jekyll -
26 JulOne hundred posts jekyll -
16 JulJekyll: Group posts by year jekyll -
15 JulDark mode jekyll -
14 FebAdding Sorbet to a Rails project rails ruby sorbet -
10 FebLogseq: How to write custom slash commands logseq -
18 JanFavorite books of 2022 books -
10 JanWhat's new in Ruby 3.2 ruby
2022
-
28 JanFavorite books of 2021 books -
24 JanWhat's new in Ruby 3.1? ruby
2021
-
29 JanFavorite books of 2020 books
2020
2019
2018
-
12 FebFavorite books of 2017 books
2017
2016
-
25 DecWhat's new in Ruby 2.4? ruby -
30 AugFeature flags in Phoenix projects using laboratory elixir phoenix -
24 AugBit array data structure in Ruby ruby -
21 AugRecurring events in Rails rails -
30 JulRails: Automatically set user timezone during signup rails -
06 JulRails: Handling redirects in the router rails -
13 JunWriting and publishing an Elixir library elixir -
09 JunShell history in Elixir (IEx) and Erlang elixir -
10 MayNotes from Open Source Saturday community open-source -
04 JanWhat's new in Rails 5? rails -
02 JanFavorite books of 2015 books
2015
-
20 DecConfident Ruby (Avdi Grimm) reviews books ruby -
14 DecGetting started with Distributed Ruby (DRb) ruby -
07 DecWhat's new in Ruby 2.3? ruby -
27 NovTurbolinks and Google Analytics rails -
24 JulAvoid time_ago_in_words in Rails rails -
22 JulSet page titles and meta tags in Rails views rails -
17 JulGetting started with Rails 5's ActionCable and websockets rails -
11 JulBuilding a chat application using Elixir and Phoenix elixir phoenix -
04 JulUsing bower with Phoenix elixir phoenix -
30 JunUser authentication from scratch in Elixir and Phoenix elixir phoenix -
06 JunGradual engagement with Rails rails -
05 JunDemystifying @tenderlove's homeopathic code optimizations ruby -
04 JunRegular expression matching in Ruby withString#[]ruby -
03 JunRails tests: Setting up guard with minitest for quicker feedback rails -
02 JunHigh level Rails testing using Capybara and Minitest rails -
30 MayGetting started with Phoenix: Building a scaffolded CRUD app elixir phoenix -
22 MayOne year with vim vim -
21 MayDon't use jquery-rails gem alongside rails-assets rails -
18 MayDisable unsafe rake tasks in Rails production environment ruby rails -
17 MayRake task to drop and reseed database in Rails rails -
14 MayBootstrap flash messages in Rails rails -
12 MayRuby on Rails upgrade guide rails -
11 AprWorking with MongoDB's aggregation pipelines in Ruby mongodb ruby rails -
16 MarTracing global variables in Ruby using trace_var ruby -
03 MarInfinity in Ruby ruby -
23 FebHow I submitted my first patch to Rails (and you can too!) rails open-source -
16 FebPassing optional locals to Rails partials ruby rails -
12 FebHow to use Ruby instead of sed and awk awk ruby sed -
09 FebFixing git merge conflicts from vim using vim-fugitive git vim -
06 FebThe boy scout rule refactoring -
18 JanMaking vim play nice with ZSH and RVM vim zsh -
04 JanFavorite books of 2014 books
2014
-
28 NovEnable asset compression after upgrading to Rails 4 rails -
21 NovFlip flop operator in Ruby ruby -
19 NovGoogle Inbox -
10 NovBetter asset management in Rails using Rails assets rails -
09 NovTail call optimization in Ruby ruby -
30 OctHaskell quicksort haskell functional-programming -
27 OctMemoization in Ruby using metaprogramming ruby -
25 OctGetting started with Io io -
23 OctWhen to use protected methods in Ruby ruby -
28 SepNTFS support on OSX El Capitan osx -
25 SepPresenters in Rails rails -
24 SepDecorator pattern in Ruby programming ruby -
03 AugProblem resolving long CNAME DNS records programming -
27 JulThe law of Demeter programming -
23 JunElementary OS (Luna) operating-systems -
16 AprComplex has_many :through associations in Rails rails -
04 FebSingle quotes or double quotes? programming -
01 FebExport to CSV in Rails rails -
27 JanDefending Java programming -
23 JanFavorite books of 2013 books
2013
-
08 AugHello, world! jekyll