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 https://github.com/eza-community/eza Not installed From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/e/eza.rb 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 Kartbusiness.com 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 KartBusiness.com 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.
Ed Line Editor: A Cheat Sheet
ed : The original Unix text editor. ed is a line editor for the Unix operating system. It was one of the first end-user programs hosted on the system and has been standard in Unix-based systems ever since. ed was originally written in PDP-11/20 assembler by Ken Thompson in 1971. Start an interactive editor session with an empty document: ed Start an interactive editor session with an empty document and a specific [p]rompt:
Awk: A Swiss Army Knife for Text Manipulation
What is awk ? 🔗 awk is a powerful programming language for working on text files. It’s particularly handy for extracting specific data from files, manipulating columns, and performing calculations on the fly. Awk is opensource and available on Github . Awk’s key features 🔗 Pattern Matching: Awk excels at finding and processing lines that match specific patterns (like regular expressions). Field Separation: It automatically splits input lines into fields based on a delimiter (usually whitespace).
sed: Stream Editor for Text Manipulation
sed (Stream Editor) is a powerful command-line tool used for manipulating text streams. It’s like a search-and-replace tool on steroids, allowing you to modify text files in various ways. sed is a valuable tool for automating text transformations. With some practice, you’ll find it indispensable for tasks like: Fixing typos in multiple files. Modifying configuration files. Extracting specific information from text. sed Key Concepts 🔗 Streams: sed works on streams of text data, which can be from files, standard input, or other sources.
Git Subtree: Managing Subprojects Within Your Git Repository
What is Git Subtree ? 🔗 Git subtree is a powerful Git technique that allows you to include an entire separate Git repository as a subdirectory within your main project’s repository. This is useful when: You have a library or component that’s developed independently. You want to contribute to an external project while keeping your main project’s history clean. You need to manage multiple versions of a subproject within your main project.