SQLite has so far never let me down, and enabled some things that would be otherwise in the “almost impossible” category. Still come across some amazing new feature that I had no idea about regularly (like the session extension), as well as regularly releasing big new features while remaining 100% backwards compatible always. Upgrading SQLite is a real joy: just replace sqlite3.{c,h} with the latest one, and eh yeah, that’s about it…
fish is a pleasure to use as a daily shell - very thankful that someone has taken on the very thankless task of making a new shell and actually thinking about the ergonomics first (“Finally, a command line shell for the 90s” is the perfect slogan for this)
I love Fish ergonomics, but actually wish it was Bash-compatible. It’s just a bit pain when you need to integrate scripts that do not have a native Fish version, it’s slower and does often not quite work (even with Bass). Nu is another shell to look at, with even more radical choices.
I really like fish. Sadly I use reverse-incremental search very often in zsh and the lack of it makes fish too hard for me to use. fish has very good reverse-prefix-incremental search but since I commonly aim to resurrect commands from history from mid-line partial-match, it doesn’t work for my use-case.
I was using fish + Starship and now I use zsh + oh-my-zsh + Starship and it’s good enough.
I have been using bash with the vi editing mode for years and it was only last month that I learned that you can press / in command mode to search command history. That’s completely changed how I use the shell (I can never remember the normal history search shortcut).
FreeBSD 14 is replacing csh with sh as the default shell and the up-arrow behaviour from csh was the big feature that everyone insisted sh needed before it could replace csh (FreeBSD’s csh up-arrow searched for things in the history matching the typed prefix). I still wouldn’t choose to use either as a daily driver, but they’re now both fine for occasional use.
Impressed you are able to use bash vi mode. I find it rather unintuitive and prefer Emacs mode but with C-x C-e to get into nvim or when I’m in Neovim’s terminal, just going to Normal mode.
Strange because I have vim everywhere else. Just not here.
I’ve written four books, a PhD thesis, a dozen papers, and at least a couple of hundred thousand lines of code in vim. At this point, convincing my fingers that any text input field is not vim is probably a lost cause. I will probably end this post by typing :wq and then have to delete it and hit post. Even if I don’t have vim mode, I hit b to go back in the command line and then have to delete the ^B.
Yep, sqlite is the first thing that came to mind when reading this thread. I’ve done a lot of data wrangling over the past year, and sqlite has come in clutch so many times.
One piece of software that I’m super grateful for lately is jless. It’s crossed my radar once or twice in the past, but recently I’ve needed to navigate big json responses while testing and evaluating different APIs and it’s come in really handy.
One small piece of software I enjoy is entr which lets you “Run arbitrary commands when files change”. It is a great tool that is adaptable to many work flows due to its single focused function.
I use fswatch, which has a memorable name and works on Linux, macOS, *BSD, Solaris, and Windows and doesn’t depend on anything else except a C++ standard library implementation.
See also watchexec. I’ve found it more reliable in my experience, but it was a few years ago that I switched from entr so that might have changed (I can’t remember what my issues were unfortunately).
I’ll add that I’ve written my own versions of this in powershell and Janet for use on Windows. “run commands when files change” is a game changer when it comes to general coding.
My entry here might be a total outlier, but I am very thankful to some proprietary commercial software that I have used for many years, some of them for more than a decade.
Transmit is the best SFTP client I have ever used. I think I’ve been using it since mac classic (when it was called Transit).
Sublime Text is my go to editor. I don’t need too many plugins to be an effective developer. I’m happy with how sublime text gets out of my way.
From FOSS land, besides the obvious stuff, I’m very thankful for Racket. I met it for the first time when it was called PLT Scheme circa 1998. It changed how I approached programming and made me complain about every other language since that date :~~~
Transmit is an amazing piece of software. I don’t really interact with SFTP regularly anymore, but I do have fond memories of uploading WordPress sites to LAMP servers with Transmit back in the (good old?) days.
I am thankful for docker as well. But I am actually commenting here because you introduced me to Eyvind Earle’s paintings. The one you chose for that page is amazing, but he has others like “Green Hillside”. So good. Thank you for that.
Karabiner Elements is so essential to my life. I use Caps Lock as Esc, and on Mac OS that is impossible without Karabiner. Other remaps add a 100 ms delay before you can type after you hit Caps Lock, and that makes my constant-insert/normal-swaps very annoying.
I’m on Big Sur, and I have Caps Lock mapped to Control, but I could map it to Esc natively just with System Preferences. I can’t recall, but was Esc not one of the options for key remapping in earlier versions of macOS?
It wasn’t one of the options earlier, but the real problem is that at least some users (including me) have this problem where there is a noticeable delay on using the Caps Lock key for whatever purpose. i.e. if you attempt to just tap it, all keyboard input will not work for a short period. Since I have Karabiner Elements installed now, I can’t reproduce (KE removes the delay), but it was incredibly frustrating. I think it might have stalled all input, but I can’t recall now (and I am not eager to reproduce it haha).
I’m thankful for C#/.net for providing me a high paying career for the last 20 years. I’m even more excited about .net core, the fact that Linux is not a second class citizen, and the fact that I’ll hopefully soon be done with IIS.
Ha ha this is very very familiar. I’ve just completed migrating a huge codebase to dotnet core and running everything natively on Linux (instead of in a Windows VM) is so slick and fast.
Yeah, same boat here (though I’ve only been doing C# for 15 years now). Looking forward to my workplace moving over to .NET Core so that more of my tooling works with Emacs and I can use Visual Studio even less than I do now.
After all these years I still enjoy using mutt and Emacs.
I don’t think I could live without newsbeuter newsboat, either.
More recently I’ve discovered khal or more specifically ikhal, the interactive curses calendar. It works well with Radicale which is simple and enough for me and my SO to keep our calendars synced.
For work, I rather like the ability of nixpkgs in conjunction with direnv to quickly set up a dev environment. It’s a breath of fresh air compared to the Docker and Docker-compose madness which used to be the way to do this, or the flakiness of Vagrant before it.
And of course I wouldn’t know where I’d be (or what my sanity would be like) without PostgreSQL.
Fantastical – it is a better calendar program than the stock one, or the nightmarish web application ones, and while it’s been better as long as I’ve used it, it continues to improve. It’s just sort of invisible, load-bearing software for my day-to-day usage of my computer, and I love it.
mu/mu4e – a mail client that learned from GMail, instead of pretending that Google didn’t have some actually game-changing ideas. Yes, it’s weird, and yes the search isn’t as good as it could be, and yes, it is very fiddly and specific; but it makes mail better than it was, without having to accede to the demands of data vampirism.
Synergy – it Just Works. I can share my keyboard and mouse across several machines, and it just works. I never notice it. The sign of exceptional software.
For example, you can get a RabbitMQ image from Docker Hub and run a:
docker run rabbitmq
and have a working RabbitMQ on your local without any more effort.
It’s just like apt install rabbitmq or pkg install rabbitmq but without any of the metadata and trust that allows other people to help you by watching for security updates and notifying you that you should deal with the issues.
So I’m really grateful for apt and the teams of volunteers who maintain good packages and packaging systems.
Yeah, that’s a really bad example for docker in my eyes. I personally quite dislike docker, but in a company context it starts to make sense to me. But in my eyes it’s more the things that docker forces other people to do that bring the benefit, less docker itself. Docker forces the developers to provide a full specification of which dependencies they require to run their service; the specification (the Dockerfile) must result in a completely working environment. If it does not work, you can just throw it back at them with “Does not run, fix it”.
Can’t really say I’m thankful for docker, though. Don’t even know which software I should mention. Linux of course, I really enjoy the possibility to administer my OS. Maybe also tiling window managers? Took a bit of getting used to, but now I love them.
SQLite has so far never let me down, and enabled some things that would be otherwise in the “almost impossible” category. Still come across some amazing new feature that I had no idea about regularly (like the session extension), as well as regularly releasing big new features while remaining 100% backwards compatible always. Upgrading SQLite is a real joy: just replace sqlite3.{c,h} with the latest one, and eh yeah, that’s about it…
fish is a pleasure to use as a daily shell - very thankful that someone has taken on the very thankless task of making a new shell and actually thinking about the ergonomics first (“Finally, a command line shell for the 90s” is the perfect slogan for this)
I became a “fisher” past year and I haven’t had a reason to regret that move. Contributed some missing auto-completions to it as well.
I love Fish ergonomics, but actually wish it was Bash-compatible. It’s just a bit pain when you need to integrate scripts that do not have a native Fish version, it’s slower and does often not quite work (even with Bass). Nu is another shell to look at, with even more radical choices.
I installed Fish a few months ago and haven’t looked back, it is such a pleasure to use.
Fish was the big thing I missed when I moved from Linux to Windows.
As a daily WSL user, I’m wondering why make the move
AutoHotKey.
i was just about to write “you should write an article about how you use autohotkey” because it seems like it would be interesting
then i found https://www.hillelwayne.com/post/ahk/
I really like
fish
. Sadly I use reverse-incremental search very often inzsh
and the lack of it makesfish
too hard for me to use.fish
has very good reverse-prefix-incremental search but since I commonly aim to resurrect commands from history from mid-line partial-match, it doesn’t work for my use-case.I was using
fish
+ Starship and now I usezsh
+ oh-my-zsh + Starship and it’s good enough.I use
fzf
to fill this hole in fish, via its ctrl-r bindingAbsolute game changer! Thank you!
I have been using
bash
with the vi editing mode for years and it was only last month that I learned that you can press / in command mode to search command history. That’s completely changed how I use the shell (I can never remember the normal history search shortcut).FreeBSD 14 is replacing csh with sh as the default shell and the up-arrow behaviour from csh was the big feature that everyone insisted sh needed before it could replace csh (FreeBSD’s csh up-arrow searched for things in the history matching the typed prefix). I still wouldn’t choose to use either as a daily driver, but they’re now both fine for occasional use.
Impressed you are able to use bash vi mode. I find it rather unintuitive and prefer Emacs mode but with C-x C-e to get into nvim or when I’m in Neovim’s terminal, just going to Normal mode.
Strange because I have vim everywhere else. Just not here.
I’ve written four books, a PhD thesis, a dozen papers, and at least a couple of hundred thousand lines of code in vim. At this point, convincing my fingers that any text input field is not vim is probably a lost cause. I will probably end this post by typing :wq and then have to delete it and hit post. Even if I don’t have vim mode, I hit b to go back in the command line and then have to delete the ^B.
Yep, sqlite is the first thing that came to mind when reading this thread. I’ve done a lot of data wrangling over the past year, and sqlite has come in clutch so many times.
It pairs well with pandas!
OpenBSD, especially OpenSSH. I’ve donated multiple times because I use it constantly.
One piece of software that I’m super grateful for lately is jless. It’s crossed my radar once or twice in the past, but recently I’ve needed to navigate big json responses while testing and evaluating different APIs and it’s come in really handy.
For JSON, another thing I like is
gron
which flattens JSON so you can do things like:On a tip somewhere here I found the idea of making a
norg
script that isgron --ungron
and that makes it even nicer to use.oh, that looks nice. Thanks for sharing!
One small piece of software I enjoy is entr which lets you “Run arbitrary commands when files change”. It is a great tool that is adaptable to many work flows due to its single focused function.
I keep losing this tool. I used to use
inotifywait
on Linux, but a portable command is much nicer now that I use Mac OS as well.I use fswatch, which has a memorable name and works on Linux, macOS, *BSD, Solaris, and Windows and doesn’t depend on anything else except a C++ standard library implementation.
Thanks for the tip. I have been looking for a simple and portable command like this, and
entr
looks great.See also watchexec. I’ve found it more reliable in my experience, but it was a few years ago that I switched from entr so that might have changed (I can’t remember what my issues were unfortunately).
I’ll add that I’ve written my own versions of this in powershell and Janet for use on Windows. “run commands when files change” is a game changer when it comes to general coding.
My entry here might be a total outlier, but I am very thankful to some proprietary commercial software that I have used for many years, some of them for more than a decade.
Transmit is the best SFTP client I have ever used. I think I’ve been using it since mac classic (when it was called Transit).
Sublime Text is my go to editor. I don’t need too many plugins to be an effective developer. I’m happy with how sublime text gets out of my way.
From FOSS land, besides the obvious stuff, I’m very thankful for Racket. I met it for the first time when it was called PLT Scheme circa 1998. It changed how I approached programming and made me complain about every other language since that date :~~~
Transmit is an amazing piece of software. I don’t really interact with SFTP regularly anymore, but I do have fond memories of uploading WordPress sites to LAMP servers with Transmit back in the (
goodold?) days.I’m thankful for Neovim and its community of plugin authors, Sway, vimb, and my keyboard firmware, for making me able to use computers again.
I am thankful for docker as well. But I am actually commenting here because you introduced me to Eyvind Earle’s paintings. The one you chose for that page is amazing, but he has others like “Green Hillside”. So good. Thank you for that.
Oh wow, yes, these are fantastic.
His style is reminiscent of Pierneef https://images.google.com/images?hl=en&source=hp&q=j.h.+pierneef
Well, gcc is probably the thing I use most….
Valgrind has saved my bacon more times than I can count.
Ruby is just such a pleasure to use.
gdb is an excellent tool.
ag the silver searcher is so fast these days… I don’t even bother to tag any more.
Emacs / Helm / Projectile is a power combo.
Mercurial is the slickest, easiest to use, most powerful DVCS I have ever used (way surpasses git)
picocom is a nifty serial term.
Of course, everything sits on top of Linux.
Gee, I could actually go on for hours just by looking at my bash history.
ripgrep should probably be faster than ag
Last benchmarks I can see are 2016… but I love the spirit of friendly competition and learning from each other…
https://news.ycombinator.com/item?id=12567328
That’s the lovely thing about FOSS, it’s not “I’ve patented that you can’t use that”. It’s “hey, that’s cool, we’re learning a lot from each other!”.
Sigh! rust support is still a little flaky in Ubuntu Focal… Hit a known bug of rust packages warring over /usr/.crates2.json
Will try it again sometime later.
Oh, that reminds me to shout out a thanks to
tio
, which is the tiniest little serial term I’ve ever used, and invaluable for debugging firmware.Karabiner for me.
Karabiner Elements is so essential to my life. I use Caps Lock as Esc, and on Mac OS that is impossible without Karabiner. Other remaps add a 100 ms delay before you can type after you hit Caps Lock, and that makes my constant-insert/normal-swaps very annoying.
I use Karabiner sometimes as well, but can’t you remap Caps Lock as Esc on a Mac without it? (System Preferences -> Keyboard -> Modifier Keys)
I don’t often want an image on Lobster.rs, but today I do.
I’m on Big Sur, and I have Caps Lock mapped to Control, but I could map it to Esc natively just with System Preferences. I can’t recall, but was Esc not one of the options for key remapping in earlier versions of macOS?
It wasn’t one of the options earlier, but the real problem is that at least some users (including me) have this problem where there is a noticeable delay on using the Caps Lock key for whatever purpose. i.e. if you attempt to just tap it, all keyboard input will not work for a short period. Since I have Karabiner Elements installed now, I can’t reproduce (KE removes the delay), but it was incredibly frustrating. I think it might have stalled all input, but I can’t recall now (and I am not eager to reproduce it haha).
Got it: thanks for clarifying.
(neo)vim
All of Powershell, C#/.NET, Fennel and Janet, Love2D, Godot, Web Assembly come to mind for me.
I’m thankful for C#/.net for providing me a high paying career for the last 20 years. I’m even more excited about .net core, the fact that Linux is not a second class citizen, and the fact that I’ll hopefully soon be done with IIS.
Ha ha this is very very familiar. I’ve just completed migrating a huge codebase to dotnet core and running everything natively on Linux (instead of in a Windows VM) is so slick and fast.
Yeah, same boat here (though I’ve only been doing C# for 15 years now). Looking forward to my workplace moving over to .NET Core so that more of my tooling works with Emacs and I can use Visual Studio even less than I do now.
After all these years I still enjoy using mutt and Emacs.
I don’t think I could live without
newsbeuternewsboat, either.More recently I’ve discovered khal or more specifically ikhal, the interactive curses calendar. It works well with Radicale which is simple and enough for me and my SO to keep our calendars synced.
For work, I rather like the ability of nixpkgs in conjunction with direnv to quickly set up a dev environment. It’s a breath of fresh air compared to the Docker and Docker-compose madness which used to be the way to do this, or the flakiness of Vagrant before it.
And of course I wouldn’t know where I’d be (or what my sanity would be like) without PostgreSQL.
Vim, visidata, J, Sphinx, Frink.
But most of all, AutoHotKey, which is 100% the reason my main OS is Windows.
Here’s some of mine.
Fantastical – it is a better calendar program than the stock one, or the nightmarish web application ones, and while it’s been better as long as I’ve used it, it continues to improve. It’s just sort of invisible, load-bearing software for my day-to-day usage of my computer, and I love it.
mu/mu4e – a mail client that learned from GMail, instead of pretending that Google didn’t have some actually game-changing ideas. Yes, it’s weird, and yes the search isn’t as good as it could be, and yes, it is very fiddly and specific; but it makes mail better than it was, without having to accede to the demands of data vampirism.
Synergy – it Just Works. I can share my keyboard and mouse across several machines, and it just works. I never notice it. The sign of exceptional software.
[1] https://flexibits.com/fantastical
[2] https://www.djcbsoftware.nl/code/mu/mu4e.html
[3] https://symless.com/synergy
emacs
wikimedia
pdftk
thunderbird
For example, you can get a RabbitMQ image from Docker Hub and run a:
docker run rabbitmq
and have a working RabbitMQ on your local without any more effort.
It’s just like
apt install rabbitmq
orpkg install rabbitmq
but without any of the metadata and trust that allows other people to help you by watching for security updates and notifying you that you should deal with the issues.So I’m really grateful for apt and the teams of volunteers who maintain good packages and packaging systems.
Yeah, that’s a really bad example for docker in my eyes. I personally quite dislike docker, but in a company context it starts to make sense to me. But in my eyes it’s more the things that docker forces other people to do that bring the benefit, less docker itself. Docker forces the developers to provide a full specification of which dependencies they require to run their service; the specification (the Dockerfile) must result in a completely working environment. If it does not work, you can just throw it back at them with “Does not run, fix it”.
Can’t really say I’m thankful for docker, though. Don’t even know which software I should mention. Linux of course, I really enjoy the possibility to administer my OS. Maybe also tiling window managers? Took a bit of getting used to, but now I love them.
I more or less live in these three programs.
These are some of my favourites:
fsf and fsy - haven’t lived yet if you haven’t tried
Do you have links to those, perhaps?
https://github.com/junegunn/fzf
https://github.com/jhawthorn/fzy
Oh, fzf right! The “s” threw me off, but I should have recognized it anyway, since I use it. :-D
Oh sorry about the misspelling. I use it in scripts so I never actually type the command
[Comment removed by moderator pushcx: Off-topic gripe about site design doesn't start good conversations.]