136 private links
Linking-it-all-together asks: I came across this article about the benefits of static linking over dynamic linking. If dynamic linking is slower and doesn't offer practical benefits then why do most distros still dynamic link? Is this a hold over from the past or is there a reason I'm missing that make distros still use dynamic linking?
DistroWatch answers: I read through the article provided and it does share some interesting statistics on dynamically linked programs versus statically linked programs. The author appears to be making a case against dynamic linking and in favour of static linking, or at least presenting facts which would support such a case. For the sake of this discussion I am going to assume the observations the article's author makes are accurate and factually correct, at least for their own distribution.
The author addresses some interesting questions, such as how often are dynamically libraries used on the system, which indicates how many resources avoid duplication by sharing libraries. They also explore how quickly dynamic and static programs load and how much larger statically linked programs are compared to their dynamically linked counterparts. The author points out that many libraries on their distribution are not shared by many programs, that statically linked programs can load faster, and that not a lot of bandwidth is saved by using dynamically linked programs.
Reading through the page of observations the author shares, it's understandable we might wonder why developers continue to favour dynamically linked applications in most situations. Let's look at some of the specific arguments from the article.
Crush is an attempt to make a traditional command line shell that is also a modern programming language. It has the features one would expect from a modern programming language like a type system, closures and lexical scoping, but with a syntax geared toward both batch and interactive shell usage.
What features of a traditional shell does Crush retain?
The basic structure of the Crush language resembles a regular shell like bash.
How to invoke commands, pass arguments and set up pipelines are unchanged, as is the central concept of a current working directory. This means that trivial invocations, like ls or find .. | count look the same, but under the hood they are quite different, and nearly everything beyond that is different.
Ilya Grigorik (@igrigorik) Tweeted:
TIL, httpstat: visualizes curl(1) statistics in a way of beauty and clarity -- nifty and instant replacement for my own curl timing script...
GitHub: https://t.co/L1jpopqyyq https://t.co/eNzCQQzDoW https://twitter.com/igrigorik/status/1293380686808662016?s=20
--
Pywal is nifty Python-based command line tool that changes the terminal colors based on the colors of that wallpapers.
You can use it to set the wallpaper and you’ll see that the terminal colors change immediately.
ytt (pronounced spelled out) is a templating tool that understands YAML structure. It helps you easily configure complex software via reusable templates and user provided values. Ytt includes the following features:
Structural templating: understands yaml structure so users can focus on their configuration instead of issues associated with text templating, such as YAML value quoting or manual template indentation
Built-in programming language: includes the "fully featured" Python-like programming language Starklark which helps ease the burden of configuring complex software through a richer set of functionality.
Reusable configuration: You can reuse the same configuration in different environments by applying environment-specific values.
Custom validations: coupled with the fast and deterministic execution, allows you to take advantage of faster feedback loops when creating and testing templates
Overlays: this advanced configuration helps users manage the customization required for complex software. For more, see this example in the online playground.
Sandboxing: provides a secure, deterministic environment for execution of templates
Archivy is a self-hosted knowledge repository that allows you to safely preserve useful content that contributes to your knowledge bank.
Features:
If you add bookmarks, their webpages contents' will be saved to ensure that you will always have access to it, in sync with the idea of digital preservation.
Allows you to sync up with Pocket to gather bookmarks from there too.
Everything is a file! For ease of access and editing, all the content is stored in markdown files with yaml front matter.
Extensible search with Elasticsearch and its Query DSL
I apologize to @natoscott and @fasterit who tried to contact me; I understand that forking the project must not have been an easy decision to make, and any response of mine might have made it a little easier.
I want to thank you all of you for taking on this initiative, starting from @afontenot for opening up this topic. I am extremely grateful for all the amazing feedback I've received for htop over the years. This has been by far my most successful project, it has brought me many many great things, and I think it's indeed flattering to see it forked
We've just released htop-3.0.0 with over two years worth of bug fixes
and features. Enjoy!
https://github.com/htop-dev/htop/releases
What's new in version 3.0.0
- New maintainers - after a prolonged period of inactivity
from Hisham, the creator and original maintainer, a team
of community maintainers have volunteered to take over
a fork at https://htop.dev and https://github.com/htop-dev
to keep the project going.
GLab is an open source Gitlab Cli tool written in Go (golang) to help work seamlessly with Gitlab from the command line.
« usbkill » is an anti-forensic kill-switch that waits for a change on your USB ports and then immediately shuts down your computer.
JSON is everywhere on the Internet. Servers spend a lot of time parsing it. We need a fresh approach. The simdjson library uses commonly available SIMD instructions and microparallel algorithms to parse JSON 2.5x faster than anything else out there.
A while back I bought a DYMO LabelManager Plug N Play Label Maker to help organize things. Before I bought it I had done some cursory searching and saw there were Linux drivers, and I set up CUPS, fixed permissions (of course), and installed the DYMO drivers, but nothing was showing up.
Well, turns out there’s a reason for that – the LabelManager PnP actually labels itself as a HID device, not a printer! (lsusb -v to peep the details)…
Luckily, with a bit of searching, I found a nice little Python 3 script called dymoprint (github) that reverse-engineered the USB protocol and works perfectly. Another dev subsequently wrote a Perl script that generates 64px tall bitmaps to the printer. (I have lots of existing image generation code to build a Python version of this, but honestly, the first dymoprint script does just about everything I want, which is just to print some simple labels).
I saw that someone else did get it to run on CUPS – it looks like you have to set up modeswitching, but I haven’t tested that personally.
ncdu (NCurses Disk Usage) is a disk utility for Unix systems. Its name refers to its similar purpose to the du utility, but ncdu uses a text-based user interface under the [n]curses programming library.[2] Users can navigate the list using the arrow keys and delete files that are taking up too much space by pressing the 'd' key. Version 1.09 and later can export the file listing in JSON format.
Using a terminal from 1976 as home automation hub, because why not?
Shuf is a Linux and Unix command-line utility that puts its input text in random order to generate output consisting of random permutations of the input. In simple terms, it just shuffles the input of either text file or standard input passed through the command line.
10 years ago, systemd was announced and swiftly rose to become one of the most persistently controversial and polarizing pieces of software in recent history, and especially in the GNU/Linux world. The quality and nature of debate has not improved in the least from the major flame wars around 2012-2014, and systemd still remains poorly understood and understudied from both a technical and social level despite paradoxically having disproportionate levels of attention focused on it.
I am writing this essay both for my own solace, so I can finally lay it to rest, but also with the hopes that my analysis can provide some context to what has been a decade-long farce, and not, as in Benno Rice’s now famous characterization, tragedy.
A new way to see and navigate directory trees
Delta provides language syntax-highlighting, within-line insertion/deletion detection, and restructured diff output for git on the command line.
A cat(1) clone with syntax highlighting and Git integration.
bat supports syntax highlighting for a large number of programming and markup languages
Git integration
Show non-printable characters
Automatic paging
File concatenation
The proc filesystem is an important feature of Linux that you can't ignore. proc is a pseudo or virtual filesystem that provides an interface to kernel data structures. In other words, proc isn't an actual filesystem in the real-world sense; rather, it resides only in memory and not on a disk. It is automatically mounted by the system.
Most of its contents are regular files and directories, so you can use most regular Linux tools to navigate the proc filesystem. The examples in this article should run the same on any Linux distribution.