Skip to content

Development

Bluesky for comments on mkdocs blog

Background

I have recently migrated this blog from Jekyll to Mkdocs using material theme. I was also planning to move away from Disqus commenting system given all the known issues and just when I had finished the migration to Mkdocs, there was this post from Emily Liu - which showcases how easily the bluesky replies to a post can be added in comments section of a blog page. Followed closely by this, was a post from Cory Zue who created NPM packaging.

I initially was looking to use that on my blog and while searching for that package on jsdelivr, I came across the bluesky-comments-tag: a package created by Matt Kane. I understood the code behind this one much better and that was my starting point. There were two problems with the solution thus far that I wanted to solve.

Problem Description

For the comments to appear on the blog, the bluesky post url needs to be added to the frontmatter. Now that is a cyclic process because you can't post the url of your blog post on bluesky until you have published it.

This, I have solved to an acceptable flow as shown below and the "How?" is explained in this post.

Logseq Customisations for Project Management Template

Background

While the overall planning of project timeline gets lot of attention in the world of software, the most important aspect of project management in my experience is maintaining and tracking Issues and Actions. This in normal project management practice is carried out through the use of an Actions Log and an Issues Log. In addition any medium complexity project invariably will have internal and external dependencies / constraints, risks which I tend to track on Constraints Log and Risks Log. Finally, every project has decisions that I track on a Decisions Log.

Additionally, any opportunities that I identify during the course of project that are not in the scope of my project I capture those too in an Opportunities Log

Now all these logs have fairly standard fields so I created and started using an excel template and began calling it CARDIO Log short for log of Constraints, Actions, Risks, Decisions, Issues, Opportunities for a given project. This has worked well for me over the past 15 years or so but there are times where in order to maintain it meant cross linking an action to an issue or a risk and so on and more often than not it would become easier to just track actions in one of the other logs and that would make it a bit chaotic.

That problem, however, is what I thought, can be resolved using Logseq especially after starting with the template by the Logseq community user Luhman and starting with his template and explanation provided here.

Git Basics

Basics of Git

Recently, I was asked to help people understand what is this whole business with GIT and I ran a few sessions on the topic specifically keeping in mind that my audience consisted of tech enthusiasts with minimal tech background. The content below is how I explained and as it went down well, I figured it may be helpful to someone else too; hence this post. 😄

JupyterLite on Github Enterprise with Panel enabled

Recently I found myself in a scenario where I had access to Github Enterprise but was limited to a windows machine. Now I wanted to host JupyterLite on Github Enterprise so it can be used by some other people on my team. Challenge was the "Actions" on this instance of Github enterprise were disabled and so I had to build Jupyterlite locally and push it on Github. I figured while at it, I might as well enable the "Panel" and few other dependencies. The steps that worked for me are documented here. This is ofcourse assuming that Python is already installed on the device.

The final hosted JupyterLite can be seen in action here.

The steps below created a Jupyterlite instance that allows use of Panel using the %pip install panel magic command, and if used on Chrome or its derivatives it also allows exploring local file system.

MySQL Function to calculate closing WorkDay date given elapsed working time

On my post MySQL function to calculate elapsed working time I was asked in comments if the assumptions can be reversed such that given start date, starting time and closing time of site and the elapsed working hours, function should return the closed date. I was convinced that it will be possible to achieve this with minor tweaks to original logic and so I only concentrated on original code and how to tweak it to achieve the result. It is very likely that there might exist a more elegant solution but frankly I did not have a usecase I did find a usecase afterall - Clue was in redefining the problem description for this. Presented below is the function that with my minimal testing seems to give correct results. Feel free to try it and as always any feedback is welcome. 😄

Problem Description:

Find out the WorkDay date by when a ticket must be closed given:

  1. Country of site for which incident was logged.
  2. Time and Date when Incident was logged.
  3. Elapsed working hours in decimal. (Ten and a half hours as 10.5 and so on)
  4. Opening time of the site for which the incident was logged.
  5. Closing Time of the site for which incident was logged.
  6. SLA Type - Is the output date to be based purely on number of hours or based on SLA in days (eg: Next Business Day).

Assumption

It is assumed that opening and closing times are same on all working days and that all the sites are closed on holidays and weekends.

Grav - CMS with a difference

While I love Ghost as a blogging platform, it is not best placed for things other than blogs - after all that is the basic idea behind creation of this wonderful tool.

As I wanted to host a static website using tools that don't require a database or rely on php, I went searching on interwebs. I came across a lot of options and the most popular one appears to be Jekyll and it's variants (Nikola and such) but they require a lot of terminal activity which won't go well for regular end user responsible for maintaining content of the static website in question.So I continued looking and came across this wonderful project called Grav.

Grav is super fast, very pretty and extremely easy to deploy and maintain. Additionally, it has very good documentation.

The key features that I absolutely loved are as below: