Here is a sequential list in reverse chronological order of all the posts on this blog, separated by year.
  • 2025
  • Cleaning up this blog with AI
  • 2019
  • Batch convert HEIC files to JPEG on Windows
  • HiDPI fix for Spotify on Ubuntu
  • Taming power-hungry linux laptops
  • Six weeks at Discourse
  • CSV header converters in Ruby
  • Prevent remote: true links opening in new tabs or windows in Rails
  • Per-page background images using prawn and Ruby
  • ImageMagick unable to load module error on AWS Lambda
  • Rails Forms with Virtus and ActiveModel
  • Subset sum problem in Ruby
  • Global rescue_from error in Rails application_controller
  • Find duplicate rows in SQL
  • 2018
  • Getting nodejs file permissions from fs.stat or fsPromises.stat mode
  • field_with_errors changes page appearance in Rails
  • 2017
  • Set timezone from terminal OSX
  • Invalid byte sequence in US-ASCII
  • Expanded output format for PSQL
  • Jim Weirich Ruby talks
  • Simulating the mouse click event in JavaScript
  • Git shortcuts with FZF
  • Custom time formats in Rails
  • Back to Ruby
  • Organising C# using statements in Visual Studio
  • Sharing dynamic objects between assemblies in C#
  • Why you should not use Medium for your personal blog
  • The fundamentals of flow in 10-ish minutes
  • 2016
  • My writing blog
  • JSON schema
  • Why xUnit?
  • Easy HTTPS with Let's Encrypt
  • Google Chrome to start marking HTTP connections insecure
  • ng-stats AngularJS profiling tool
  • Fast SQL server paging
  • Angular ng-options undefined on select
  • From Wordpress to Jekyll
  • gulp.watch high CPU usage
  • Changes to NPM’s unpublish policy
  • 2015
  • I’m back
  • ES7 decorators
  • Duration parsing using juration
  • Angular directive isolate scope explained
  • A review
  • This is not allowed before super
  • Using $q.all() to resolve multiple promises
  • Mocks, stubs, and injections: unit testing in Angular.JS
  • ES6 basics
  • Learning Angular Q&A
  • Highlighting JavaScript this keyword in Sublime Text 2
  • AngularJS styleguide by @john_papa
  • Using “Controller as” syntax in Angular routes
  • Writing and programming, crafts worth honing
  • 2014
  • Lessons learned from building Rain
  • Sensible .NET REST APIs with AttributeRouting.NET
  • DocuSign connect XML schema
  • Print GitHub markdown bookmarklet
  • Could not successfully convert UCS-2 string to UTF-8
  • The SMS that started it all
  • Failed to build gem native extension on OSX mavericks
  • Another year, another redesign
  • Add open with Sublime Text 2 to Windows context menu
  • ContentResult or ViewResult response based on context
  • Custom UTC DateTime model binding for MVC
  • Enable gzip compression in IIS
  • Service timestamp issue for DocuSign
  • 2013
  • .NET MVC 4 model binding null on POST
  • Moving SVN branches and repos
  • Run AWS elastic beanstalk config commands only once
  • Box-sizing border-box for CSS grids
  • Extension methods in .NET
  • EC2 instance metadata
  • Auto-generate property in VB.NET
  • moment.js
  • Getting it done
  • Custom VisualSVN post-commit hook using Visual Studio
  • Using reserved words as identifiers in VB.NET by Theo Gray
  • Blog redesign
  • 2012
  • Why Rails by Claudio Ortolina
  • Change: A two-faced devil by Anthony Ferrara
  • Semantic templates with Mustache.js and Handlebars.js
  • ASP.NET ASHX video streaming for HTML5 video
  • Development habitats
  • PHP, mySQL and FTP on an Amazon EC2 instance
  • The beginning