Jujutsu: Working With Git

After reading (not done) Steve’s Tutorial and Official doc 1 (which mentions Steve’s tutorial anyway) I decided that actually using it on real projects is the way to go. Here is the workflow (after a few 2 iterations 3) that works jj new : Declare your intention to start new work. jj describe : Intention alone is not enough 😀. What will you be working on ? Now work. Make changes.

Continue Reading »

Jujutsu : git compatible but better DVCS

I learnt about Jujutsu from the “Rust in Production” podcast episode about Git Butler One of the attractive quality about it is that it works with existing git repos 1 First superpower : Start using it with existing git repo locally cloned using jj git init --git-repo=. 2 This creates a .jj folder in the existing repo. .jj and .git co-exist peacefully But I didn’t know that. So for the first project to try Jujutsu, I jj git cloned my existing repo in a new folder, so that I have “old” git repo as well as jujutsu repo.

Continue Reading »

Waydroid

I wanted to use Openvibe - an app that allows having a single timeline across multiple social media networks like mastodon and bluesky. It also supports cross posting (and more) But currently it only has mobile apps (for both iOS and Android) While the Desktop app is “in the works” - no specifics are provided. I do not use mobile apps if at all possible. (Except for podcast and messeging apps to keep in touch with Family - on the go.

Continue Reading »

How to Turn Off Inlay Hints in VS Code

I initially tried to turn off the type hints via rust-analyzer extension setting, but that did not work 😞 Turns out it is very complicated (at least for me) documentation did not help 😞 Here is what worked for me. Thanks to SO 1 Open Command Palette Cmd+Shift+P Select Preferences: Open User Settings (JSON) from the drop down Add the following to existing settings Or create new one, if empty. You may need to enclose it within { } though.

Continue Reading »

Better History Search

No, I’m not talking about Atuin. 1 I improved my search experience with just one tool - fzf As you might know, fzf is a general purpose fuzzy finder. 2 But adding just source <(fzf --zsh) at the end of ~/.zshrc (and/or running it in your existing session) improves your Ctrl+r experience. See the demo yourself. I must confess that I’m tempted multiple times. But I think their USP is history sync, which is not my use case right now.

Continue Reading »

How to use Google Keep for Quick Capture with Obsidian

Problem While I use 1 Obsidian to capture everything while I’m at the desktop, it gets tricky when I’m away from the Desktop. Especially during my morning walk, I listen to Audiobook, and want to capture either a quote or some of my own related thoughts. 2 Solution Today, I came across a YouTube Video 3 which addresses this issue. Zsolt goes on to explain how see sought suggestions on Twitter 4

Continue Reading »

direnv with python

What is direnv direnv is a tool that allows you to change your environment based on the configuration in that folder. e.g. You can set different environment variables for different folders. The reason I revisited direnv is because for python project, we need to switch to different virtual environment each time we change a project. Wouldn’t it be nice if correct virtual environment was activated when you change to that directory

Continue Reading »

fill-paragraph in Helix

Emacs 1 has this command fill-paragraph (Usually M-q) which will auto format long uneven lines to make them look even by adding a hard wrap. But I use helix for writing these blog entries. That is how I discovered reflow command in Helix. It is simple really Select the blocks of text you want to format (by typing x and repeating for as many line as you have). Then :reflow. That’s it!

Continue Reading »

→ Conventional Commits

Few days ago, I heard about this on some podcast (maybe changelog ? 🤷‍♂)

I have been using similar notation for my commits - even for this blog1 - but I did not know it is a specification.

The idea is that very first word of the commit message should indicate what sort of commit is it.

Most common ones are : fix, feat (To indicate bugfix and a feature)

Other useful ones are: docs, style, refactor, test

Then there is chore (catch all ? 😄)

I’ve used some of these at work as well.

As the website mentions, benefit of such style is that some tools can parse the git log to automatically generate the changelog.

Website also mentions, that

it’s not the end of the world if a commit lands that does not meet the Conventional Commits specification. It simply means that commit will be missed by tools that are based on the spec.


  1. Since the commits are just addition or updates to markdown files, most of the tags are not used here. I only use Add and occasional Update. I do believe it is in the spirit of conventional commits 😄 ↩︎

Logseq : Take 2

I wrote about logseq almost two years ago and then I think when I switched job, I stopped using logseq. When I updated macOS, I forgot to install it, and forgot about it overall (I started using denote - in Emacs for some time) Recently when I started using obsidian while trying l learn more about it, I came across logseq again. I tried it again (after 2 years) I spent time learning basics (again)

Continue Reading »