Is it time to replace filesystems?
[Fri Feb 25 13:50:01 CST 2022]

Now, here is an interesting Slashdot post on filesystems, I think:

Hard drive costs now hover around $20 per terabyte (TB). Drives bigger than 20TB are now available. Fast SSDs are more expensive, but the average user can now afford these in TB capacities as well. Yet, we are still using antiquated file systems that were designed decades ago when the biggest drives were much less than a single gigabyte (GB). Their oversized file records and slow directory traversal search algorithms make finding files on volumes that can hold more than 100 million files a nightmare. Rather than flexible tagging systems that could make searches quick and easy, they have things like "extended attributes" that are painfully slow to search on. Indexing services can be built on top of them, but these are not an integral part of the file system so they can be bypassed and become out of sync with the file system itself.

It is time to replace file systems with something better. A local object store that can effectively manage hundreds of millions of files and find things in seconds based on file type and/or tags attached is possible. File systems are usually free and come with your operating system, so there seems to be little incentive for someone to build a new system from scratch, but just like we needed the internet to come along and change everything we need a better data storage manager.

{link to this entry}

Slack & chat versus old forms of collaboration tools
[Fri Feb 25 13:36:55 CST 2022]

The technology business is full of marketing, fades, and buzzwords. Everybody knows that. One of the most popular these days is "collaboration" and the importance of "teamwork". Mind you, I totally agree those are key elements in any well functioning organization. My problem is that they are often used to justify spending money on "collaboration tools" that promise a new and "revolutionary" approach to the issue when, in reality, they don't necessarily offer something that's much better than the old tools. Sure, they are more "modern". They look more "up to date". But that doesn't necessarily mean that they do a better job.

Now, all this dawned on me the other day when I was performing some core dump analysis at work (which is an activity that requires a good amount of concentration) and, within an hour, I was interrupted at least four of five times via Slack or Microsoft Teams. In at least one of the case, the interruption might have been justified. But in the other cases, it could have perfectly waited. The person asking the question could have just submitted a question to a mailing list, and wait for an answer. But I suppose in these times we live in where immediacy is the be-all and end-all, that is just not good enough. We need the answer right now. In particular, I noticed when, once the core dump analysis was finished (or abandoned due to the interruptions, I don't honestly remember any more), I turned my attention to my email client, and noticed a few other questions that had been submitted via internal mailing lists that, therefore, had not interrupted my work.

I suppose what I'm trying to say here is that one wonders if, in the name of collaboration and teamwork, we are not actually making our organizations less and less efficient by promoting a constant string of interruptions. Yes, I know, sort of like in our normal daily life, I suppose.

Also, somehow related to this, I came across this video by Brodie Robertson explaining why Discord may not be the best way to support collaboration in open source projects all the time. He does a good job, I think, providing some examples where a less shiny tool (a mailing list, or a web forum) may actually be a better choice. But who am I kidding? Those don't stand a chance in a world dominated by hype and fad.

{link to this entry}

Sustainability with Rust
[Tue Feb 15 11:26:05 CST 2022]

I came across a very interesting paper titled Sustainability with Rust that documents how the Rust programming language, as well as C or C++, are significantly more energy efficient than far more popular interpreted languges, such as Java or Python. Apparently, "broad adoption of C and Ryst could reduce energy consumption of compute by 50%", which is a good amount in these times of climate change.

However, to me, even more important than that is the fact that the authors go on to explain some of the advantages of Rust in detail. But he does so in a way that is easy to understand by anyone with a modicum of technical expertise. In particular, I liked his explanation of how Rust achieves automatic memory management without a garbage collector, or its way to improve the performance of concurrent applications. Overall, this is a highyl recommended read. {link to this entry}

Using the middle button of the mouse on Linux
[Tue Feb 8 10:49:43 CST 2022]

I already knew about the use of the middle button of the mouse in X.org to paste, as well as what Brodie discusses regarding the different clipboards. However, I must admit I didn't know about all the other usages within the Firefox browser. Sort of interesting.

{link to this entry}

Correcting spelling errors at the command prompt
[Wed Feb 2 14:39:36 CST 2022]

Not that I just found out about this, but I don't think I ever documented it here. Every now and then, I need to check how to spell something while at the command prompt. Sure, it's easy to switch to the browser and do a quick search. But it's even easier to just run the look or aspell commands:

$ look decommision
$ look decommission
decommission
decommissioned
decommissioning
decommissions

$ echo decomission | aspell list 
decomission
$ echo decommission | aspell list
$ 
As you can see, they behave in a slightly different way. But, as far as I know, they both use the default dict database. In the case of look, it will print nothing if the word is not in the dictionary. On the other hand, aspell will print nothing if it is.

Also, here is a short piece if you want to use aspell with vim. {link to this entry}