January 17, 2024

Resolving git push errors

Git can be tricky, especially when you get errors. It’s important to understand what these error messages mean. In this article, we’ll look at two common Git push errors and explain in simple terms how to fix them. Error 1: Mismatched Branch Names fatal: The upstream branch of your current branch does not match the name of your current branch. To push to the upstream branch on the remote, use git push origin HEAD:main To push to the branch of the same name on the remote, use git push origin HEAD To choose either option permanently, see push. Read more

June 13, 2023

Experimenting with OpenSUSE MicroOS and i3 window manager: Day 1

Immutable desktops have gained significant traction in recent years due to their stability and security advantages. If you’re interested in exploring immutable distributions, you can refer to this comprehensive list on GitHub that provides a curated selection of options: https://github.com/castrojo/awesome-immutable#distributions. Two distribution caught my attention: Fedora Sericea and Greybeard(not on the list yet). Fedora Sericea is a variant of Fedora Silverblue, while Greybeard is an experimental project based on openSUSE MicroOS Desktop. Read more

May 20, 2023

/usr Merge

While browsing lwn.net, I came across this article mentioning Debian’s decision to delay the implementation of the /usr merge. The article prompted me to dive deeper into the topic and explore its significance. What is /usr merge? The /usr merge (also known as /usr move) entails relocating specific directories, including /bin, /sbin, and /lib from the root file system ("/") to the /usr directory. This restructuring aims to streamline the system architecture and improve versatility. Read more

April 20, 2023

Neovim Config Switcher

Neovim version 0.9.0 has been released and one of it’s new feature is the introduction of the environmental variable $NVIM_APPNAME. Setting $NVIM_APPNAME makes Neovim look for its configuration directory in $XDG_CONFIG_HOME/$NVIM_APPNAME instead of $XDG_CONFIG_HOME/nvim. 1 Here’s an example to give you a better idea. We have the NvChad’s config. $ ls .config/NvChad init.lua lazy-lock.json LICENSE lua To make Neovim use this particular configuration file, we set the env variable $NVIM_APPNAME and open nvim. Read more

April 10, 2023

Deploy Arch Linux microVM with Firecracker

Firecracker is a virtual machine monitor that leverages KVM to rapidly launch Linux guest VMs. Its key advantage is its ability to quickly start up VMs. Firecracker was created by AWS with the aim of boosting the speed and efficiency of AWS services such as AWS Lambda and AWS Fargate. Written in Rust, Firecracker is licensed under the Apache version 2.0. Firecracker is an open source virtualization technology that is purpose-built for creating and managing secure, multi-tenant container and function-based services that provide serverless operational models Read more

March 14, 2023

Firefox with Tab Style Tree

As someone who often finds myself with multiple Firefox windows open and dozens of tabs across them, managing my browsing history can be challenging. I struggle to keep track of how I ended up on a particular page, as I frequently open links in new tabs without bookmarking them. As a result, the number of tabs I have open can quickly become overwhelming. To tackle this issue, I started searching for a Firefox extension that would help me organize my tabs in a more hierarchical and structured way. Read more

September 14, 2022

Bash Builtin Colon

: is a shell builtin command inherited from the Bourne Shell. It does nothing beyond expanding arguments and performing redirection and has return status zero. : is a no-op operator similar to true and false. In fact, command true and : both use the same function int colon_builtin() underneath. Parameter expansions Shell’s parameter expansions are used to check and modify parameters. Below illustrated how : is used in parameter expansion by setting a default value combined with :. Read more

August 31, 2022

Capture ASCII photo via mplayer

Mplayer Mplayer which stands for movie player for linux and supports most video and audio formats. Its manpage is really long. Check this page for a tips and tricks for mplayer and the FAQ from multimedia.cx is a compilations of questions and answers from the #mplayer IRC channel. Capture photo using mplayer into PNG file You can capturing video and then convert the frame into png or other formats. $ mplayer -vo png -frames 3 tv:// Let’s break it down: Read more

August 30, 2022

Bash builtin Read

The bash read command is a built-in utility that read text from the standard input. Bash Read Syntax The syntax for read command is: read <options> <arguements> The read command reads a line from the standard input and split it into fields, assigning each word to an arguement. If there are leftover words, they are assigned to the last arguement. $ read user_input this is my text $ echo $user_input this is my text $ read var1 var2 var3 there are 3 arguements $ echo $var1 there $ echo $var2 are $ echo $var3 3 arguements $REPLY $REPLY is the default variable used by the read builtin. Read more

August 1, 2022

Bash Shortcut: Ctrl and Alt keys

Commands for moving Ctrl + a: move to the beginning of line Ctrl + e: move to end of line Ctrl + f: Move forward a character Ctrl + b: Move back a character Alt + f: Move forward to the end of the next word Alt + b: Move back to the start of the current of previsous word Commands for Manipulating the History Ctrl + n: Fetch the next command form the history list (same as Down arrow) Ctrl + p: Fetch the previous command form the history list (same as Up arrow) Alt + <: Move to the first line in the history ALt + >: Move to the end of the input history ( the line currently bein entered) Ctrl + r: begins a backward search through command history Alt + p: Search backward through the history using a non-incremental search for a string supplied by the usser Alt + n: Search forward through the history using a non-incremental search for a string supplied by the usser Alt + . Read more

August 1, 2022

Emulators in browser

Virtual x86 Virtual x86 emulates an x86-compatible CPU and hardware. It is written mainly in Rust,Javascript and C - source code can be found here. The following OS are supported: Arch Linux Damn Small Linux Buildroot Linux ReactOS Windows 2000 Windows 98 Windows 95 Windows 1.01 MSDOS FreeDOS FreeBSD OpenBSD 9front Haiku Oberon KolibriOS QNX JSLinux JSLinux which enable you to run Linux or other operating system in your browser. The emulator is based upon on TinyEMU You can learn about the techinical implementation here. Read more

July 26, 2022


In the Beginning.. Was the Command Line. - Neal Stephenson. A dark screen with a blinking cursor. With a few keystrokes, you can hack the world. On the command line, you must know what you are doing. With a GUI, you can guess. You can guess a lot, actually, and just poke around all you want because most GUIs come with an undo feature. There is no “undo” on the command line. Read more

Powered by Hugo & Kiss.