All About My Custom Hugo Theme KMT

My ToDo List for 2024 (daily updates)

Should I use fmt.Println() or log.Println() in my CLI app in Go ?

Choosing between fmt.Println() and log.Println() in your CLI application depends on your specific needs regarding output formatting, verbosity, and where the output goes (stdout vs stderr). fmt.Println() is part of the standard library and is suitable for general-purpose output. It prints to stdout by default, which is typically where you’d want your CLI application’s output to go. It’s straightforward to use and doesn’t require any setup beyond importing the fmt package.

Why spam is banned online ?

What is spam ? 🔗 Spamming is doing the same thing too many times. For example, publishing the same comment 10 times on the same post. Another popular example is to send the same e-mail message to 100 e-mail addresses at once. Why spam is banned online ? 🔗 User Experience: having too many useless messages (spam) makes useful messages go out of your sight. That impacts your experience of the software/app/platform in a negative/frustrative ways.

Choosing A Terminal for my macOS — Alacritty, Kitty & iTerm2

I use and love the stock Terminal app in macOS ( but I want to have another efficient/performant alternative. So, I am exploring to find the suitable one and gain more knowledge and experience. Comparison of Terminal apps 🔗 ~ Alacritty Kitty iTerm2 Terminal GPU rendering yes yes no no language Rust Python, C, Go Obj-C ~ performance 5/5 4/5 3/5 2.5/5 efficiency 5/5 2/5 2/5 2/5 feature-rich 1/5 3/5 5/5 1/5 The information in the above comparison table is got from GitHub source code of the each respective terminal emulator app, and from Gemini AI chat (by Google).

How to Free up Disk Space on Ubuntu Linux ?

Empty Trash 🔗 Empty the trash can. Or use this command to empty the trash. rm -r ~/.local/share/Trash/info/ && rm -r ~/.local/share/Trash/files/ Unwanted screenshots 🔗 Delete unwanted screenshots and screencasts if you have any. Remove Unused Packages 🔗 Use this command sudo apt-get autoremove # or sudo apt autoremove to remove packages that were automatically installed to satisfy dependencies for some package and are now no longer needed. This includes old Linux kernels that were installed during system upgrades.

Is Go Used in Production more than Rust ?

I was wondering if programs used in the real world are mostly written/built in Rust or Go? How to create a real world statistic to compare ? Homebrew package manager 🔗 I found that Homebrew lists the dependencies of the package like this. $ brew info eza ==> eza: stable 0.18.13 (bottled) Modern, maintained replacement for ls Not installed From: License: MIT ==> Dependencies Build: pandoc ✘, pkg-config ✔, rust ✘ Required: libgit2 ✘ ==> Analytics install: 12,792 (30 days), 38,295 (90 days), 68,375 (365 days) install-on-request: 12,790 (30 days), 38,293 (90 days), 68,375 (365 days) build-error: 0 (30 days) The dependencies of eza to build are pandoc, pkg-config and Rust.

Trend of Focusing on Software Performance & Efficiency

You are hearing blazingly fast, faster, at the speed of thought, lightning fast, wicked fast,.. and too many similar phrases. This trend of performance optimization is not just in words and projects and such, It expands to include programming languages themselves, libraries, websites, servers, all things software. Even hardware, but we’ll focus on software. Performant and efficient programming languages 🔗 If you plot the performance and efficiency of programming languages from 2000 until 2024 (current year), you’ll find that the programming languages are competing to boost their performance and efficiency.

Should I use `mb_strlen($text, 'utf-8')` or `strlen($text)` in PHP ?

In most cases, you should use mb_strlen($text, 'utf-8') in PHP. Here’s a breakdown of the reasons: Why mb_strlen is the recommended? 🔗 Accuracy for Multibyte Characters: mb_strlen is designed for handling multibyte character encodings like UTF-8. It considers characters that can be composed of multiple bytes, giving you the correct character count. strlen assumes single-byte characters and might undercount the length for strings with characters outside the basic ASCII range.

Don't Communicate by Sharing Memory, Share Memory by Communicating: A Go Approach

This concept, a core principle in Go’s concurrency model, can be confusing at first glance. Let’s break it down with practical examples in Go, highlighting the difference between unsafe memory sharing and safe communication via channels. The Problem with Shared Memory 🔗 Imagine two goroutines (lightweight threads) in your Go program, Reader and Writer, that need to access the same data: var data int // Shared variable (unsafe) func Reader() { fmt.

How I improved page loading speed from 52 to 94

I used PageSpeed Insights , to detect the performance bottlenicks so I can analyze and fix the performance issues. Here are all optimizations I did on to improve the PageSpeed Insights performance metrics. run scripts inside web workers 🔗 I offloaded some scripts from running on browser/JS main thread into a web worker by using the partytown library. I specifically offloaded Google Analytics scripts (gtag) and Meta Pixel script (Facebook’s).

Execute a command once per line of piped input?

How to execute a command once per line of the piped input? or how to pipe each line at a time in linux terminal? is the same question. There are two main ways to achieve this. Using a while loop with read 🔗 This is a common approach for simple scenarios. Here’s the structure: command | while read line; do # Perform some action on each line stored in the variable "$line" your_command "$line" done command: This is the command that generates the output you want to process line by line.