Category: Programming

  • Install Ruby 2.7.5 using RVM on Ubuntu 22.04

    RVM is a great tool to manage multiple versions of Ruby when working on projects. I was working on a Rails project which was using Ruby 2.7.5, so tried to install it using RVM’s standard installation process: rvm install 2.7.5. It fails, and in the log file you can see this: After a bit of…

  • Speeding up PHP CLI applications using OpCache

    I run a few PHP based applications which require background jobs, and I use the usual crond via crontab to run the jobs. PHP has an excellent feature – OpCache which can cache the compiled code in memory to speed up the web applications, where typically the PHP-FPM process is a long running process so…

  • A Golang program to dump serial data into CSV file

    A unique situation in which I wanted to dump the memory of a program running on a microcontroller – the program can send data through serial port, but for it to make sense for the programmer it has to be dumped in a readable format. And another challenge was that the controller was programmable only…

  • Golang on OpenWRT MIPS

    I have been tracking Golang for quite a while since I came to know about it I guess about 3 years ago primarily because it is very easy to use and build static binaries that just work about anywhere. And no dealing with memory allocation stuff which often lead to frustrations and segmentation fault bugs…

  • Date range in a MariaDB query using the Sequence Engine

    One of my applications involved generating a date-wise report for items created on that day and we needed zeroes against the count of items on the date which had no entries. User selects a date range and the application must generate this report. Not so easy if I had not come across the MariaDB Sequence…

  • A WAN monitor running on Google AppEngine written in Go language

    A WAN monitor running on Google AppEngine written in Go language

    As I stated in my earlier post, I have two WAN connections and of course, there’s a need to monitor them. The monitoring logic is pretty simple, it will send me a message on Telegram every time there’s a state change – UP or DOWN. Initially this monitoring logic was built as OpenWrt hotplug script…

  • CloudFlare Dynamic DNS using OpenWRT

    I use dynamic DNS for my home internet connection so that I can access the machines from anywhere on the internet. And I use OpenWRT on my router. Earlier I was using Namecheap for managing DNS but I switched to CloudFlare for performance and security reasons of the website. Unfortunately CloudFlare doesn’t support updating IP…

  • Trac and Git: The Right Way

    This post is about configuring Trac and Git to work together properly. As you might be knowing, Git is a DVCS – Distributed Version Control System and Trac is a project management system. By default, Trac supports SVN, but there are plugins for Git and Mercurial. I don’t know if there are plugins for other…