I am a senior Ruby on Rails software developer.
I design and build software systems that help companies automate their manual processes, enhance their workflows and improve their efficiencies.
You can find me on Twitter or write me an email.
In addition to this site I also post videos about Dev Tools, Ruby and Ruby on Rails on YouTube
Quick demo of setting up Raycast to search the Tailwind and Devdocs documentation. Read more...
Here are a few sites/resources I have bookmarked that I refer to day to day when coding Ruby on Rails applications. Read more...
When deploying Rails 6 sites to Heroku, the Ruby buildpack would detect if the webpacker gem was installed and install yarn for you automatically. With Rails 7, webpacker is no longer installed by default, so using jsbundling-rails and extras that require yarn to be installed will cause deployment errors on Heroku. Read more...
With Rails 7 and its plethora of new javascript and css configuration options and flags, it can be quite challenging to remember just what these options are when creating a new app. Read more...
Sometimes you may want to run your Github Actions using a specific version of NodeJS (eg version 8). This can come in handy if you are dealing with a legacy application and needing to compile a specific version of node-sass for example. Read more...
I was working on some front-end code today - and when I clicked on a checkbox it mysteriously shrunk. I mean its height was set to 0px when I clicked on it. It was so strange. Some code somewhere was adding a style attribute with height: 0px. Searching my codebase I couldn’t find anywhere where this was happening. Read more...
On MacOS Big Sur - installing Ruby 2.6.7 may fail during the compilation step. Here is the snippet I used to ensure it compiles and installs. Read more...
Rails allows the adding of various callbacks that trigger during the lifecycle of an ActiveRecord operation. The standard callbacks are before_validation, after_validation, before_save, before_create, after_create, after_save, after_commit, and after_rollback. Read more...
I have turned entire businesses around with this tactic and I encourage you to at least try it for one week and notice the positive difference. Read more...
A developer will occasionally send me a pull-request that, whilst often technically excellent, has new code in it that is ready, waiting for some sort of future requirement they have convinced themselves will be needed. Read more...
Occasionally we are presented with two features that we need implemented in our application. Which one do we do first? Read more...
Last week I was stuck on a coding problem on some code I wrote a while back but that contained a nasty bug that had been intermittent and hard to pin down. Read more...
A lot of companies have blogs and news sections that are stale and not updated often. I’ve long been a proponent of keeping websites updated, particularly the news/blog section. It’s a sign of a healthy business that it is keeping its online face up-to-date and giving its clients (and more importantly potential clients) a sign that the business has a pulse. That it is doing something. Read more...
We all hate email. Or at least we should. It creates work. It sucks precious time from our day. It causes endless interruptions if not managed properly. It can control us. Read more...
Do what you love and you’ll never work a day in your life - Confucious Read more...
Print design is about how it looks. Web (and product) design is about how it looks and about how it works. They are different. Read more...
Use of a particular operating system on any platform is largely a matter of personal choice. Sometimes, that choice is made by a business or corporation on behalf of their employees, and other times, individuals can make the choice themselves. I’m often seen tweeting or facebooking the virtues of Apples operating systems and products, often citing increased sales statistics or my own experiences in my message that Apples products give me a better experience than... Read more...
I must admit, I probably didn’t test my code as thoroughly as I ought to have. Let me re-phrase that. I did test it. I just didn’t write complete test cases to ensure regressions weren’t introduced when new bits were added. As a result, maintenance always took longer than it should have, and bugs were introduced when changes were made. Even though I had read and studied the importance of testing very early in my... Read more...
A few weeks ago, I finalised some new code for a new section of an existing website. I always code websites using web standards and always test on the latest versions of Chrome (v10), Safari(v5), Opera(v11), Firefox(v3.6) and Internet Explorer(v8). In the case of the latter two, I test both the current version and the upcoming version. So the site is also run through its paces on Firefox 4 and Internet Explorer 9. As for... Read more...
Facebook is like fashion. It never ends. Read more...