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.
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.
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.
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.
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.
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
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
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!
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.
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 😄 ↩︎
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)