• How to setup kdiff3 as a git mergetool in WSL

    I have been developing in windows WSL recently and I encountered a problem, when in case of a merge conflict how to use a good GUI mergetool. I really like the kdiff3 on windows, so here is how you can set it up as a default mergetool in Git Download and install the latest version […]

  • Using Mosh with Mac when installed with homebrew

    When you install mosh with homebrew and if you try to connect to your computer, you will get an error message command not found mosh-server it is because when installed with homebrew, when you ssh into the computer, the path to the mosh-server binary is not present in the PATH. To solve this issue you […]

  • How to auto-start electron applications on startup

    I was developing an electron application that required to auto-start when the computer is booted and started up and it had to be cross-platform and automatic. So when the computer starts the program should run and there should be no setup required, once the user launches the application it should auto-start upon login. To solve […]

  • How to make better decisions

    After reading this post you will not instantly become a good decision-maker, but in this blog post, I will introduce you to a technique, that if you choose to adopt it, it will make you a good decision maker after some years of using it. This technique is to write down whenever you are making […]

  • ssh-copy-id: The easiest way to copy ssh keys to another machine

    I wanted to copy ssh keys to the server so that I could log in without requiring to enter the password. To do that typically I would ssh into the server and copy the public key of my laptop the authorized_keys on the remote server. I came across a better way and I realized I […]

  • Disable password prompt when running sudo via SSH

    Recently I came across a problem. I created a deploy script that would SSH into the server and run a bunch of commands, and some of those commands required sudo, but when running commands as sudo presented a password prompt, which was a problem. I solved this by updating the sudoers file in ubuntu. If […]

  • VNC into the tinkerboard with x11vnc

    I wanted to vnc into my tinkerboard, and using the default mac vnc client. I tried different packages, like RealVNC but that has license only for RaspberryPi, then I tried tightvnc but it was not working with the default mac client and getting tigervnc up was also not a smooth process, as it was giving […]

  • Running Jenkins behind NGINX Proxy

    I have a Jenkins server with a private IP address and an NGNIX server with a public IP. I wanted to point the domain for the Jenkins server to the NGINX server and the NGINX server would forward the request the Jenkins server. I got this working through NGINX proxy pass, here is NGNIX configuration […]

  • Running your apps on your own server – This site is running on my own server

    I have two software projects and a bunch of websites and databases running on the internet. They cost me around $1000 /mo. in terms of server cost to run, and I was sick of the slow performance and high costs of the computers running in the cloud. I have been inspired by the Jeff Atwoods […]

  • Maximizing productivity when working on multiple software development projects

    Software development is a creative pursuit and to enable the creative mind some cues are required, to get in the zone and kickstart the process. I am a web and mobile app developer who works on multiple projects during the day, and to enable myself doing so I have created different zones for each project, […]