• ChatGPT for Pair Programming

    greek statue on emacs

    For nearly a year now, I’ve had a side project in mind: creating a minimal version of Emacs with org-mode. This idea stemmed from my experience with Spacemacs, which, while intuitive, was plagued by sluggish performance. Finally, thanks to the assistance of ChatGPT, I was able to iterate and complete approximately 150 lines of Emacs configuration code, resulting in a lean and user-friendly org-mode client that suits my needs.

  • Taming My Temperamental Logitech G213

    Frustrated Laptop user

    Recently, my trusty Logitech G213 keyboard had started causing me problems, with a handful of keys misbehaving and making me retype search queries over and over again. This wasn’t the usual sticky key situation. A simple press of ‘N’ would sometimes throw in an extra ‘NN’ or type nothing at all. The same thing was happening with ‘G’ as well.

  • Connect a domain to S3 using Cloudfront vs Cloudflare

    AWS Woes

    Why is it not possible to have a single CNAME record on Cloudfront, but it is on Cloudflare?

  • Git commit lint

    Thanks DALL-E!

    Recently, I was re-introduced to git commit linting. I used it a long time ago, and I do believe there was some sort of a templating tool to make things easier. Here’s a quick run of what I had to do yesterday.

  • Jekyll 4 Conflict errors



    Jekyll - lingering conflict error

    The only error I was still seeing after upgrading to Jekyll 4.0 is the following:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    ...
              Conflict: The following destination is shared by multiple files.
                        The written file may end up with unexpected contents.
                        /website/_site/tag/js/index.html
                         - tag/js/index.html
                         - tag/js/index.html
    
    
              Conflict: The following destination is shared by multiple files.
                        The written file may end up with unexpected contents.
                        /website/_site/tag/nodejs/index.html
                         - tag/nodejs/index.html
                         - tag/nodejs/index.html
    
    ...
    It took me a bit of time to figure this one out, but the solution ended up being quite simple -
    I was using tags and mixing their lowercase and uppercase (e.g. NodeJS, nodejs, nodeJS).
    Once I aligned the tags to be lowercase at all times, this solved all the conflict errors.