Software I’m thankful for (2021)
crawshaw.io
crawshaw.io
Anki - Software, that helped me build up habit, and made learning language an easier task
Emacs - Wonderful text editor, made interacting with system a bliss.
Nix/NixOS - Distro, that made updates a painless, and fearless task. I love it.
ZFS - Filesystem that I love, for it has many wonderful features, and they all just work. (Also cute compression)
Wine + DXVK/VKD3D - Thanks to this, I was able to completely drop windows partition, and go full Linux.
LaTeX - Thanks to it, I could have cute workflow for writing documents (And yesterday, wrote CV with its' help :D)
Calibre - Man.. what a behemot of book software. Makes anything ebook related painless
Common Lisp(SBCL) and Haskell(GHC) - Very interesting languages, with very wonderful features. I love them both.
Cool retro term - For playing roguelikes, lets me experience them in very retro, retro way.
Obviously, ublock origin, makes browsing web not a nightmare.
Aseprite - wonderful pixelart software.
There is more, but... I will stop there, to make the comment.. not too long.
I wrote a bit more about this on my extremely simple blog
Along with a track record of being generally reliable and stable, under intense commercial workloads.
I use snapshots for personal backups, but on BTFS, and it's amazingly simple. 2 LOC: Rsync home to drive and make snapshot.
But then again, it might not apply to you, it.. honestly depends on person...
Hammerspoon, I use it to automatically switch audio devices based on context, so every call uses the best microphone currently available, window management via keystrokes, limiting media keys to Spotify, tons of other things. Indispensable.
Arduino, I don't think I would be able to tinker with microcontrollers as much if I had to write C and use obscure toolchains directly.
Solvespace, a limited but usable free CAD for simple parts to be 3d printed. Wish there was a real contender to the commercial ones though, or a free tier that doesn't smell like it's going away any time. Still very thankful that SolveSpace exists.
The Scala 3 compiler and the VSCode plugin for v3. Absolutely love the language and the experience is so much better than with IntelliJ, haven't had as much fun writing code in ages.
This will be a bit controversial, but Kubernetes, because if people use it via GKE, EKS etc. then I won't have to learn their organically grown solution to the same dozen-or-so operations problems, and I have yet to see one that isn't a hot mess in some way or other. Also anything running on top of Kubernetes won't be built the very old-fashioned vi-edits-on-server way, great for sanity.
Various modern messenger apps (Telegram, Whatsapp, Instagram's direct messages, ...) because I would hear a lot less from some highly cherished and very non-technical people in my life without these incredibly slick and fun and convenient apps. As one who's old enough to remember being dependent on landlines and payphones and letters, this still feels like a miracle.
I appreciate this perspective. It's sane. But my consistent experience has been that the complexity permitted by the Kubernetes configuration surface area tends to be larger, more complex, and ultimately more difficult to wrangle than the complexity introduced by (reasonably coherent) home-grown systems.
I would generally prefer to be responsible for a bespoke solution, with all of its warts and pathologies, than for a Kubernetes deployment. The problems of the former tend to be at least tractable; wrangling Kubernetes to a reasonable level of availability is in my experience only possible if you dedicate your career to it.
But people just don't want to move away from Bash due to its widely usage. So: + In my company I still use Bash. + I switch all my personal shells to Fish.
Yes, it's harder to get started, and it's less fun to use, but it is more powerful. I wrote a comparison of the two earlier this year[0].
[0] https://incoherency.co.uk/blog/stories/freecad-vs-solvespace...
A few hours with Hammerspoon have made that a non-issue, and I've hardly had to think about window positioning or size since hammering this logic out:
https://github.com/NateEag/dotfiles/blob/5d47773e0e7cacb9139...
Here's the Spoon I created for window management:
https://github.com/nonissue/hammerspoon/blob/main/_Spoons/Fe...
Essentially, `cmd + alt + left / right` resizes the frontmost window to 50% the screen width, and moves it to the specified side of the screen.
`alt + space` maximizes the frontmost window. `cmd + alt + ctrl + P` sends the frontmost window to your next screen, and you can repeat it to move windows between multiple monitors. I also have an undo function that lets you revert any of the window management actions you've taken.
Let me know if you have any questions / concerns!
https://github.com/nonissue/hammerspoon
Quite extensive! My custom Spoons (Hammerspoon's version of plugins) can be found in the _Spoons directory. Let me know if you have any questions or need any help with your own config!
I've tried everything from Notepad++ (and plugins), Sublime (and plugins), MacVim (and plugins), Atom, VS Code, to other heavyweight IDEs...
I'm not a lucky person, avoid games of luck, but consider one of my few lucky moments being grandfathered into Jetbrains's sub model at a steep discount.
If you haven't properly checked it out, you owe it to yourself to do so.
But if I'm shoved into an old codebase and I need to grok it fast, Jetbrains tools are a lifesaver.
Shellcheck makes writing shell scripts bearable and dare I say somewhat enjoyable. They have managed to collate all the shell scripting potholes and tribal knowledge into one static analysis tool. No shell script now gets checked in at work or on my personal machine without being pumped through shellcheck.
Type annotations: Started using them this year and it allows my editor to give me all sorts of hints about things I'm doing wrong.
Typer / Click: I've been writing a bunch of CLIs this year and Typer and Click make this really fun.
Wezterm: Went all in on this terminal 3-4 months ago and it's really great! In particular I like the "copy mode" features and it's "tmux+mosh" abilities.
LunarVim: Been using it for ~9 months, and it gives me all the advanced developer features I felt like I was missing in my various attempts at a custom vim setup, without the pain.
sway / i3wm: On my 4th year using it and it just fits my workflow so well.
Also useful to circumvent iOS's sorry state of ad blocking. I use an ad blocker on my device, too, but the pi-hole takes care of 90% of the stuff that annoys me.
I've donated a few times; consider buying the devs a cup of coffee!
Using someone else's device and off my network is entirely scary.
fzf (https://github.com/junegunn/fzf)
I can only wonder how much time fzf has saved me in the long term.
In terms of "software that I don't use for writing software", iA Writer is probably what I am most grateful for.
The built-in Windows search is (for me) abysmal compared to Spotlight search on the Mac, and especially Alfred's interface to Spotlight search. The Windows search seems to switch too early to trying Bing results when I'm only interested in local results.
Never tried Everything before, but I think I've seen it recommended before, so I'm downloading now.
My favorite fzf usage (but not the most often used) is this alias I put in my ~/.gitconfig file
frbi = "!f() { git rebase -i $(git log --pretty=oneline --color=always | fzf --ansi | cut -d ' ' -f1)^ ; }; f"
So I do: git frbi (which to me means Fzf ReBase Interactive)And then can easily pick what commit I will use as my starting point for doing some rebase work.
It was a hot mess and took over several bash/emacs control keys. It did a nice job of searching history, but I hated that it paralyzed my keyboard usage
This is absolutely true! Probably everything you could do with WireGuard you could accomplish with OpenSSL/OpenVPN, but the complexity is staggering. This makes it much more difficult to troubleshoot and far more likely that there will be an error in the configuration that could lead to compromise.
Getting it set up was really easy. I think it took about an hour, which included standing up a new OpenBSD VM to run the server. Configuring clients (iOS) was pretty straight-forward and reasonable. I don't have a feeling that there's some security hole lurking in the configuration simply because there's not a lot to get wrong.
In comparison, IKEv2/IPSec was incredibly painful, especially when you also create configuration profiles for iOS and have to issue and distribute certificates. Once I understood how it worked it made some sense, but there's always that nagging feeling that I've screwed up the configuration because there's just so many options to get wrong. I've probably spent six hours, not all at once of course, getting it working and set up "just so."
In spite of all of this, I'm continuing to use my IKEv2/IPSec setup. I have not figured out how to get WireGuard to do split DNS, whereas this was a fairly simple part of the IKEv2/IPSec setup. The other requirement I have is split tunnels, but I think WireGuard can do that fairly easily.
Apart from being a 3rd-party service, which isn't really what I want, it seems to check all of the boxes. The documentation is very thin on the iOS side, but it seems likely that the iOS app can do everything that can be configured in the admin console. That configuration does seem to meet my requirements.
Is there a self-hosted Tailscale-like option?
The only other thing is automatic connection. In my IKEv2/IPSec setup, I've build configuration profiles for the iOS devices so that they'll establish a connection on-demand (triggered by a DNS lookup for my internal domain), but only when they're not on my home Wifi network. It's perfectly seamless since it's all built-in to iOS. The Wireguard app seems to deal with the "connect when not on home Wifi" part, but doesn't do the on-demand side. Wireguard is light enough that this may not actually matter though.
OpenVPN was always a nightmare
powerlevel10k because it makes adding custom sections to my shell prompt really straightforward. https://github.com/romkatv/powerlevel10k
terraform because I have a job wrangling it lol
asdf because it manages versions of software for me really well and it has thus far been rock solid reliable. https://asdf-vm.com/
Emacs because it's about as configurable and customizable as my most insane requirements. And emacs lisp is very cool. Similarly, vim and vscode are also dear to me.
Factorio! because of course Factorio, it's amazing. Similarly Kerbal Space Program.
Firefox for standing up against the chrome hegemony nowadays, and for being so exciting back in 1998 with its initial open source decision.
And Tree Style Tabs, because every time I have to use a browser without it, my skin crawls at the lack of organization. https://github.com/piroor/treestyletab
And the big ones: grep, sed, awk, cut, sort, uniq, jq for all the times they've turned something incomprehensible into something useful to this tiny mind.
EDIT: oh and zsh because zmodload zsh/datetime gives me $EPOCHSECONDS which makes life so much easier to make cool prompt segments like "days and hours since last commit" and "remaining auth session time in minutes and seconds"
# display time since last commit in days and hours
gdate -d @$(($EPOCHSECONDS-$(git log -1 --format=%ct))) -u +"(%-dd %-Hh ago)"I think, you want to take the difference and divide by 86400 to get the number of days. Then take the difference modulo 86400 to get seconds in a day, and convert that to hours (minutes:seconds) via strftime string.
Proof of concept:
1> (let ((tdiff (- (time) (read (command-get-string "git log -1 --format=%ct")))))
(match (@days @secs) (trunc-rem tdiff 86400)
`(@{days}d @(time-string-utc secs `%H`)h ago)`))
"(627d 12h ago)"Thank you for the bug report and PR ;) I'll look at fixing it with your code.
- ncdu, to find out which files and folders take up most of the disk space [1]
- julia, because scientific programming was never so fun and fast [2]
- midnight commander, because a TUI implementing Norton Commander dual-pane view is so useful! [3]
- lazarus, because creating multi-platform desktop apps couldn't be simpler [4]
- zstandard, its performance are awesome!
[1] https://dev.yorhel.nl/ncdu
[3] https://midnight-commander.org/
Yes, I fucking hate Windows 10/11 for several laundry lists' worth of reasons, but you know what? At the end of the day, Windows is the only desktop OS that enables me to use my computer to do the shit I need or want to do.
So long as that fundamental principle as a tool is not violated, I will forever be thankful for Windows regardless what criticism I might have for it.
I totally agree. Windows is the only practical desktop OS for most people.
Mac is not an OS you can use unless you buy the entire package, and then you have to live with many of its limitations. It absolutely sucks at multitasking (not that most average users care about this one, but anyone coming from windows will struggle).
Linux is absolute freedom, but that comes with the cost of having to do much more than install, plug and play. You need to be a computer geek, or you need someone else to fix things for you.
So as much as we are mad at Microsoft for deliberately damaging the experience of using what could be a joy to use, it's still the best at what it is.
Hard disagree. Linux works extremely well for the person that only does basic computing. My mother, for instance, used Linux for years. Folks that need to do things like recompile a kernel in 2022 are way in the tail end of the technical distribution.
Can you expand on this please?
I'm a heavy Mac/Linux user and I've never found a multitasking problem.
I know that macOS is not very keyboard friendly in general, but I’d like to know more about what you mean by “it sucks at multitasking”.
I agree except that the more naive among them are always one click away from being wide open to downloading and installing malware, you can't lock that stuff down without making the account very inconvenient to use.
Linux, at least it's at least a bit of a pain in the ass to download and install something even if you want to.
If you do tasks that are well supported by your OS, your experience will be mostly good. Don't run servers on MacOS, don't develop on Windows and don't game on Linux. Or do it anyway and deal with the unpolished aspects of it.
There's certain things easier on one or the other, usually caused by silly hardcoding of paths (or other OS-specific assumptions). I've run into this with python packages on Windows for sure.
My Windows dev is mostly limited to .net, and I've been writing cross-platform for years (first via Mono, now .net core / .net 6). Most challenges with cross-platform .net are caused by hardcoding Windows-specific paths and backslash (vs using Environment.* and Path.Combine()), and secondarily by using win32-specific things (eg: registry).
Tip for Windows dev use: install Windows Terminal [1], scoop [2], oh-my-posh [3], and busybox [4]. Makes the cli so much more usable, at least for someone like me with linux CLI muscle memory (ls, grep, etc).
I've found the combo of busybox utils and PowerShell is very productive. I nearly always have at least a couple terminal tabs open, and I'm nearly 50/50 of whether I use cli or explorer to browse or operate on files.
I think HN has a tired circle-jerk around hating Windows but ultimately most people use Windows for a reason, and it's not because it's a good development environment: it's because it just works and if you're a normal user you never have to open a command line.
WSL2 + Docker gets you really close to the development experience of Linux while maintaining your sanity.
The same open-source apps for some of the same workflows work flawlessly in few minutes without all the struggles.
I absolutely agree with Tom Scott's conclusion, Windows will absolutely enable you to do whatever it is you want, regardless how stupid, and most likely without too much low-level jank that most people can't/won't deal with.
(Tom Scott's fine, but I would never look to him for technical advice or direction.)
And I like Microsoft. Microsoft makes some products, that's it. Not experiences, or promises of freedom. They are software products, with problems, qualities, end.
The fan turned on at random times in a way that was completely unrelated to what I was doing. WSL GUI apps (via VcXsrv) terminated on suspend, because the network stack is broken in Windows. At some point it started refusing to see wifi after resume. Ethernet got flakey. I thought those were hardware problems.
On the software side, lack of package management made things outright medieval. Nothing uninstalls cleanly. System tools are a UI mess where you can’t find anything. It also required reboots all the time.
Then I had a bottle of wine, wiped it, and installed NixOs. As it turns out, there were no hardware problems. Both wifi and Ethernet worked perfectly. No random fan noises or overheating except when I did something actually heavy. Software worked, did what I needed, and did not get in my way.
Had to switch from Capture One to Darktable for photos. It’s not as good, but serviceable.
I’m pretty sure all of the points above are technical. Your comment assumes that political reasons are somehow less important than technical ones. That is not true.
Sure you can use e.g. chocolatey or even cygwin but these are a bit hit and miss at the best of times.
Powershell is fine but a bit verbose for day to day terminal use compared to bash or nicer variants like zsh.
Also apparently I set up my last dual boot configuration in such a way that Windows 10 decided that it owned my Ubuntu partition, but only during an upgrade which happened several months after the initial installation. This ruined an actively used install. Not exactly an ideal user experience. Ok, at a stretch maybe it was a bit my fault for not learning that the Windows 10 update system was a bit more... Ambitious than previous versions of Windows, but an explicit warning prompt before it happened wouldn't have gone amiss.
When it doesn't gets in the way, yes. Unfortunately this is happening less and less with every release. If i would not be forced from my employer i would stay away from Win 10 as much as possible.
If you've never felt this pain then be glad you've missed out on the multi-decade cross-platform low level programming nightmare. Modern stacks abstract all this away, and the youngins don't know what all the fuss was about.
Basically you have the big Fortune 500 companies subsidizing pirates who download from TPBay...and of course the pirate CD copies being sold in street markets all over Sub-Saharan Africa.
Microsoft with Windows, Azure, Office, Outlook and PowerPoint is the backbone of the economy. Come noon you have already used half a dozen of different flavors of Microsoft and again if you know where to look you tasted them all for free.
Analyzing things post-facto the bad reputation that Microsoft had was unwarrented given that we ended up under a much tighter stranghold of Apple in the mobile environment. At least the developing world is saving themselves using Android.
God no. I draw a hard line at pirating executable code. I forget where I read it but a not insignificant percentage of pirated software contains malware, and I don't know about you, but having my bank or brokerage account compromised would cost exponential orders of magnitude more than any software licence.
Hell, I'm concerned enough about malware that even window's larger attack surface gives me pause even though I know things have gotten better since I left it. I still feel much more secure on linux.
I'm on mac right now for my current job, and quite often a few of my cores go nuts due to a kernel_task process which I find it impossible to track down the reason why. Pretty sure I could root cause this in 10 minutes with procexp.
I feel like this is the kind of dystopian thing everyone just accepted that it's normal.
And by that I mean, I expected competition, options, etc. Instead I'm still forced to use Windows for my gaming, GPU's for Linux desktop is still hit or miss, and Apple decided to break up with Intel so on top of everything else I get to "enjoy" package incompatibilities for my work.
And now I have to pretend that I'm enjoying that Microsoft keeps deciding to grab "a little bit more" every now and then because I really don't have any other options, besides the "stop playing video games that aren't a pain to setup or even work on Linux".
Isn't that a very sad state of affairs? Why should such a piece of critical global infrastructure be in the hands of a single company?
I disagree on two fronts.
First that Windows is the "only" desktop OS that enables you to use your computer to do the shit you need or want to do. macOS and Linux both do as well.
Secondly that Windows is actually a very terrible OS to use your computer to do the shit you need to do unless you have zero care whatsoever for privacy.
But when time comes for me to do things, the only thing that matters is: Can I? At least for me (remember: everyone's needs and desires are different), Windows almost always answers with a resounding "Yes!", and for that practical fact I will always be thankful for Windows.
Give credit where credit is due, as the saying goes.
I use Linux on my computers because it’s much easier to use — setup is easier and more reliable; hardware support is either available or not, without weird driver issues or clunky bespoke vendor applications; scripting is easily available; basic programming tools are much easier to set up; DEs are better than the competition and window managers exist; package management exists, …
The application landscape, however, is obviously incomplete, with limited progress.
- Linux
- gcc, vim, git, make, et al
- KDE
- firefox
- yakuake (terminal that drops down like the old Quake console used to)
- libre office
- mpv
- Steam and Proton (which have made gaming work very well on Linux and have contributed to the complete loss of all productivity gained by any of the above programs).;-)
Oddly enough I think we can thank Microsoft for creating a standard binary format for PC games on Linux. Now if we could just get a decent Proton (or equivalent) for macOS (CrossOver doesn't seem to work as well.)
Beyond Compare 4 - compare files and folders https://www.scootersoftware.com/
uBlock Origin - An efficient blocker add-on for various browsers. Fast, potent, and lean. https://github.com/gorhill/uBlock
Those tools made my life so much easier. Can't recommend them enough.
Just a happy user and not affiliated
when you just wanna edit things quick and only need to remember a few commands. just wish it came standard with most distros.
magit especially
This may have changed for Youtube but I believe that a large portion of video services still uses ffmpeg under the hood.
cygwin
mintty
stream deck
firefox / thunderbird
eclipse
linux
socat / netcat
postgres / mysql
ms windows (ducks)
emacs
ms excelMany many years ago during undergraduate days, I used Cygwin (before being introduced to VirtualBox) to provide a UNIX-y coding environment on my Windows PC.
And on these days I prefer docker :D
Ultimately the software I'm thankful for is linux/GNU/python as that combination has not only ensure my continued employment, but the productivity of thousands of next-generation scientists.
Fossil. It is hands down the best version control and code hosting system out there, I wish more people would use it.
Gitea... I don't like git, but the fact that anyone can spin up their own server with ease and minimal resources and start collaborating is wonderful.
OSM.
Qutebrowser. Yeah I know it's buggy and can be janky and QT and all that, but a full featured keyboard focused minimal UI browser with vim like keybinds, there's a lot I'd tolerate for that.
swaywm. I finally have a workstation optimized for being a workstation. I can't wait for the day we all realize that composable graphical applications are doable with a tiling graphical interface.
btop, a really good system visualizer in the terminal.
RSS/Atom. Not really software per se, a specification, but it's great to be able to pull information as you need it.
Python, easy to build algorithms and web services in flask/gunicorn
Java, for performance and multithreaded code
Jupyter notebook, easy to prototype algorithms and code
Postgresql
Firefox
Chrome, I use Microsoft Edge
Windows - I love Linux for servers but for my consumer hardware, for ease and low maintenance I prefer Windows and run Ubuntu in virtual machines
IntelliJ, such a great IDE
Vscode - I was very skeptical of this text editor but it won me over. There are some rough edges but overall very good.
MacOS - Overall a stable operating system.
R Programming Language - Has flaws but works generally good to explore and clean data. Special thanks to Ggplot2 to make it bearable to make plots.
Folder Peek - Allowing me to switch different projects/folder from Menu bar.
It took me awhile to switch over. But really, I can’t go back to anything else. The customization and UX is unbeatable.
I forced myself to use vscode for two weeks and it is mostly fine. I do miss a lot of well-done things from Jetbrain (today for instance I had to build and run a Dockerfile and it was painful. Not impossible, had to look up all the commands but it was still painful).
OS/2 - was my OS of choice until I switched to Linux full-time around 2000 or so.
Linux
Emacs
Java
Eclipse
KDE
Python
R
Postgresql
Groovy
Grails
Spring
Pidgin
ejabberd
RSSOwl
Git
OpenOffice
All things that have made my life much easier and more productive in more ways that I could probably count.
Oh, and can't forget Firefox, VLC, and XMMS. Those are essential as well.
Might as well add AWS too. For all the (fair) criticisms one could level at Amazon, AWS is an incredibly valuable resource and has been a big part of my world for the last 10 years or so.
I pretty much cut my teeth on the first versions of them at university more than 20 years ago and the framework is still going strong to this day. Versatile, powerful, constantly evolving, well supported, easy to understand, truly portable, and effectively free. What more could you ask for.
No matter where I am, what device I'm using, all my stuff is always accessible and with me.
I love it.
The GNU/gcc tool-set was a paradigm shift in access to standardized cross-platform software development. It allowed enthusiasts to escape the world of Basic, MASM, and proprietary/expensive IDEs.
Also Caddy - a web engine which is actually useable (and great)
- Linux + GNU: My servers would never have been the same without them.
- Emacs: So many varied use cases over the years. I can type in Telugu (my mother tongue) and Devanagari so seamlessly ... bliss!
- LaTeX: From papers to books to presentations.
- Helix: A very recent discovery that replaced Vim for me in just a week!
- Kitty terminal: I no longer use GNU screen or tmux locally.
- Go, Ruby, Python: They have been paying my bills for so long.
- KDE: The other half of the Linux spirit!
- ffmpeg: Such a boon!
- Homebrew: So convenient.
I am using Joplin: https://joplinapp.org
Using Dropbox as sync with E2EE (but you can use other ways to sync)
also:
unit test frameworks - what a godsend
ruby - brought joy to writing code, even if I don't get to use it much anymore
I'll be doing some playing around with Caddy, and maybe that will replace nginx for me on my list.
Still, leaving the linux shell largely for 15 years and coming back to it, I can do basic things - without reading an instruction manual.
The Elm compiler, for giving me a welcoming on-ramp into functional programming. It's not the best nor my favourite, but its by far the most beginner friendly and is worth all developers learning for how it changes the way you think.
ed, whichever implementation you chose. And that's precisely what I'm thankful for. It showed me (via Michael W Lucas's book) that a software program can be fully specified, that you can have the entire spec in your head, and that you can just pick up any compliant implementation. So very refreshing.
Thank you all.
Language: Golang/python
Containers: Docker/vagrant
Browser: Chrome/Safari
* Steam/Proton/Wine/DXVK/VKD3D - to allow me to game on Linux and not need windows ever again.
* Fedora - for giving me a distro that is updated/leading edge, but not rolling and super stable.
* asdf - for letting me manage and get latest versions of my tools with minimal effort adn keep them updated
* Modern messaging - Whatsapp, Discord, Element, Telegram, etc. Lets me keep in touch with family, friends, communities near and far.
* foot - a crazy good wayland terminal.
* VS Code - light editor that does everything i need. No longer have to use heavy IDEs for anything.
* Go/Crystal/Nim - nice compiled languages that give me static binaries an a fun development experience.
* Linux - its been pushing for decades, but its finally at a place where it is starting to feel like a good everyday distro and so many things just work. Part of that is Web tech and Electron, others is Wine, the rest is the hard work of Linux devs that improved DEs, tools, accessibility, compatibility, etc. Most of my family has switched to it and most are not tech savvy much.
* Bitwarden - great, open source password manager that gets better and better.
* Micro - for giving me a nicer updated Nano experience when I don't need Vim or Emacs to edit some config files.
Im gonna get a lot of flack for this next one, but whatever:
* Google stuff - because it just works, and works really well. Android, docs, drive, maps, photos, etc. (i have contingency backup plans if this ever becomes not the case, even wrote a blog post detailing a lot of alternatives.)
And finally:
* Software - for giving me a career that gives a good quality of life to my family and myself. And its fun.
Old things that were useful long time ago but long fallen from grace at home: Firefox, uTorrent, WinRAR. Home software I still use and want to mention - Steam.
Judging from rest of the topic i spent my life on completely another Earth planet from rest of ppl here. And there most fun software was games written in C++ and running on Windows like OSes.
The best part is being able to replace the standard menu bar date with my custom date, including time zone.
The culture of small, useful and native-feeling utility apps is honestly one of my favorite aspects of macOS.
Vivaldi Browser, because I was a heavy Opera user back in the day
VS Code and all of its fantastic debug extensions
Maven, which has made my life as a Java dev so much easier
fish shell, which comes with a lot of convenience features enabled out of the box
Krita, for providing me with a free yet fully-capable option for digital painting
Kind of the entire KDE suite in general, including Plasma
OpenMPT, same reason as Krita but for music composition
F#, which I don't get many opportunities to use, but I love the design philosophy behind it and think the syntax is gorgeous
Monospaced fonts with ligatures (Fira Code being my favorite)
Google Calendar, without which my life would be a completely disorganized mess
MusicBee, which provides iTunes level of music organization without being iTunes
Markdown + Typora, for letting me throw together quick but well formatted documents without having to set up a TeX install or deal with a full-blown word processor
Qt and QML, which taught me that UX design doesn't have to be painful
A few clicks opposing the crypto b.s. and it is golden, with what seems so far to be a sustainable not-search-ads-funded business model, native code ad blocking/privacy enhancements, and minimal new tab page tomfoolery.
It's been a while since a "better to ask forgiveness than permission" fuck up, too. I know, I know, it's a pretty low bar...
I need to throw in a shout-out to the Windows Pro edition Windows Sandbox, a quick Hyper-V VM for a temporary barebones Windows-in-Windows that has proven really useful to troubleshoot issues in open source Windows software.
It's wonderfully simple, yet really flexible. You can make a registry of registries, back it by object storage, and a whole bunch of other things.
I've had to manage these at work and I love the relatively simple yet useful reach of support.
There have been some strange bugs. Up until ~2.8.1 it was ignoring TLS cipher settings.
I believe still... getting consistent HSTS headers for it [in scanning] requires a real webserver.
Non-200-OK requests lack the header, leading to what I'd call false positives
If I can gush for a moment: the whole Linux/OSS ecosystem, really. So many giants depend on the work of not that many really clever groups
Combined with Tridactyl plugin on firefox, I can keep my hands on the keyboard for almost every task across the OS.
Grammarly - Makes my writing not embarrassing.
Rust - Allows me to write clean code without bugs.
Python - Let me do amazing things with a few lines of code.
Vim - I can't live without hjkl :)
Z - Liberates my hand from cd ls
zsh&oh-my-zsh - Simple and customizable shell that looks amazing
macOS - An OS that I can live with
VPNs & proxies - The only reason I'm visiting this fantastic website
Free hosting services - Allows me to grow as a programmer
OmniFocus - Get things done
Notion - Express my thought with my own structure
Bartender - Declutters my menubar
It's esc + :q
Years and years later I got Notebook running on NeXT, then on OS X, and couldn't see the point, by then I had sites online that were saving my notes, links, and images. Everything grows to eventually send email, and anything that is software is already online somewhere already.
There is a docker container thats super easy to use. It's worked flawlessly for me the two times I've needed it. Each time I use it I donate because it's clearly a great bit of code.
- Notepad++ for better writing
- Inkscape for drawing
- Everything for finding your writings and drawings
- AstroGrep for finding content inside writings (and drawings (SVG))
- Firefox for the Web
- F# for funLinux
Emacs (+VM +gnus +org-mode +scheme-mode)
Sublime
clang++
cargo + rustc
SQLite
Apache
Lucene
Tensorflow
SVMLIB
TeX/LaTeX/Overleaf.com
OmniPlan
xfst/foma
-- Historic: --
HPUX
the C language and the various ANSI c89 compilers
Turbo-Pascal
Application Systems Heidelberg Modula-2 compiler
Why don’t folks give their web pages titles? There’s a title in the body but I mean actual page titles that show up in browser windows, tabs, and bookmarks.
<head>
<meta>
<title>Page Title</title>
</meta>
</head>- NodeJS. Despite its popularity, it's still underrated.
cron - gets things done on time, every time
chrony - simple, no-nonsense NTP
supervisor - keeps my processes running
tinc VPN - all my servers and services happily meshed together
Arduino - makes microcrontrollers accessible
BitTorrent - trivial, mirrored file hosting
BitTorrent Sync - simple, reliable file syncing
Left out OpenSSL because of poor docs and a small amount of developers. Last I had seen it was like 2 or so.
I haven’t actually seen Windows since 2006. I run Linux on laptops too. If you do video editing, maybe a Mac or apparently a windows would be better. Otherwise, Ubuntu LTS works well.
Apptivate - set global keyboard shortcut for Mac. Firefox - been using it for 20 years and still loving it. Vimium - vim binding for Firefox. Make web browsing more productive.
Haha, good one. I see what you did there.
Edgy pessimism is tiring, we get it everything sucks but this is the best we got, even though you still hate it.
> It’s not easily read by humans, but it can be read by humans.
What does this even mean, why, how? It’s so easy to complain about something without admitting you don’t have a better solution.
Maybe I’m bitter from my ERP dev ops role where I’m constantly enduring little thorns throughout the pipeline and overall codebase. But this way of thinking isn’t practical, you won’t get far if they’re what you deal with day to day.
except vi... seriously you heathen??? emacs 4ever ;)
- Windows 10/11
- WSL
- Powertoys
- Windows Terminal
- VS Code
- Beyond Compare
- Filelocator Pro
- Plex / Plexamp
- Calibre
- Resilio
- Firefox
- Ublock Origin
- Bitwarden
- Pushbullet
- Pihole
- Notion
- Hangouts (RIP, Chat is not the same, buddy)
This thing saved me daaaaaaays worth of time over the years. Plus my mental, plus my hair, plus ... well you get the gist..
Apache: Not as popular as it used to be, but I know it and so still use it
apt/aptitude/apt-get: The origin of all 'apps' and the most user friendly and secure way to manage software
Audacity: Or is that too controversial now with their telemetry?
bash: The best interface to my computers
convert: From Imagemagick, for batch converting images
Civilization IV: Yes 4, the only software that is not (yet?) open source
cron: It wakes me up every day (using mpv and bash)
Debian: I run it on almost everything
ffmpeg: to convert video formats
find: because I tend to forget where I put stuff :)
Firefox: because an alternative browser is crucial
FreeCAD: Amazing CAD software, and I like math
gcc: Because coding in C is fun!
gimp: Easy image manipulation
git: How did I ever live without it?
gramps: To keep track of my ancestors
grep: Often very useful.
Homebrew: To make a MacBook usable
Inkscape: Because vector graphics are essential
Linux: in background of course, like so many other tools that I am rarely aware of
make: For software that is not part of Debian
mariadb(mysql): So easy to build a database
mpv: For audio and video (and for their API)
Openshot: To create Lego NXT or Prusa video's
PrusaSlicer: A 3D printer opens a whole new world of possibilities
Python: I hate this language, but it is used so much and coding is still fun
return Youtube dislike: How else is Youtube usable?!
rsync: For backups
Singlefile: because web pages tend to disappear forever
ssh: Multitool for anything remote
Thunderbird: Reading my mail since 1996 (as Netscape Mail)
tmux: used daily, configured to a quiet and relaxing layout
Video downloadhelper: because video's tend to disappear forever
vim: By far the best editor for text, code, config files and more.
wine: To play that one game on Debian (though I wish its 32-bit had as much memory as 32-bit Windows XP)
Wireshark: The best tool to learn about networking
XFCE: My GUI since almost 20 years
xfce-screenshooter: Because screenshots are useful
Google ortools because life and work needs optimization
Pysot because life and work needs optimization
Pocket because it is the only thing that allows me to organize my online research
Google colab because it allowed me to punch far above my weight in terms of computational resources
Microsoft office because although a vendor lock in it is lingua franca
Jupyter notebook
Dolphin browser fir android because it is the only one that allows plugins anymore sldo ublock also bypass paywall clean
Anki because learning
Obsidian because it takes note taking to the extreme Gmail
Now I better understand:
make clean && make
(Regarding the mtimes link in the first paragraph)
PyCharm
Clion
Audacity
One of the side effects being that it presents the tools and context for doing things properly - from editing to color correction.
- jellyfin
- finamp
- piOS
- wireguard
- narwhal iOS Reddit app
- osmand/openstreetmap in general
- netnewswire
- pocket casts
- librewolf
- sonixd
- obsidian
- signal
- iterm
pdftk
Popper tools pdftotext especially with the -layout switch
- Alfred for clipboard management
- Rectangle
- Git
- The Unix shell/process model
- Vim interaction model and vi mode in its various incarnations
- Vimium
- VS Code
- Postgres
- BigQuery
- Markdown
- 1Password
- Docker
- i3
- tmux
- SQLite
- Intellij
- Java
On Windows:
- Git-bash
- Autohotkey
- Virtual desktops in win10+
And my MVP for 2022:
Obsidian.
4 months after discovering it, I have 700+ (work) notes, that are the core of my knowledge and skills.
I absolutely LOVE this tool !!!
- Ruby and Rails
- Homebrew
- Sublime Text / VSCode
- iTerm2
- Git
- GHC (Haskell compiler)
- Emacs
- consult/vertico/marginalia
- Org-mode
- Org-roam
- tramp.el
- magit
- docker.el
- gnus
If emacs then emacs, else $(evil)
Org-mode is my favourite superpower, magit is a superb example of nominative determinism, and the underlying trust of GNU is childishly verifiable.
RMS for our collective win
Notepad++
Don't need to explain I guess.
- terminator
- apt
- pick color utility
- plex although i used it briefly
- blueman to get bt audio working for my sennheiser btnc 4.5
- openssh
on macos
- iterm2
- homebrew
- macsfancontrol on my intel based macs
- amphetamine
regardless of any os
- vscode
- vim and neovim now a days
- brave browsers tor window option
- google docs
- git
- fortune, lolcat & cowsay
Terminus
Zsh
Powershell (verbosity isn’t terrible!)
SQLAlchemy (connection engine + docs)
Git
Ssh
IPython as a debugger shell
In addition to everything above, I'm thankful for these:
Pass (passwordstore.org)
Newsblur
Multitail
Game ranger
Photoshop
MsPaint
File recovery utilities
VLC player
OBS
Winrar
MSN messenger
Yahoo answers
Torrents
Adobe cc cleaner
Windows tweakers
Disk space visualizers
Cheat engine
Windows defender
I grow little of the food I eat, and of the little I do grow I did not breed or perfect the seeds.
I do not make any of my own clothing.
I speak a language I did not invent or refine.
I did not discover the mathematics I use.
I am protected by freedoms and laws I did not conceive of or legislate, and do not enforce or adjudicate.
I am moved by music I did not create myself.
When I needed medical attention, I was helpless to help myself survive.
I did not invent the transistor, the microprocessor, object oriented programming, or most of the technology I work with.
I love and admire my species, living and dead, and am totally dependent on them for my life and well being.
Sent from my iPad
Source: https://stevejobsarchive.com/
Steve Jobs emails himself (2010) - https://news.ycombinator.com/item?id=32761060 - Sept 2022 (247 comments)
In essence, existence is interwoven in a complex tapestry of interdependence.
sent from a derivative of alan kay prototype
Maybe he just wanted to remind himself of these things.
> Email from Steve Jobs to himself
> 2010
>
> Steve often sent himself messages to capture what was on his mind.0/0
as far as i'm aware, tailscale is a pretty upstanding member of the open-source community.
Although copyright and patents may prohibit you from distributing it.
Also everyone way overestimates how hard it is to re implement all this crap.