GeekSocket Plug in and be Geekified

Writing Emacs Lisp to convert ICS to Org mode list

A couple of months back David O’Toole (dto) taught me basics of Emacs Lisp (Elisp). These were things like lists, symbols, functions, debugging and a few more things. After the session I was consciously observing my workflows, so that I can make improvements to them by writing Elisp. We wrote one such fuction during the session, but I had not written anything apart from that. Recently, I wrote an Elisp function to convert event entries from an ICS (iCalendar file) to Org mode list.

How to get notifications from

I maintain a Copr for Emacs pretest builds. I wanted to have a mechanism to get notified when a new pretest release is available. That way I can keep the pretest RPMs on Copr up-to-date. In this post, I will be talking about the Anitya project, which is hosted at and how to get an email notification, when a new release of an upstream project is available. What is release-monitoring.

Hosting fonts locally on the website

Privacy matters, and everyone should care about it. I wanted to get rid of the few things from my website which don’t respect user’s privacy, which try to track users. I didn’t want to get in a trap of all or nothing, and just wanted to start making the changes. So, I decided to tackle an easy problem first. That is to stop using and host the fonts local to the website server (self-host).

How to setup Emacs LSP Mode for Go

I use GNU Emacs as my editor, and I use it to write Go code as well. In this blog post I will be talking about basic setup of LSP Mode and gopls to work with Go code. What is LSP Mode Before we get to that, What is LSP? The Language Server Protocol (LSP) defines the protocol used between an editor or IDE and a language server that provides language features like auto complete, go to definition, find all references etc.

Learning Dvorak keyboard layout

I have been using Dvorak keyboard layout since the last 4 months now. In this post I will be covering things like why I switched to it, what issues I faced while learning it and more. Why I switched to Dvorak I learned touch typing during dgplug summer training 2017. I was able to type all the characters and basic punctuation marks. I did not cover the number line at that time.

EmacsConf 2020

EmacsConf 2020 happened last to last weekend (28th & 29th November). Same as last year, the conference was online. With more people helping with organizing the conference, it was an amazing and well executed conference. EmacsConf is the conference about the joy of Emacs, Emacs Lisp, and memorizing key sequences. — From EmacsConf website. This year it was a two days conference with 37 talks in total. We had almost 1.

How to use Hugo Modules

I use Hugo for this site. I migrated to Hugo from WordPress a year ago. Hugo is a static site generator written in Go. Hugo project has frequent releases, so I usually update the version once in a few months. This involves reading all the release notes and making any changes to the theme if required. The theme changes are required rarely though. While going through the release notes of v0.

GNU Emacs pretest builds for Fedora

I have been following GNU Emacs development through Debbugs and Sacha Chua’s newsletter. I always felt that I should use the latest development version of Emacs, instead of sticking to stable release. That way I get to use the latest improvements and also help in testing the changes. If I find any bugs, I can report those. The motivation for building pretests I was planning to build RPM packages for Fedora from master branch.

Monitoring workstation with Prometheus

Prometheus is a monitoring system and a time series database. It can collect metrics from different places and store it as series of values over time. It uses pull based mechanism to collect the metrics. Applications can expose the metrics in a plain text format using HTTP server, which is then fetched by Prometheus. Fetching of metrics is called scraping. For other systems which don’t expose the metrics in Prometheus exposition format, we can use exporters.

How to manipulate JSON using jq

JavaScript Object Notation, often referred as JSON is a data representation format which is human readable and easy to parse for machines. Personally, I find it hard to comprehend huge JSON files. In this blog post, I will be talking about the tool called jq. It’s a CLI tool to parse and manipulate JSON objects/files. How I started using jq In the past one year, I have been writing a lot of shell scripts (mostly for bash).