What are your favourite pieces of software?
source link: https://lobste.rs/s/d0ptcu/what_are_your_favourite_pieces_software
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
What are your favourite pieces of software?
It can feel (especially in my circles) that good software doesn’t really exist these days, so I really like seeing what other people do actually like.
Are there any pieces of software (or maybe SaaS) that you would recommend almost without caveat? Or maybe something you don’t use but makes you glad, happy or hopeful.
-
One program that I love is Syncthing. Who would’ve guessed that the sentences “continuous peer-to-peer file synchronization” and “it just works” could ever appear together.
One that I certainly couldn’t recommend without caveats but nevertheless makes me very happy is the alternative Discord and Slack client Ripcord. It looks great and presents a remarkably better interface to these two proprietary services. Long may it live.
-
caveats
You mean like how if the admins of any of the “servers” you use find out you’re using this on discord, they’re required to narc on you and get your account banned? =(
https://github.com/mk-fg/reliable-discord-client-irc-daemon#more-info-on-third-party-client-blocking.
-
Syncthing is excellent. 3+ years, 4 machines (3 Mac, 1 FreeBSD), 120GB here. No hiccups. Love it. I’ve even built a SwiftBar plugin that works against the localhost API to show my machines and their sync states.
-
I personally using Resilio (formerly btsync) for same purpose.
-
-
That’s a pleasant surprise to hear. I used Syncthing quite heavily a long time ago (6-8 years?) and it worked great up until it didn’t, and then required a lot of manual screwing around or a full repo wipe to get a wedged state un-wedged. Not a common occurrance, but not an uncommon one either. It did what I needed but when I had the opportunity to ditch it and just use a NAS instead I had no regrets. Sounds like it might be worth taking another look at for wandering laptops and such.
-
-
yt-dlp has probably saved me (and my kids) from watching hours upon hours of ads. The kids just watch the same things over and over again, anyway.
-
Hundreds of hours of ads, thousands of web player hickups, and trillions of CPU cycles. Two tips for commands:
-
yt-dlp --all-subs --continue --prefer-free-formats URL
to download videos with all subs, continuing any broken downloads, and using free formats where possible. -
yt-dlp --continue --embed-thumbnail --format=bestaudio URL
to download audio file with thumbnail.
-
-
-
Tailscale: Securing access to my various servers and getting access to devices at home when away was always such a pain and slightly complicated in the past. Now it’s dead easy and I don’t have to think about it. It just works.
Shottr: I didn’t think I needed a screenshot tool before I came across Shottr, and now I use it all the time. It’s great for being able to preview screenshots, add markup, etc. It’s a really great little tool.
-
-
Was coming to mention it. I’ve just tried vterm again, and adopted it. I have a good terminal emulator in Emacs, how cool. I discovered the vterm-copy-mode, bound to C-c C-t, so we can scroll around (even if some output is still being printed) (it was working with evil). Directory tracking is awesome: cd to some directories, then find-file (or projectile-find-file etc) will work from this directory. The other way around is possible with vterm-toggle: call the vterm buffer, press C-Return to have the terminal cd to the last buffer’s directory.
I just had to adapt a couple keybindings that were caught by evil’s insert mode (or my own config), and learn that a couple were available behind a C-c (use C-c C-u to erase the current line, C-u is still reserved for Emacs).
And I load nice themes (modus-operandi/vivendi) to make life even more fascinating.
-
-
I keep a “gripes” file where I list all the things that bug me about the software I use.
At the top is a “hall of fame” section listing programs with only one or zero complaints.
- openssh (didn’t used to qualify but then they implemented
include
in their config file format) - tmux/tmate
- pandoc
- exwm (simulation keys are the only thing that makes browsing the web tolerable)
-
Great idea to keep a “gripes” file. I constantly find myself getting annoyed with the software I use and then forgetting about it, only to find myself getting annoyed again. And only tracking issues with software when I plan to do something about it (in my projects list). I’ve just setup a list called “Software Grinds”… for things that really grind my gears. https://youtu.be/GospVDNp6EM?t=13
- openssh (didn’t used to qualify but then they implemented
-
-
20+ year user here, can concur. I also find the developer blog very enlightening.
-
-
Scrivener. Easily the best long form writing software around, and unfortunately good enough to keep me locked into macOS on my laptop (Asahi seems stable enough though these days, so I’ll probably set up a dual boot soon. It’s not urgent though, as I have a fairly powerful Linux desktop for gaming and development that I can easily remote into with Tailscale, another great piece of software).
It’s proprietary, but the file format is simple enough (metadata in easy to understand XML, and content as RTF), that you could write a converter tool pretty quickly. I’m not remotely afraid of my files becoming inaccessible to me.
-
Checkout novelWriter (https://novelwriter.io/) if you want to explore FOSS option. I don’t have experience with either tool to give a review/comparison.
-
I’ve tried it (and manuskript, another similar tool), but there’s really no comparison at the moment. Last time I used novelWriter, HiDPI support was lacking on macOS (Scrivener isn’t the only thing tying me to it unfortunately), and font-rendering was piss-poor (not a reflection on the authors of the novelWriter, it seemed to be related to HiDPI support and GTK+, which… yeah… there’s a reason I use KDE Plasma/QT on Linux).
It also didn’t have the same support for notes/supporting documents that scrivener does. In Scrivener, I can drag and drop a web page or PDF into my project, and it’ll be archived there in full as something I can refer back to and annotate. To use an analogy: novelWriter is like Kate, usable and somewhat extendable, whereas Scrivener is like IntelliJ, batteries and even a UPS included.
Don’t get me wrong, I like more minimalist setups occasionally. I maintain a laptop from the late 90s that dual boots NetBSD/FreeDOS and often write in WordStar on it. But for something long form, like a novel, where I need to maintain notes and references, I haven’t encountered anything as good as scrivener.
-
-
I love Scrivener. It’s like an IDE for novels. :)
-
-
esbuild gives you a lot of modern frontend web dev conveniences without buying into the whole JavaScript ecosystem. Out of the box you get minification, bundling, asset digesting, a dev server with live reload and (if you want) npm imports.
-
NewPipe on Android. Recently I had to use YouTube on a friend’s iPhone and oh my goodness, how horrendous it is!
NewPipe is fantastic. You can even download videos for offline uses!
On the desktop, fish shell is great. The only thing I miss from bash is the “sudo !!” to repeat the previous command as root, but otherwise I love the sane defaults and all the little helpers. It’s one of the first things I setup on a fresh Linux install.
-
You can
alt-s
to toggle sudo on your current command. If the prompt is empty it will automatically toggle sudo on your last command! -
+1 for NewPipe! It is stunning how good that app is compared to the official experience. Also, the developers deserve all the praise in the world for the fact that when the video extractor breaks due to YouTube changing something on their end, we reliably get a fix pushed out within days if not hours.
-
-
- Vim, without question, though I’ve been browsing some of the forks recently.
- Zsh. Very thankful that Apple uses it as default login shell now, since I’ve used as my Linux/BSD default login shell for almost 15 years.
- I am still attached to ag at the hip. It was the first thing I installed in my new Gentoo chroot, before even
eix
. I can’t manage to bring myself to switch torg
yet. That’s partially because we userg
at work and it feels weird using it personally. - Speaking of
eix
,eix
. If you are on Gentoo, it makes life a lot easier. - At lower levels, the musl libc makes me glad, happy, and hopeful. I’ve moved all of my personal production systems to either Gentoo/musl, Void/musl, or Adélie. No more glibc anywhere.
I will say that I’ve been surprised by all the responses of Postgres. I didn’t even think of it. It is just always there, being a great database. So I’ll +1 Postgres.
-
As a hobbyist, I love Blender.
The basics of laying out objects by moving, scaling and rotating them feels fun. Using the same workflow to edit the shape/contours of an object feels like an amazing freebie. You can do a much harder thing in the same way that you were doing the easier thing.
After the basics, Blender is feature rich for all the different kinds of workflows you can imagine. You can manipulate how things look using a visual node based system. You can sculpt things. You can draw/paint textures. You can animate. You can generate things semi-programatically using modifiers or a visual node based system or if needed you can just automate things with Python.
I am sure there are gaps for professionals in different areas, but as a hobbyist Blender is an amazing piece of software.
-
I have recently wrote a blog post titled “Work-related tech I use privately” on my software choices. Hope that plugging link here is ok.
-
If you can recommend it without caveat, then it’s not weirdly-fitting enough to be worth being a personal favourite!
I like how I can bend even the basic assumptions of StumpWM by adding customisations step by step, but I wouldn’t recommend it to a non-Lisper…
Does
remind
count if I like it as a backend but dislike its input syntax (and I generate the input files from another format)?Does ImageMagick count if there are gripes but it’s just too useful (with a reasonable path between the easy cases that are made easy, and the complicated horrors that are still made possible)?
On the clearly good generic specific tool side…
- xdotool
-
Does remind count if I like it as a backend but dislike its input syntax (and I generate the input files from another format)?
I’ve heard about remind multiple times but have never tried. That is, until now! I watched the introduction video and started playing with it. It looks great.
I’m not sure if I like its syntax. What format do you use instead?
-
Some gems I haven’t seen mentioned yet:
- Midnight Commander (mc): dual-pane file manager with included viewer/editor/diff tool. It’s showing it’s age, but extremely useful when I need to browse/search output from batch simulations at work (I made a cheat sheet for it) - I’m dreaming of building a more modern, more easily extendable clone using Textual
- xonsh: a Python-based shell which makes it much easier to do basic looping/conditionals right on the command line
- Fork: a nimble Git client for Mac and Windows
- rclone: I use it for cloud backups to pCloud
- Firefox: web browser that does care about privacy and is still has small but significant market share
- Skim: a better PDF viewer than macOS’s Preview
- macos Mail: no-frills, reliable mail client
- Bitwarden: password management
- Python (+ many excellent packages on PyPI): easy to overlook, but providing a very nice programming environment both professionally and for hobby projects
-
Surprised this hasn’t been mentioned yet: UBlock Origin.
-
Recently I had a shocking experience when I was searching for a simple static file server and couldn’t find a good one. That was until I found https://github.com/static-web-server/static-web-server
The old standbys of nginx/apache don’t have good defaults, are not memory-safe, and have super verbose config that has to be provided as a file which makes it annoying in Kubernetes (gotta have a mounted ConfigMap).
Caddy is the other big one, but the containerized version runs as root and not all config can be passed as flags, requiring that ConfigMap. It also feels a little too feature-rich for the Unix Philosophy.
There’s also sftp-go and filebrowser but shockingly neither of them let you download a file with an HTTP GET request at a reasonable path like “example.com/folder/file.txt”
So yeah I settled on https://github.com/static-web-server/static-web-server and have been quite happy with it!
-
darkhttpd? python -m http.server? Or does good have specific speed or security considerations?
-
Have you seen https://github.com/lucaslorentz/caddy-docker-proxy?
It takes care of Caddy configuration for docker. It’s a little awkward to use labels for the config but it works fairly well. It’s probably an overkill for just serving static files but it’s about as good as it can get in the dockerland if you have a number of web-facing containers. Then you don’t need to run another process to serve files from a volume.
-
-
Hammerspoon is very good if you’re on a Mac. Just today I added a little call that updates a few things I’m doing to respond automatically to monitor add/remove situations — window placement, audio sources, all sorts of things. It’s like adding a layer of Lua underneath everything going on in the system, allowing you to tap into it and assign hotkeys, fix behaviors, whatever you need.
-
I really need to make the dive in and use Hammerspoon. Now that I’m splitting my time between the office and home, I’m constantly frustrated by having to totally reconfigure what desktops are where and what windows are on what desktop when I hook up to my different external monitor set up between work and home.
-
To link it with another comment I made on this thread, as with many of my tools I sync the config using Syncthing (using a symlink). I recently wrote an
onHost()
qualifier function (if onHost(‘foo’)…
) so that I can have a few machine-specific configs going on in an otherwise shared setup. The two recent additions mentioned above are an AppleScript call to Stay upon monitor changes to readjust everything, and a re-setting of default audio output to accommodate a quirk in AirPlay screen mirroring. I would say most of what I do with HS is useful additions, but being able to massage issues like these is also very useful. You might also like Moom for a little manual window adjustment.
-
-
-
Even though I think our industry and its products are generally a wasteland, I was surprised to be able to come up with quite a few examples of great software when I started thinking about it.
PostgreSQL and sqlite are remarkable pieces of software.
I’d say VSCode is surprisingly good; it has problems but it’s something that seems like it can’t possibly function as well as it does so it’s notable for that at least. Dash is great for documentation. jq is cool for a bit of JSON processing. iTerm has been fading into the background and not bothering me for years. AdGuard just chugs away in the background and is quite good for my sanity.
Fastmail is pleasant to use and doesn’t seem to cause me any issues. Stripe is a good product with good UI for payment processing. Signal works well for messaging. Bear is great for my personal cross-device knowledge base. DuckDuckGo is a decent enough search engine without surveillance thrown in.
On the PL front, I have a soft spot for Elm - it influenced both the quality of compiler error messages and the front end frameworks.
There are also many small mobile apps and games that are useful and just work year after year.
What’s interesting is that the products from most of the industry behemoths (who should surely possess the capability to make good software) are comically bad. Even putting aside the downright evil aspects of surveillance and monopolistic tendencies, things like Google products, AWS products, Spotify, Twitter, Netflix are absolute rubbish – not in all ways of course, but in many important ways like UX or performance or reliability. Perhaps it shows that in order to become an industry behemoth, it’s necessary to focus on things other than software quality.
-
Emacs for org-mode, eshell, eglot and the various modes. I use a custom build with GNUstep as it produces a portable app bundle which can be used without installation. The GNUstep build has been remarkably glitch-free.
Fossil is self-contained and almost perfect for personal projects.
Some of the other favourites include a bunch of old and obscure programs:
Berkeley par paragraph formatter - formats tight paras. Useful for margin notes in plain text files.
xnedit editor - classic NEdit modernized. Has an interesting feature that I use a lot: the secondary selection when dragged wades into the text and can be used to move narrow paras to the side to fake margin notes in plain text files (yes yes, woe to the poor ba$tard who has to make further changes).
sam editor - @lorddimwit’s much improved port of the sam editor from plan9. Great for working with lots of text: just sweep a rectangle anywhere within the window and put your text in. Remote editing over ssh works as well.
tt terminal - @leahneukirchen’s 9term clone. The “hold mode” is simple and clever.
-
Software I use that makes me happy (I work mostly on Linux, and occasionally mess around on macOS and Windows stuff):
- +1 to Tailscale
sqlite
- Reaper
- Blender
- workhorse libraries like
numpy
for numerical stuff,raylib
for graphics programming,imgui
for GUIs,streamlit
for fast python prototyping - utilities like
fzf
,fd
,rg
,rsync
-
The classics: PostgreSQL, OpenSSH,, sshfs, curl, OpenNTPD, nginx, tmux, sudo/doas, ffmpeg , fzf, ripgrep
Sometimes when I just want a plain simple graphical editor leafpad/mousepad
Something like vi(m), for example nvi on the command line
Clementine for music. Though I have to admit I rarely open it these days.
Redis, especially if you don’t overlook that you can make it an actual cache (eg set it to be an LRU cache) even though I haven’t used it in s long time. I hope the core is still simple.
OpenSMTPD, Dovecot
restic for backups
prosody (xmpp)
Tor, where I also hope it’s still good
i3 and i3lock
Fairmail for emails on the phone (used to be a huge k-9 fan until it would sometimes randomly, silently, without error not send/finish sending)
Conversations for messaging on the phone
Keepassxc as an offline password safe
ZFS for important data
And with some slight caveats: urxvt aka rxt-unicode
-
- transmission torrent client: it just works.
- photopea: great little image editor: I don’t install gimp anymore
-
-
Just spent all week taking notes with this at the Esri Dev Summit, loved it!!
-
-
I keep recommending Kate editor for anyone who likes a good GUI editor: https://kate-editor.org/ It’s slowly becoming my favorite editor ever.
OpenMW is great for Morrowind fans :) https://openmw.org/en/
-
Mac Apps:
Unix, etc.
- fzf and z
- cargo/rustc
- Emacs
-
trash-d is a small and simple trash/recycle-bin implementation designed to be a drop-in replacement for
rm
. I aliasrm=trash
and forget that it’s there until accidentally deleting something and knowing I can restore it.Full disclosure: I am a contributor to this project.
Other things that I expected to see mentioned already, but have not been:
- bat, exa (hey, I like programs that fit in neatly with their environment and improve it)
- transmission-d
- Hakyll
- newsboat
- Unbound
- magic-wormhole
- WeeChat
- Jitsi Meet
-
One that surprises my is Infinity from F-Droid as a Reddit client as well as NewsPipe/Revanced for YouTube. These platforms are unbearable without ads dear to the sheer volume—to the point that I probably wouldn’t participate in them. On that note StevenBlack’s host block lists and μBlock Origin are the counterparts keeping the browser sane.
I’m pretty thankful for OpenWRT—though I would love if its packages, LuCi, and it’s configuration scheme were backed by Nix.
My heart also goes out to the great photography workflows provided by darktable, Hugin, DisplayCAL, colord, enfuse-enblend, panotools, ImageMagick, and all the graphics C libs. Here’s to 2023 as the year color management comes to Wayland.
-
[Windows] I’m using FAR Manager since 1997 and I can tell that no other software elevated my productivity this high yet. Fully customisable, plenty of plugins, open source, etc. I used as an “IDE” at some point (before Sublime).
Apart from that, for multi-laptop config (work + private) spacedesk and input director are life-savers.
-
- zathura pdf reader
- espanso automatic-as-you-type text expander
- tldr example-focused mini manpages
- snebu filesystem backups
- pgTAP database test harness
- pspg pager for tabular data
- redshift and similar (I’m using wlsunset on wayland)
already mentioned: Postgres, PostGIS, SyncThing, rofi, ripgrep, KeePassXC, jq, mcfly, mpv
-
Most of the software that I enjoy were already mentioned (some multiple times), so I won’t repeat those.
But I want to add the flashcard application Anki (mostly AnkiDroid). I’ve learned so much since I started using it. It’s been 7 years I think. I just keep adding little (very little) nuggets of knowledge all the time.
Like, just today, I added cards about WireGuard. Very simple cards, to remember things like “WireGuard uses keypairs”, “it doesn’t take care of key distribution”. It’s simple, but it means that next time I want to setup a VPN, I’ll have this less to learn on the spot. It reduces the activation energy if you will.
I must add: I mostly use Anki during “idle times” during the day.
-
copy and paste from my website (links here https://zachpeters.org/stack). i apologize for the formatting
Insomnia - Opensource API explorer asdf - Manage multiple runtime versions with a single CLI tool Logseq - Logseq is a privacy-first, open-source knowledge base that works on top of local plain-text Markdown and Org-mode files. direnv - unclutter your .profile Swinsian - Swinsian is a sophisticated music player for macOS with wide format suppor Amethyst - A tiling window manager for macOS iterm2 - a terminal emulator for macos VS Code - My go-to code editor Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications. Phoenix - Build rich, interactive web applications quickly, with less code and fewer moving parts. Tailwindcss - Rapidly build modern websites without ever leaving your HTML. just - just is a handy way to save and run project-specific commands visidata - Data exploration at your fingertips topgrade - Keeping your system up to date usually involves invoking multiple package managers. This results in big, non-portable shell one-liners saved in your shell. To remedy this, topgrade detects which tools you use and runs the appropriate commands to update them Dracula - Dracula PRO is a color scheme and UI theme tailored for programming. Sumatra PDF - PDF, eBook (epub, mobi), comic book (cbz/cbr), DjVu, XPS, CHM, image viewer for Windows. Small, fast, customizable, free. Scoop - Scoop installs programs you know and love, from the command line with a minimal amount of friction. Lazygit - A simple terminal UI for git commands Bacon - bacon is a background rust code checker Memtest86+ - Memtest86+ is a stand-alone memory tester for x86 and x86-64 architecture computers. Zellij - A terminal workspace with batteries included
-
Darktable. I’m a regular user and keep being impressive just how much thinking and science goes into it, and how high-quality the resulting software is.
Another two examples are Inkscape and Krita, although I don’t use either regularly.
-
Libsodium. Every time I’m forced to work with other crypto APIs, I realize how good I had it with libsodium.
-
sqlite
-
I think mcfly is my favorite piece of software right now. It makes shell history so much more useful.
-
I use Linux and I’m happy with most of the CLI/GUI tools I’m using.
-
PicoLisp as unique ecosystem.
-
What’s in the picolisp ecosystem? It seemed kind of self contained?
-
-
good code absolutely exists these days; more of it than at any point in history.
code that is very high quality & i’m always happy to read through, in no particular order:
- golang
- openbsd - especially love referencing smtpd
- most hashicorp stuff, especially consul & nomad
there are a few proprietary apps that i think fit this category, but i won’t shill them here.
-
- sqlite
- beanstalk
- tcpdump
- wireshark
- tailscale
- excel
-
Some of my favorites:
- KDE. It just keeps on improving with features that and utilities that become indispensable. I love how the taskbar are so customizable. Dolphin and Ark are really great applications for file management.
- CopyQ. Clipboard manager thats really powerful.
- mpv. Plays everything from command line and no bezels.
- TreeStyleTabs. Makes Firefox great at tab management.
- Telegram desktop app. Messaging apps should be this fast.
- Emacs.
-
I can’t find the usability / UX of Paint.net anywhere in the Linux or MacOS world and it make me really sad / miss Windows often
-
Trello is incredible
-
-
Two pieces of software that I would recommend without caveat:
-
Magit is a magical git experience. I’d recommend it even to people who don’t already use Emacs, and have no desire to learn/use Emacs for anything else.
-
I got a 1Password Family account years ago and haven’t looked back. We have a shared vaults for our 11yo son’s accounts; and another for utilities wifi router, electricity, gas, water, broadband, grocery deliveries etc.
-
-
Gotta say magit is the best git gui out there and probably one of the best pieces of software ever written.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK