](https://gagor.pro/2024/01/my-pre-commit-config-for-hugo-blog/images/cover.webp)
My pre-commit config for Hugo blog
Learn how to set up and use pre-commit hooks to automate tasks like linting, syntax checks, and optimizations for your Hugo blog.
](https://gagor.pro/2024/01/my-pre-commit-config-for-hugo-blog/images/cover.webp)
Learn how to set up and use pre-commit hooks to automate tasks like linting, syntax checks, and optimizations for your Hugo blog.
](https://gagor.pro/2024/01/git-hacks-a-set-of-my-favorite-git-aliases/images/cover.webp)
I use Git a lot, even writing this article i will commit text few times. There’s a set of aliases I rely on daily and they’re first I add in new place. Some Git commands are unnecessarily verbose. You can make your life much easier with bash-completions, but if you write it tens of times per day, it’s anyway a lot of typing… and I’m a lazy man 😄 Simple status/log checks git s s = status --short --branch --untracked-files Shows a short, branch-focused status with untracked files. ...
](https://gagor.pro/2023/04/the-best-way-to-get-nvm-working-in-ci-cd-systems/images/cover.webp)
Learn the best way to get NVM (Node Version Manager) working in CI/CD systems, ensuring seamless Node.js version management in your DevOps workflows.
](https://gagor.pro/2021/11/automatically-add-ticket-id-to-every-commit-message-in-git/cover.webp)
Learn how to automatically add ticket IDs to every commit message in Git, ensuring consistent and informative commit history by using custom Git aliases.

Learn how to resize images from the command line on MacOS using built-in tools like sips and third-party tools like ImageMagick for various use cases.

Learn how to uninstall a Homebrew formula along with its dependencies on MacOS, ensuring a clean removal and freeing up disk space.

Learn how to remove geo-localization and EXIF data from photos using ImageMagick on Linux, ensuring privacy before sharing images publicly.
](https://gagor.pro/2020/01/moving-from-linux-to-macos-first-steps/cover.webp)
Learn about the initial steps and adjustments needed when transitioning from a Linux desktop to MacOS for business purposes, including tips on keyboard shortcuts, application compatibility, and system settings.
](https://gagor.pro/generic-cover.webp)
It happen to me all the time that one of developers notifies me about some kind of problem that I can’t confirm from my account. Sometimes it was because of bad ssh keys configuration, other times file permissions, mostly such stuff. It’s sometimes convenient to “enter into someone’s shoes” to see what’s going on there. If you’re root on machine you may do that like this: Switch to developer user su developer - Easy one but that’s not enough for all cases. When you use bastion host (or similar solutions) sometimes users have connection problems and it’s harder to check. When such user have ForwardAgent ssh option enabled you may stole this session to check login problems. ...
](https://gagor.pro/generic-cover.webp)
Virtualenvs in python are cheap but from time to time you will install something with pip on your system and when time comes removing all this crap could be difficult. I found this bash snippet1 that will uninstall package with all dependencies: Recursive pip uninstall for dep in $(pip show python-neutronclient | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done pip uninstall -y python-neutronclient Depending how you installed it, you might need to use sudo. ...