One of the most famous methods of torture is Chinese water torture. In this torture a tied person is placed under a bucket filled with water with a tiny hole in the bottom. Water is slowly dripped on to a person’s forehead, eventually driving the victim insane.

Software development is not an easy task, and often after a painful process of writing a program developers feel they should share their pains with users, so they put a part of own sufferings onto the shoulders of users in a method similar to the Chinese water torture - blinking cursors.

Fortunately, programmers are not insensitive torturers, and sometimes they provide an option in their programs to turn blinking cursers off. Often these options are not documented, and are not easily accessible, but many users can’t stand the blinking cursor for a long time, because blinking cursors are very distracting.

This page was created with the aim to collect in one place all methods to disable the blinking cursor in the most popular operating systems and programs. If you know how to turn blinking off in a program not listed here, please add precise instructions as a comment at the bottom of this page.

Read More

Hello! Today I asked on twitter about newer command line tools, like ripgrep and fd and fzf and exa and bat.

I got a bunch of replies with tools I hadn’t heard of, so I thought I’d make a list here. A lot of people also pointed at the modern-unix list.

redbean makes it possible to share web applications that run offline as a single-file αcτµαlly pδrταblε εxεcµταblε zip archive which contains your assets. All you need to do is download the redbean.com program below, change the filename to .zip, add your content in a zip editing tool, and then change the extension back to .com.

redbean can serve 1 million+ gzip encoded responses per second on a cheap personal computer. That performance is thanks to zip and gzip using the same compression format, which enables kernelspace copies. Another reason redbean goes fast is that it’s a tiny static binary, which makes fork memory paging nearly free.

redbean is also easy to modify to suit your own needs. The program itself is written as a single .c file. It embeds the Lua programming language and SQLite which let you write dynamic pages.

Read More

Where I outline the design of tags in Pijul, which are a first step towards a more general hybrid snapshot/patch version control system. The Sanakirja tricks presented here can also be applied outside the context of Pijul, to create efficient compressed databases.

It was a wild year for the database industry, with newcomers overtaking the old guard, vendors fighting over benchmark numbers, and eye-popping funding rounds. We also had to say goodbye to some of our database friends through acquisitions, bankruptcies, or retractions.

As the end of the year draws near, it’s worth reflecting and taking stock as we move into 2022. Here are some of the highlights and a few of my thoughts on what they might mean for the field of databases.

It seems as though an irrational fear of the mouse dominates amongst Un*x dogmatists. Be it because their tools don’t integrate, or because it is a symbol or rebellion, a means to differentiate their prior ignorance from the enlightenment they have attained between the standard input and the standard output stream, the self-emancipation from the mouse is a rite of passage or a shameful burden on those who fail1 2.

As might be clear by my tone, I have little regard for this position. It certainly is worthwhile knowing that and how it is possible to avoid using the mouse, when keyboard shortcuts more convenient3, but there is no need for the artificial asceticism of ready-to-use technology, for the sake of purity and dogma.

The denunciation of the mouse usually involves invoking concepts such as the “home row”, or the cumbersome migration of the hand between keyboard and mouse. These might all be well and good, if I were a typist and as such all I did was to type. But this isn’t the case, I ponder and perceive, more than I write.

When debugging code or studying a program, it is quite comfortable to depend on only one hand, and have the other free to scribble or relax. The issue isn’t using a mouse or only using a keyboard, it is context switching.

Read More

It took little under a decade for the headline feature developer Jon Skinner added to Sublime Text’s second version to become one of the defining features of this decade’s software.

“Goto Anything” is how it started, a search pane to jump to other files. Open a folder, press CMD/Ctrl+P, start typing to see a list of matching files, then press Enter to jump to it. Seems simple enough: You think of a file you need, and without leaving the keyboard can switch to that file and continue work.

Within months, that search pane gained a companion: The now-famous Command Palette. “The Command Palette provides a quick way to access commands that don’t warrant a key binding, and would usually be hidden away in a menu,” explained Skinner. This time, you’d press CMD/Ctrl+Shift+P and get a search bar, only here you’d search through program features.

Read More

I’ve been lurking the fish shell for a couple of years now (and the nushell but it is another story for another time). Not so long ago, I decided to try it, and it’s simply… amazing. If I had to state one feature that makes me like to use it, it’ll be the autocompletion, hands down. It’s the first time I just take a shell and without customization it’s pleasing to use.

During an idle Sunday evening, a few weeks ago, I played with JetBrains’ Projector: it’s IntelliJ — one of the most powerful IDEs around — installed on a remote server and accessible through the browser.

I wanted to see how I might offload some heavy computing tasks, like training and evaluating large machine learning models, off of my local computer, without compromising my coding user experience.

It’s a surprisingly easy setup to build. It took me less than an hour, from hitting “Create instance” on AWS to having a fully-fledged AI project running on my iPad Pro.

It felt like magic.

Read More
Nov 6, 2021

Emacs grew support for displaying colour emojis recently (and this is included in the release branch, which will become Emacs 28.1 in some months). This includes support for the grapheme cluster emojis (that consist of a number of Unicode code points, joined together with zero-width joiners and magic).

So finally Emacs can display all of these things. You can thank Robert Pluim, who did all the actual work.

Imagine if someone summoned a magical genie and wished for a perfect code editor. Since it is perfect, does that mean it provides you everything you ever need to code the optimal solution? Or since it is perfect, does it enable you to accomplish the coding aspect instantly?

Thus, the paradox:

Does the perfect code editor mean that you spend nearly 100% of your work time using the editor or does it mean you spend nearly 0% of your work time using the editor?

What metric can we even use to measure the perfect code editor? How will we know if and when we have it? Are we close to reaching that point?

Read More
Sep 20, 2021

Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. Git documentation has this chicken and egg problem where you can’t search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem.

So here are some bad situations I’ve gotten myself into, and how I eventually got myself out of them in plain english.

Here’s what I learned from starting to read the source code to fff - in particular, the main function.

fff is “a simple file manager written in Bash”. As I’m always on the lookout to learn more about Bash, that description got my attention immediately. It’s a small but perfectly formed offering, complete with man page and even a Makefile for installation. And the file manager executable* itself is a single Bash script.

*I use this term deliberately, and it does make me stop and think every time I see scripts in a bin directory (where “bin” stands for binary). But that’s a conversation for another time.

The author, Dylan Araps has produced other interesting pieces of software (such as neofetch) as well some great documents such as the pure bash bible as well as the pure sh bible. He’s also the creator of Kiss Linux. He has a reputation for writing great Bash code, so this seems like an opportunity too good to miss to learn from better programmers.

It seems that recently Dylan has disappeared off the radar, I don’t know what the situation is but I wish him well.

Anyway, I wanted to take a first look at fff to see what I could discern. I’m reviewing the code as it stands at the latest to-date commit, i.e. here.

Where I can, I link to reference material so you can dig in further to Bash details that take your fancy. This reference material includes the following sites (and there are more of course):

Read More

Many people wonder how Emacs Org mode is used in “the right way”.

Here is my short answer to that: There isn’t one right way for using Org mode features.

If this is obvious to you, you can skip the rest of this article. If not, you really should read this until the end. It may answer many questions you probably do have in your head. Especially when you’re rather new with the Org mode universe.

Of course, the same rationale is true for all kind of advanced software solutions that offer a certain level of flexibility to its users. However, my examples here are based on Emacs Org mode.

Read More
Programming Tools

This is where all the vim VS emacs posts should go.

Created on Oct 19, 2020
By @gurlic