Hacker News new | past | comments | ask | show | jobs | submit login
Software I’m thankful for (2021) (crawshaw.io)
813 points by yarapavan on Sept 23, 2022 | hide | past | favorite | 509 comments



Let's see.. Software I am thankful for.. there is a fair amount of such.

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.


This was better and more thought out than the OP's blog post.


Curious to learn, what are the differentiators of ZFS? File system seems like an invisible layer to me personally which makes me ask this question.


Well, ZFS way of managing disks is really comfy to me, and, The way datasets and snapshots work, let me have really space efficient game modding.

I wrote a bit more about this on my extremely simple blog

https://sleepycatgirl.github.io/html/zfs.html


Interesting read, thanks


zero-copy snapshots, end-to-end validation of writes and checksummable data integrity, built-in logical/physical device management, and a very intelligent caching layer that uses spare RAM to handle MRU/MFU for both filesystem metadata and the data itself.

Along with a track record of being generally reliable and stable, under intense commercial workloads.


Yeah... While I don't make use of some things (Like, I only have 1HDD, 1SDD (I do plan to change that once I will be building new PC though), so no RAID-Z for me, still, the way datasets work, made things painless (I mean, I can finally have separate / partition by simply making dataset, but not waste space from having separate partition with conventional filesystem, and this just works)) but still, on the desktop, it is a very pleasant experience. Though, there is still a lot for me to learn about ZFS (Stuff like L2ARC, SLOG and such) but that is fine, those things will come with time =w=


Snapshots and device pools are my favorites. See https://en.wikipedia.org/wiki/ZFS#Features

I use snapshots for personal backups, but on BTFS, and it's amazingly simple. 2 LOC: Rsync home to drive and make snapshot.


is BTFS production ready? as in, is it stable these days?


BTRFS has been stable for a while, except for RAID 5/6. However you can use RAID 1 for all intents as RAID 1 provides essentially RAID 5/6 and is much more flexible.

With BTRFS RAID 1 you can set the number of drives, and the number of duplicate data, and can use mixed sized drives. Due to this, I would recommend RAID 1 over RAID 5/6 anyway even if RAID 5/6 was fine.


I am using it for years and ceased to run into problems about 3 years ago. Production ready as in building a business on it. I would not. Storing your personal important stuff (and have backups in place): yes. Unimportant personal stuff: also very much yes.


Thanks a lot for mentioning Anki! I was not aware of its existence, but it's exactly what I needed for myself and my children!


Yeah, anki is one wonderful piece of software, and it is open source :D Also, I have a bit of advice regarding studying, learning in general: If you struggle to start things, because there is so much to learn and such, start small. Like, If you keep doing even 5 minutes a day, it will be much easier to increase the time (I started this way, and nowadays I can pull off over hour easily) rather than try to do a lot at first

But then again, it might not apply to you, it.. honestly depends on person...


I agree. At the moment I am studying a new language and am following one of the guides produced by Assimil [1]. Their method is exactly what you are suggesting, and I verified its effectiveness when I learned from scratch a new language in 3 months.

[1] https://www.assimil.com/en/


As many people have pointed out before about learning languages, it's best to learn in sentences as soon as you can.


The fish shell, makes using the shell feel almost painless.

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.


> 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.

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.


I use fish as my main shell and haven't seen anyone else that has. Honestly its really good, the autocomplete feature is my favorite.


Actually you can use fish-like autocomplete feature in zsh with this plugin [1]. It works well for years in my machine.

[1] https://github.com/marlonrichert/zsh-autocomplete


I didn't know that, thanks! I wonder why i haven't seen this for BASH considering its probably the most common shell other than Command Prompt.


I don’t think people who use bash actually want to use it. even macos switched to zsh a few years ago.


The macOS change was likely driven by the license which keeps the shipped Bash at version 3.

The numbers for Homebrew installations of Bash suggest hundreds of thousands of people choose to use it.


I have it for running scripts, not for use as a shell


I don't think it parses manpages for autocomplete?


I've been using fish as my primary shell for probably 5-6 years, and it's honestly fucking delightful. I have my own custom theme/prompt, a bunch of custom functions I use on a very regular basis, an extensive config and I use fisher for third party add ons. I've seen a lot of people say things like "oh you can modify ZSH to be like a slightly worse version of fish" and I just don't get why I would bother? I'm already using a non-standard shell...


Also Fish user here. Fish offers many superior features. I use it personally for quick scripting (compared to arcane Bash syntax).

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.


Long-time fish user here too. It's pretty widely available, so I suppose it has fair share of use.


If you like SolveSpace but want something more powerful, you should try FreeCAD.

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...


Got any Hammerspoon config to share? I've used it for simple stuff for years, but recently noticed that people use it for window management, and macos' handling of windows on my second monitor is driving me nuts...


I spent years furious with OS X's flaky handling of windows on disconnect/reconnect of windows.

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...


I know your comment is stale at this point, but my hammerspoon config is quite extensive.

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!


Scala Metals team are absolute beasts, I can't really tell of other instances where it's so easy to get almost a full blown IDE out of vim so easily (as a total beginner).


If you don't mind me asking, why do you prefer Scala 3 specifically? What did it change over 2 that you made such a big difference?


Not OP but it's almost a whole new language. They removed a lot of boilerplate and it just feels a lot better planned out.


Do you mind sharing your Hammerspoon config?


You didn't ask me, but here's mine:

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 second the motion


Not the parent commenter but here's mine:

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!


JetBrains IDEs. I need to work with three different languages and it is just a blessing that every IDE works exactly the same.


Absolutely! I teach a CS class in my university and encourage my students to try them out. (It's a class where students are free to pick the language to use, but they usually end up using C++, C#, or Kotlin.) They seem to love the many suggestions the IDE provides about code style, and the visual clues that suggest how to use some syntax. At the end of the semester, many of them have thanked me for that tip, saying that «I would have never imagined that an IDE could teach me how to write better code!».


Not to mention, there are so many helpers built in and it's one of the few pieces of software that I don't have any major complaints about.


I third this.

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.


Me too, my "all tools" subscription has been the single best decision and return of my career


Visual Studio Code works with many more languages, loads an order of magnitude quicker, has amazing settings sync and a rich community of plugin developers. And it's free.

If you haven't properly checked it out, you owe it to yourself to do so.


VSCode is my choice for a fresh codebase.

But if I'm shoved into an old codebase and I need to grok it fast, Jetbrains tools are a lifesaver.


Last week I learned some cool mouse and keyboard shortcuts in JetBrains, only to then discover they also did the same action in Visual Studio! No more “right click-go to definition” for me! I was presently surprised at how polished it was


Do toy have a link?


https://plugins.jetbrains.com/plugin/9792-key-promoter-x - this plugin shows you existing keyboard shortcuts for every action you make


Shellcheck https://github.com/koalaman/shellcheck : Shell scripts are unavoidable, you have to write one every now and then but shell is a terrible language with massive footguns around every corner. I don't write shell scripts extensively enough to remember all those footguns and even if I did, not sure I'd want to waste brainpower remembering all that archaic trivia.

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.


Python - It (still) makes writing software enjoyable for me.

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.


I'd have to add Pi-hole to this list. Anytime I browse the web on another network, I'm reminded just how much crippling ad garbage it's sparing me.


I use a VPN into my home network at all times for exactly this reason.

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!


If you want to avoid the rigamarole of self hosting, I recommend NextDNS. It's a paid DNS service with tons of customizability (i.e. Ad blocking) and visibility (i.e. logs)


NextDNS is always free for DNS. It also provides 300,000 queries free every month dor working with ad/tracker blocking configurations. Once this limit is exceeded, DNS continues to work but blocking doesn’t until the next month or until its paid for. The paid subscription is about USD 2 a month or USD 20 a year.


Pi-hole has been an absolutely life-saver to our household. It's typically blocking ~50% of traffic.

Using someone else's device and off my network is entirely scary.


I guess I really should just set one up shouldn't I...


I highly recommend it to anyone considering it.

But, pro-tip, use a machine that has an ssd (or other real) drive. Having your network DNS go down because of a bad or corrupted sd card will drive you bonkers.

Sincerely, Bonkers


> use a machine that has an ssd -- a bad or corrupted sd card will drive you bonkers

I've seen this said many times, and it matches my experience as well. But why should an SSD be more reliable than an SD card when the underlying technology (flash memory) is identical? Or is it not identical? Or it is due to the more sophisticated controller of an SSD?


I believe the comment was referring to running Pi-Hole on something other than a RaspberryPi since they are known for SD file system corruption. It has happened to my Pi-Hole and music server running on separate R-Pis. https://hackaday.com/2022/03/09/raspberry-pi-and-the-story-o... Use a throwaway PC that you have kicking around, or run it virtualized...


SD cards are the storage equivalent of writing on a one-ply sheet of toilet paper. Nowhere near identical to SSDs


That's not the only thing that can go wrong. It takes a properly babysat server in general. My end result with Pihole was, my wife occasionally asked why her internet wasn't working (for whatever reason of the day), and eventually I took it out.


Do you have advice how to replace the default Internet provider router? I have Xfinity's now and it terminates the coax, does switching, wifi, and does various firewall functions. I assume you have to buy a XXXX, disable everything on the Xfinity box and turn it into a passthrough switch. What is a good XXXX here?


You don't, really. You can (usually) change the DNS resolver your provided router uses to an internal IP, then statically assign that IP to your pi-hole. It's about 5 minutes in a GUI web panel, give or take the googling to find and navigate that GUI for your specific ISP-provided router.

That said a better router is usually worth it, I like my Netgear Nighthawk because I'm a bit lazy, someone else probably has a better suggestion.


> You don't, really. You can (usually) change the DNS resolver your provided router uses to an internal IP, then statically assign that IP to your pi-hole.

This is totally right, and that is how I have my network configured. I have a firewall behind a dumb cable modem, and I set the DNS server for the network on that device. When machines configure w/ DHCP, they get assigned the router's address for dns resolution, which then delegates to the pi-hole. That's all specific to my hardware though.


You also have to ensure the Xfinity box's DHCP server doesn't lease the Pihole's IP address to a random device. Like set a 1-250 range for DHCP and give the Pi 251.


Firewalla has been a good experience for me so far.


I live in France so obviously I won't help you directly. I guess however that there is a whole community of people in the US who documented "how to replace the box from provider X by the device Y".

Depending on the details, it can go from plugging your fibre directly into a small factor PC, to not being able to do it because even bridging is not available on the box and everything is proprietary.

I for instance replaced the shitty Livebox 3 from my French provider Orange with a PC running Debian. Before that it was a Ubiquity Edge Router 4.

Orange make it difficult to change the device, but not impossible. I would love them to just provide my IP though a standard authenticated DHCP request.


I've never used Comcast's/Xfinity's own hardware. Always bought my own modem and router, which has generally worked out well, outside of when I'm (rarely) having quirky service issues and can't easily prove that it's not my hardware.

If you don't want to do that and keep their gateway, I'd expect you can run pi-hole anyway, and if you're not getting the behavior you want (e.g., the gateway seems to be intercepting dns or something), you can try DNS-over-HTTPS.


I have spectrum, but same in principal here. Having familiarity with hardware I like is why I opt to provide my own modem and router. If anyone is considering going that route, I've had really good luck with ubiquiti networks unifi line. Really great quality for what you pay.


Haha yea, everytime i read about pihole i have these thoughts, but then i think to myself: “ah, one more thing i will have to admin…”.

But anyway, i still have a spare rasbpi lying around somewhere…


That was a thought of mine, but I've literally never had to service or maintain or admin my r-pi. It just hums along in the background. I realize this is anecdotal, but worth mentioning.

The payoff (usable, perhaps even enjoyable, internet) is worth any admin it might create.


To others considering it, it's a bit of a pain in the are to install and nowhere near as effective as client-side as blocking via unlock/AdAway/NewPipe etc


I prefer AdGuard Home for it’s simplicity. Used PiHole before and AdGuard Home is so much simpler for me


Outside of OS & text editor (vim), there is one tool that I use countless times every, single, day:

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.


On a similar note for Windows: Everything Search. Blazing fast, super easy syntax, powerful search tools. Almost don't remember where most things are stored on my hard drive these days, since they're all just a shortcut and a few characters away


Is this the tool you mean, Everything by Voidtools?

https://www.voidtools.com/

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.


That's the one!


my most recent experience with windows search is still that it sends me to bing search or the store for local stuff and not even finding things that are in the menu


fzf is awesome :)

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.


Going to use this, thanks! How do I limit it to N number of commits?


Not sure. But I can use it on the Linux kernel without issue, which is 1,107,114 commits at the time I just tested it. So I have never felt a need to limit it.

EDIT: Probably could use the "--max-count=<number>" option to `git log` which is documented in the man page.


Hmm. I think I'm missing something basic here. git rebase --interactive is for when you want to take commits you've been baking and now want to clean them up, i.e. squashing some, rewording commit messages, etc, right? I'll usually do something like

$ git rebase -i HEAD~5

to clean up the last 5. Can I do this with `git frbi`? Or is the point that I don't need to since all commits are "picked" by default so you just "s" and "r" the ones you want to and leave the rest?


`git frbi` allows you to pick the value that will be passed to `git rebase -i`

I recommend you try it and it should hopefully make sense.


Ah, I had. I just totally brain-farted on the fact that `--interactive <sha1>` takes the SHA of the commit just before the one you want to rewrite. Thanks!


You can use the max-count option for the git log command.

Something like this: git log --graph --decorate --pretty=oneline --abbrev-commit --color=always --max-count=$cnt


I don't know if the blame is fzf's or cygwin's, but when i used to use cygwin I would just install everything in Setup, and that meant that i at a certain point i got fzf with (what?) default config.

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


> WireGuard is a great demonstration of why the total complexity of the implementation ends up affecting the UX of the product.

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.


I'm torn on WireGuard.

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.


That's what Tailscale is for. Sure, it adds another layer that you might not like. But underneath it is all Wireguard and at least most of it (not sure if all of it) is also open-source. In fact, the OP post was written by a Tailscale guy apparently.


Tailscale deals with the things that the IKEv2 part of IKEv2/IPSec handles. It's not a perfect mapping as Tailscale/Wireguard is different that IKEv2/IPSec.

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.


I wish more developers would work on this, making sure their product works straight out of the box. Lots of software requires setting up additional things like Redis, an SQL server, Docker, a proxy server, etc... All those things are in most cases unnecessary. I understand that for high load scenarios they are needed but for small time setups it's just overkill. Make it run with sane defaults and when the time comes to scale up, then those other things can be added.


That's a bit like saying "I wish more musicians would write hits more often." Talent and luck is the bottleneck as much as good taste. Certainly its not developer ignorance about what good software feels like.


For my simple road warrior setup, 8 lines that are clearly understandable were all it took in wireguard.

OpenVPN was always a nightmare


Stuff I'm thankful for, in no particular order. None of these are particularly unique to me, nor are they obscure and hipster, they're just stuff I have found myself really thankful for.

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)"


Breaks past one month, unfortunately.

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)"


dangit! I hadn't tried testing it on a repo with commits that far in the past (obviously)

Thank you for the bug report and PR ;) I'll look at fixing it with your code.


Wow thanks for the Tree Style Tabs tip, that looks really interesting!


Lots of good entries, I'll add a few that haven't been mentioned yet:

- 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

[2] https://julialang.org/

[3] https://midnight-commander.org/

[4] https://www.lazarus-ide.org/

[5] http://facebook.github.io/zstd/


Oh, I use ncdu too. Really wonderful tool, loving it. Also zstd, yeah, I use it on ZFS, and man, it saves me so much space its impressive, even on games lol


I used Baobab which is bundled into Ubuntu to drill down and find space hogs and folders which have 100000s of files. The latter helped me shorten moving all my files between PCs.


Wow, I never heard about Baobab. I've just installed it, and it looks awesome! To manage my servers I think I'll stick with ncdu, but for my laptop Baobab is going to be great. Thanks for the tip!


Strangely enough: Windows.

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 use Linux as my main OS for some years now, but use Mac and Windows, mostly because I need to test my software on them, but I have to say:

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.


> 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.

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.


I feel like linux only works for 2 categories of people:

1. The extreme laymen that do essentially nothing outside of the web browser

2. The tech savant that has the time, energy, and motivation to spend the countless hours required to get Linux to run anything sufficiently complex.

Those in-between typically have the desire to do more than they are able to easily do OOTB with Linux, but also lack the technical ability to actually do it.


I would have agreed with that 15 and maybe 10 years ago. Nowadays, do you really think this is still true? At the university I work at some of the administrative staff with little to no technical knowledge are using Ubuntu and doing essentially the same thing they would on Windows or Mac, and that really not only web browsing, nor LibreOffice usage. For example they have to use custom horrible tools developed years ago that look just as familiarly awefull on Linux as they do on Windows or Mac (I'm talking of Apogée if any French academics pass by).


>I would have agreed with that 15 and maybe 10 years ago. Nowadays, do you really think this is still true?

Last month we had six linux desktops at work fail to boot after an upgrade using the disto's built-in update manager because of video card driver issues.

These were all workstations manned by data scientists with brains the size of planets who foolishly thought that keeping their systems up-to-date for security reasons was a good idea.

"Oh but that's Nvidia's faul.."

Doesn't matter. Has never mattered. Will never matter.

Upwards of 80% of all blue-screens that trashed Me's reputation were crappy S3 and ATI driver problems.

I'm used to it because (to ward off distro bigots) at home I use a Linux distro so cool and advanced that you've never heard of it so I fixed the issues even though that's about six levels below my pay grade.

That being said I only use Linux at home for work. And I hardly ever touch it once I get it working in case an update screws up OFED, or CUDA, or some other unresolvable package dependency hell conflict nightmare.

"Oh the most current release changed the path to 'foo' even though that had been the standard for 40 years because some maintainer got a wild hair up their ass and wanted things to be 'elegant' and we didn't even bother to create a symlink" or "you can't have that version of a package because sixteen layers down is a dependency we don't want to have to deal with upgrading just do it yourself lol" every couple of months? Yuck.

For everything else: macOS, "Because I ain't got time for that shit."


> Last month we had six linux desktops at work fail to boot after an upgrade using the disto's built-in update manager because of video card driver issues

We had a similar issue with updated official drivers at a previous gig at a corporate- but leading to BSoDs on Windows using DELL provided drivers (does that count as a Windows distro?). It was re-solved by downgrading the display driver and re-imaging the whole fleet. At a certain scale: you are bound to run into driver issues - unless you're on Mac with its homogenous hardware, and don't upgrade too early.


Well you won't have an unsupported videocard on a mac as you can't plug one in. One day you'll find your mac will no longer upgrade though.


>Well you won't have an unsupported videocard on a mac as you can't plug one in.

“That’s… why I’m here.” (.gif)


I think the point is that you can buy your hardware from vendors that officially support Linux and get the same benefits as Apple's all included material and system. This is especially true if you're willing to put as much money as you would to buy your computer from Apple.


You're precisely correct, IMHO. I use Windows on my desktop primarily because I don't have the patience to deal with (2).


I think you are right.

I tried linux recently. Was surprisingly nice in some ways...but constant bugs.

First it was my bluetooth being strange to pair. Then mouse movement/scrolling just felt wierd. Gnome file picker being shit. Then app scaling issues everywhere...

Just one annoyance after another. Not something I have the energy to deal with.


Have you tried Garuda Linux? Preferably with one of the sane DE like mate/xfce, not the default "dragonized" thing which is a crazy mess.


> 2. The tech savant

yes but you're saying things in a slightly negative way and not mentioning, for the tech savant it's not just good, but better.


My own experience with Linux is that it breaks from the most mundane of things, such that I wouldn't even dare suggest Linux to the average person because the tech support baggage that will ensue would be far more expensive to me than if they just used Windows.


Have to say that Ubuntu LTS with the Firefox web browser drastically reduced the number of support calls I'd get from my parents, who used Windows 7 before. Of course, as soon as you start messing with packages or doing more advanced things, then more can go wrong. But it's really good for the web.


I have this same experience. I put ubuntu LTS on a family member's computer back in 2011, made sure the browser icons were big and front/center, and the support nags stopped. They said they loved whatever I did. I think there is some security-by-obscurity in there too, where all the insane spam/fraud/virus stuff couldn't even work on ubuntu if she ended up clicking on one. Nowadays I take it with a grain of salt: The support nags might have also stopped because other family got scared I would wipe their computer and put this new thing on there they were scared of having to learn.


And you know what? It’ll never update by itself unless you tell it to. It’s a very stable OS as long as you don’t mess with it.


Switch to Debian. They don't casually break things.


A few years ago I installed CentOS (because it was supposed to be one of the most stable distros at the time) and my mom was happy using LibreOffice to make her documents. I taught her how to update the system and everything was well until one day she told me she could not update the system because the update program was gone. I thought the shortcut was misplaced or something, but actually CentOS had a bug where the graphical update utility uninstalled itself with one of the updates. I wonder how computer illiterate people are supposed to fix something like this without assistance :)


For multitasking, this tool has helped me a lot: https://alt-tab-macos.netlify.app/. Though I still can't figure out why some apps don't work in split view, the window manager just says "Not available in this split view". Split view has always worked in Windows no matter what the app.


Switching windows is just one thing regarding multitasking though. Are there others regarding multitasking?

One thing I have found for myself is that the keyboard shortcuts on Mac tend to be more uniform among all the different programs. I've also found Command much easier to use than Ctrl on Windows. I say that as a Windows user, who went to Mac as primary device, and now splitting Windows/Mac roughly 50/50.

The shortcut schemes on Mac makes me a far better multitasker than on Windows (with that one caveat being switching between multiple windows of the same app, which I agree, is counter-productive).


Interesting. Can you elaborate on why CMD is more productive than Ctrl?

On windows, usually it's easy to guess what modifier would be assigned to a task. But on Mac, I only need to use memory. In vscode (well that's not an Apple program, but is my main application), Opening documents is CMD+P, but opening terminal is ctrk+backtick. Now, options, is it CMD or Ctrl + comma? You have to know specifically.


Could you elaborate on the difference between Windows and MacOS in the context of multitasking?


MacOS uses a considerably different window metaphor than Windows does. This isn't bad, but I think it's fair to call it inherently more complicated than the stacking-windows model that Windows uses or the dead-simple "one app fills your screen" model of iOS/iPadOS. At least, that's the immediate problem I've seen family members point out with MacOS.


It may depend on what you're used to. Whenever I use Windows 10 I feel like I'm fighting a window manager which is constantly trying to eat up the whole screen, even for simple things like settings. I don't get that feeling on macOS or any of the Linux desktop environments that I use.


I think that's part of the appeal :)

Windows has always had inelegant desktop metaphors, but it's straightforwardness makes it very easy to understand. It's slow, but it's also easier to understand than typing random things into Spotlight and hoping you get what you want. I don't like Windows by any stretch of the imagination, but it really does "just work" moreso than MacOS or Linux these days.


I do get that the fact you can't Cmd-Tab between windows of an app as well as apps is annoying.


There's always Cmd-` (backtick) to cycle through an app's windows. Easy with the key being just above the tab key.


Yes, but on Windows the same shortcut (Alt-Tab I think?) does both and I'm pretty convinced that is better - especially with full screen apps (windows) on the Mac.


One thing that has stood out to me is that when I have two Edge windows open, for example and I switch to the last used window from Safari, both windows overlap instead of just the one window I was working with.


If you want to just have the one window come forward use Expose to do it, rather than Cmd-Tab or the Dock.


Using mouse is both slower, and needs more mental process to do the same task. Especially if you need to switch repeatedly while doing something, you come up with a short-term muscle memory: use vscode, alt-tab to the other vscode, alt-tab-tab to chrome. Now you know the first alt-tab takes you to the most recent vscode, but two alt-tabs take you to the first one. I develop a vscode extension and do this routinely. On mac I need to either use the mouse, or switch to vscode, then use CMD+backtick to switch to the other. Both are much slower and a disruption to the flow state.

Apple for some reason avoids giving people too many options. Just one option: "threat windows of the same application independently" with a default of no would make everyone happy.


I should say a lot of that is because of the fundamental assumption that multiple instances of an app are related to each other in multitasking.

If I have vscode in my external monitor, plus two Firefox instances one in internal and one in the external, than in many ways of switching to the browser, both windows come up. That covers my IDE, and I need an extra click/keystroke to bring it back. One example of many.

I've observed many mac users. Most of them are much slower than a windows/Linux user with same level of geekiness. In windows/KDE linux, the window switching is conceptually simple and everyone can learn it fast.


Use Expose or Cmd-` rather than Cmd-Tab or the Dock if you want the Windows behavior.


If you are on chrome, and you have two vscode windows, you need to use CMD-tab to switch to VsCode, then see which one you got, if it's not the one you wanted, use CMD+backtick to switch to the other.

Using the mouse is much much slower than the keyboard, especially if on both windows you have been using the keyboard.


I'm not sure what kind of users you observed, but I have switched fully to Mac (as a developer from linux+windows) after seeing how quick devs can be on a Macbook. Dev conferences are full of macs and most of my dev friends made a transition to Mac and I have not heard one complaining about any workflow speed. Actually the opposite and so is my experience.


> MacOS ... absolutely sucks at multitasking

Can you expand on this please?

I'm a heavy Mac/Linux user and I've never found a multitasking problem.


> 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).

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”.


Please check the messages in response to the comment from andrei_says_


> Windows is the only practical desktop OS for most people.

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.


Software development is a much better experience on Linux compared to Windows (unless you stay within Visual Studio).

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.


I've done lots of dev on both linux and Windows. Neither is "better" IMHO. I started on Linux, but today my main work and personal systems are both Win10. I also have a persoanl Linux laptop I use sometimes (currently Pop_OS, because I felt like trying that).

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.

[1] https://github.com/microsoft/terminal

[2] https://scoop.sh/

[3] https://ohmyposh.dev/

[4] https://scoop.sh/#/apps?q=busybox&s=0&d=1&o=true


A note on the unix tools, if you have git (with git bash I guess) installed, you can add C:\Program Files\Git\usr\bin to your environment Path and you'll have access to ls, grep, tail, etc... from powershell.


Just don't try running any bash scripts written for running on actual linux systems though! If you're doing more than a smattering of CLI stuff, WSL is absolutely worth installing (and enables use of docker etc.)


Are you able to compare scoop to Chocolatey? I've stuck with choco for years now, because it has so many packages that I haven't wanted to try out scoop or WinGet.

Regarding PowerShell, I've found that it has become incredibly customizable these days. For example, I just enabled Emacs keybindings for it a couple days ago. So it feels almost like a bash terminal.


Use both!

I think one of the main differences is that scoop will install for the local user. Which means you don't have to install stuff from an admin console (I think you can do that with choco but its not the default).

I also just checked to see what apps I've used in scoop vs choco and the only one that choco doesn't have (that scoop does) is wsl-ssh-agent.

scoop had all the apps I install through choco.

I'm sure theres more differences that go a little deeper, but as a simple end user, those are the only things I've noticed


Interesting. I'll have to check it out comparison's sake.


Everything is per-user (non-admin).

The entire operation of it is simple but powerful: everything is based on a manifest file [1]. The official manifests are in git repos, but you can also install from a local file or a gist.

Chocolatey's usage of nuget packages while also basically just running the app's normal installer is weird and results in all kinds of situation where versions don't match, chocolately upgrades don't do the expected thing, etc. All these problems just don't happen with scoop (at least not in my years of experience with it).

Scoop apps install to ~/scoop/apps/<appname>/<version>/ and then get a symlink ~/scoop/apps/<appname>/current/, while also getting a ~/scoop/persist/<appname>/. It's just very elegant.

It adds "shims" for any executables in ~/scoop/shims/, and because that's the only directory added to your path (when scoop is first installed), newly added apps "just work" in all your open terminals/apps/etc.

It also seems faster. "scoop install <appname>" and a few seconds later you can use it. Chocolatey usually does the UAC prompt stuff and generally just feels clunky by comparison.

[1] https://scoop-docs.vercel.app/docs/concepts/App-Manifests.ht...


Totally agree that development outside of Windows is better. However if a majority of your users are using Windows, shouldn't you, the developer, also use Windows?

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.


if you're building desktop software for windows then yeah, you should use windows. but these days, most development isn't for windows.


As a lifelong windows dev, what exactly makes linux worth moving to? I understand that coming from a linux world, doing what you like doing in linux isn't always possible on windows. But I've never really found a use for any of that console magic linux devs seem to love. Pipe this into that and through seven pieces of software that sound like glibgcd, add 8 arcane flags and in the end you have some kind of textfile that would've just as easily been made in some handmade program? What exactly is the selling point for devs?


I'm not sure what a handmade program on windows looks like, so I could be wrong here, but writing shell scripts to do work takes a matter of minutes and creates composable, reliable stuff that vastly reduces the time to do other work. This means that as time goes on, more of my workflow becomes scripted and I very, very rarely work on the same problem twice.

Then there's the filesystem. It just works. Permissions are easy to grok and (most) error messages are clear about what's wrong. Everything being a file also means I use the same tools to: - investigate bugs in source code - check what processes are using what ports, files, sockets, etc - find files - find things in files

there's very little that can't be done easily with [grep, cat, ls, mv, cd, echo, curl].

Also, manpages are incredible. All my important documentation, right there where I'm doing my work.

It's really less about what's possible on windows / Linux, and more about how Linux lets me do things my way, which means I can consistently improve my methods.

Also, all the good Linux stuff is free. Both kinds, so not only can I use most of it without worrying about the cost, I can fix it when it goes wrong or modify it to be more like what I want.

I could go on and bore you more, but those are the key points.


I'd also add the "Googlability" factor to this. If you want to check how to do anything in bash, you will have your answer within seconds. Not so with PowerShell. It's a much newer system that doesn't have decades of history.


> writing shell scripts to do work takes a matter of minutes

This is the core of it for me. Half the time I don’t even need to write a shell scrip, I just fling it straight onto the command line if I’m doing a quick one off task.


Everybody has their pain points with every operating system.

For me and windows it was when it updated a hibernating unplugged laptop overnight causing me to loose several hours of genealogy work. I had been using a new to me application that hadn't been doing any sort of background saving while I put in information. My had some niblings come over so I shut my unplugged laptop thinking id get back at it tomorrow. The next day when I opened the laptop I was greeted with the dreaded "Hi" screen, and my previous days work was gone.

Windows also likes running the fans on my laptop way more than it should. Where linux keeps them off for most my typical work.

Neither Windows or Mac have a Tiling Window Manager, for me not having to manage windows is a dream.

Running docker as a first class application is nice.

But linux has its issues too. Occasionally an update really borks my system and yes it is a pain to find what went wrong.

I also love vim and emacs. They work better on linux.


>For me and windows it was when it updated a hibernating unplugged laptop overnight causing me to loose several hours of genealogy work. I had been using a new to me application that hadn't been doing any sort of background saving while I put in information. My had some niblings come over so I shut my unplugged laptop thinking id get back at it tomorrow. The next day when I opened the laptop I was greeted with the dreaded "Hi" screen, and my previous days work was gone.

To be fair and with no personal offense intended, this sounds more like a case of PEBKAC rather than specifically a Windows deficiency.

To be clear, I agree Windows's forced, silent autoupdates and reboots are crimes against humanity, but "losing work I did not save" is hardly something that only applies to Windows and is a lesson we all learn the hard way eventually.

Always save, and if you think you saved, save again. Probably hit CTRL+S several times too for good measure. And keep backups; multiple, good, working backups.


If it happens to me, an active computer user for 25 years, think of how often this has happened to others. How much work has frustratingly been lost because Windows knows better about when to update.

Worse is technologically speaking this shouldn't even happen. Windows should be able to take a running application, save its state, do its update, reboot, then restore the application, without loosing a single byte of application state. Microsoft's lack of compassion for end users in this regard comes directly from it not effecting their bottom line.


The vast majority of computer users, Windows users and otherwise, have experienced some form or another of data loss. I'm just being fair to Windows (and you!).

To go back to your example, you lost your work after Windows decided to silently update and reboot overnight. Now the million dollar question: Why didn't you save your work before you left?

A blackout or a drive crash or any number of failure cases could have happened instead and you would have still lost that unsaved data, too.

You're going to eventually lose any data you do not explicitly save. To put it another way, any data you don't save should be data you don't mind losing.

Windows 10/11's autoupdates are fucking nonsense, but data loss of the kind you're speaking of is by far a case of PEBKAC in my opinion. If you lose data overnight, that's because you didn't take basic steps to save and protect your data.


> To go back to your example, you lost your work after Windows decided to silently update and reboot overnight. Now the million dollar question: Why didn't you save your work before you left?

Because humans are not perfectly consistent robots.

Any system design or paradigm that expects us to be is broken and user-hostile.

For myself, I have Emacs configured to autosave whenever I change focus or documents. I also commit and push whenever I make a meaningful step of progress.

For normals, built-in macOS apps like TextEdit have autosave these years. Pair that with Time Machine and an SMB NAS (see https://support.apple.com/en-us/HT202784), and data loss is pretty darned rare in practice.

If the NAS has a cloud backup system, you'd really have to try to lose data.


> A blackout or a drive crash or any number of failure cases could have happened instead and you would have still lost that unsaved data, too.

GP said he was using a laptop that was unplugged. A blackout wouldn't have made a difference. And in the case of a drive crash, saving (locally) wouldn't have helped.

I think automatic updates really deserve a fair share of the blame here.


> To be fair and with no personal offense intended, this sounds more like a case of PEBKAC rather than specifically a Windows deficiency.

It's specifically a deficiency of the OS when it decides that the work you purchased the computer for is not as important as the work that Microsoft wants the computer to do.

No vendor, OS or otherwise, should decide that using the consumers computer for their (vendor's) own purposes is more important than the work that the computer was purchased for.

> To be clear, I agree Windows's forced, silent autoupdates and reboots are crimes against humanity, but "losing work I did not save" is hardly something that only applies to Windows and is a lesson we all learn the hard way eventually.

"Losing work I did not save because I forgot" is different from "the computer decided to discard all my work while I was working"

If you're in the middle of driving to work, and your car decides to pull over because Ford wants to do something is very different to driving to work and running out of fuel.

If you forget/refuse to fill fuel, that's on you when you get stuck. If you did everything right and still the car pulls over because the manufacturer wants to do something, that's not on you.


> Pipe this into that and through seven pieces of software that sound like glibgcd, add 8 arcane flags and in the end you have some kind of textfile that would've just as easily been made in some handmade program? What exactly is the selling point for devs?

No, that's exactly the selling point.

Yes, you could write some hand made program. And piping software together IS a kind of hand made program. It's just going to be far faster to write that pipeline, than to write a custom program, deploy, and run it.

And the pipeline might be much much faster. A classic example:

https://adamdrake.com/command-line-tools-can-be-235x-faster-...


>Yes, you could write some hand made program. And piping software together IS a kind of hand made program. It's just going to be far faster to write that pipeline, than to write a custom program, deploy, and run it.

I suppose the speed of implementation depends entirely on your available experience. If I were to try to reproduce the data processing pipeline in your link, it would take me hours to get to this line "cat *.pgn | grep "Result" | sort | uniq -c", and would probably never be able to get to any of the further steps.

Meanwhile, with my experience, I would've been able to write a 5 minute C# program that does exactly the same data processing. I don't know if it'd go down all the way to 12 seconds of execution time without serious effort, but I'm pretty sure it would handily beat the version I could write using the commandline.

If this task is a single time kind of thing, the C# program more than suffices. If it's a many times kind of thing, I'd strongly prefer having it in C# code, so I can more easily adjust it and make it part of a larger automated workflow which will mostly consist of other C# code.


Well sure. If you only know one tool and don’t invest in learning anything else, of course you’ll be faster implementing solutions in it than anything else.


I agree with you on that Windows -> Linux doesn't have much appeal. I tried it 2-3 times and gave up because Linux was not user friendly enough.

However, I will say that Windows -> Mac is pretty awesome. IMO, the main benefits were the commmand line experience. Installing Homebrew on Mac was so much nicer than pointing and clicking everywhere in Windows to do things.

I see that Windows is getting better with their Terminal app, but the MacOS functionalities beat it.

If you value doing things from the keyboard rather than a mouse, then you'll see value in switching to MacOs. Otherwise, the appeal is rather muted.


Chocolatey is a pretty good Windows package manager for both developing software and simply consuming full apps. The packages are written to handle all the manual GUI Windows-installer quirks for you (automating it) and makes it work just like Homebrew.


docker and clion is an amazing experience. One can change their toolchain very easily without worrying about interference from all the crap on my dev machine I have installed over time, or that one needs a different config all togethor. It's similar to clion with windows/mac but the experience deteriorates, but the VM for WSL is much better on windows(no need to allocate a huge chunk of ram) than macos for docker


I kind of agree. Linux is still bit of a shit show.. my audio stack got completely fubar'd on my last linux box so back to Windows I went.

WSL2 + Docker gets you really close to the development experience of Linux while maintaining your sanity.


I wouldn't say the dev experience on Windows is "unpolished", but I agree it's better if you have access to linux-style command line tools (whether via WSL or even just git-bash). In principle PowerShell should be just as powerful but I don't know many devs who can throw together PS scripts the way most of us seem fine with bash etc.


You can have the best of both worlds with `Visual Studio Code Remote - SSH` and a lot of mintty -> ssh user@host (to a VM, if needed).


True, however user experience in windows is still superior.


Comparing Gnome to Windows 10/11? No way.


I would pick the unholy abomination that is ExplorerMetroUWP in Windows 10/11 over GNOME any day of the week. GNOME is nigh unusable other than as an expensive piece of wall decor.


>GNOME is nigh unusable other than as an expensive piece of wall decor.

Examples you can expand on?


Not the user you're replying to, but some workflows just don't work well in Gnome (yet).

But the combination of key shortcuts and mouse gestures makes it feel really nice to use in practice. Workspaces work like I'd expect, as do Alt+Tab and Alt+`. The built-in apps and settings have a level of consistency the Windows team could only dream of right now. Notifications in Gnome are fantastic. I could go on.


Lack of customization for one, either I do things the GNOME way or the highway. Screw that, if I wanted that I would be using MacOS and/or iOS instead since Apple does that far better.

Form factor dissonance for another. GNOME clearly targets the mobile form factor, and it fails me for all the reasons Metro in Windows 8 failed me because guess what: I'm using a desktop/laptop, not a tablet/phone.


Yeah if you value customizability at all, you should probably be using kde. I value simplicity and consistency.

I had issues with ubuntu's unity back in the day and I switched over to i3wm, but I didn't find I used tiling enough to make it worth losing the usability of a desktop environment


> GNOME clearly targets the mobile form factor

I think it's more fair to say all form factors are treated equally, to the possible detriment of focusing exclusively on desktop. I think Gnome does well and is really versatile no matter which form factor you use, and I didn't have much issue moving from Gnome 2 to 3, or Windows to Gnome, or OSX (at the time) to Gnome (I've gone back and forth a lot over the years).

For me, workspaces (which Windows lacked natively until very recently) and Alt+Tab/` are how I get around.

The customizability argument is a solid reason to dislike Gnome, but not for all time. Things do get better each release. Well, except for extensions, which always break.


About configurability, I installed more than a dozen shell extensions and my Gnome desktop looks like and behaves like what a desktop should be for me, quite distant from the ideas of Gnome's developers.


Metacity works for me, nice standard look


Yes. The UX is much better. Linux customization capabilites are phenomenal I give you that, but it takes a very big amount of time if you want something specific for you, and when an update hits and things just break :-(


Gnome actually has a different philosophy. There wasn't much customization offered at first, as the focus was on nailing a single set of UX and aesthetics. And I think the Gnome team succeeded, but the lack of customization is/was divisive.


Use XFCE, put your panels however you want them, done. Haven't ever had any update break my arrangement.


I use Linux for my homeserver, and used to have it on my HTPC too. On the HTPC I only used openbox, so in a sense it's even less complicated than xfce. The trouble is with the software for the htpc stuff, like remote gaming, audio, videoplaying retrogames software and so on. The part that ruined my experience is the amount of configuration needed to get there, and updates that constantly broke either my video player, the audio or the remote gaming. Either a driver update with a breaking change, or the audio config that needed repair and stuff like this. Everytime I'd spend obscene amount of time to try to find what's the culprit, and it usually came down to updates breaking one thing or another. On windows it's seemless and in some ways with better performance and ease of installation. Up and running in 15 minutes and with total control to boot...


Ehh that's a big claim. As mainly a windows user (adobe software) both gui and env wise I way prefer Ubuntu over windows. It's so much clearer


Try Linux Mint. It uses Cinnamon and Cinnamon is very similar to Windows and without all of the baggage


I'm a linux user. I use nixOS and Arch. I've also tried mint many times.

I'm trying to be as unbiased as possible. As good as linux is and as much improvements that have been made over the past decade or so, Windows and OSX still have the superior GUI. Just being honest about it.


Windows GUI still has the same bugs that it had in Windows XP.

The whole system control panel has been dumbed down so much, that it actively tries to prevent the user from finding certain settings. The system still suffers from simply doing everything slower than GNU/Linux. After logging in, it acts as if all is loaded and ready, but when one wants to do something, things still get loaded and icons added "next to the clock". Right click in file browser still feels slugish. Windows stops me from doing the simplest things by asking me silly questions, of whether I want to do, what I just told the system to do.

Very specific to my systems: The closed source graphics card driver crashes often, while the open source drivers have not a single time crashed noticably on GNU/Linux. On Windows this is noticable, because the whole screen freezes, until the driver has restarted. Never happened on any of my GNU/Linux systems.

It is simply not funny or justifyable any more.


Ubuntu gui > windows by a large margin


As long as you don’t use debuggers.


This! I like Linux a lot, but whenever I try to build an ecosystem in it for more than few workflows I end up in deep time consuming tasks to figure out how to make things cohabit without having my services fight each other.

The same open-source apps for some of the same workflows work flawlessly in few minutes without all the struggles.


I can't disagree, even if I would prefer something else. Easily the most compelling argument I've heard for Windows is Tom Scott's: https://www.youtube.com/watch?v=lIFE7h3m40U.


It seems I never got around to watching this particular video, thanks for linking it!

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.


I haven't watched till the end of it, but he's on and on about bodging rather than computer science, and all I've gotta say is "sounds like he wished he knew how to use linux". Worse is better is not computer science.


I'm not sure why we're linking to, let alone deferring to, an entertainer like Tom Scott on HN.

(Tom Scott's fine, but I would never look to him for technical advice or direction.)


Windows is a very good operating system. Windows haters don't hate for technical reasons, but for religious or political reasons.

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.


My previous laptop (until yesterday!) was a Thinkpad T460s. Not exactly an exotic model. It came with Windows, which I tried to use (with WSL) for more than two years before giving up.

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.


Of course, there are technical reasons not to use Windows. But it's not the norm.

> Your comment assumes that political reasons are somehow less important than technical ones. This is not true.

If politics is important to you, good for you, but I don't discuss politics.


I think this is sometimes true but that for developers there are very good reasons to not prefer Windows. Mostly that local software management sucks on it unless you go with WSL, which is really good but does still have some limitations (speed, GPU compatibility, etc. - in general having to manage effectively two parallel filesystems gets in the way), and is at the end of the day essentially still Linux.

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.


I'm a developer. I use Windows to program in Java, Delphi with SQLServer or SQLite. Git works great on Windows.

I use WSL for Ruby, Python, Go with Postgres/Mysql. I don't dual boot Linux because 100% of the time linux automatically destroys the installation. The last time this happened was because I tried a Bluetooth joystick in Kubuntu. Kubuntu freezes and won't boot again. Because this last experience, I will never use Linux again in the metal again.

To develop Games, Windows.

I've never used SqlServer on Linux, and when I tried to use Postgres on Windows, Postgres start using using 100% of processor, it was a total mess.

Resume: My development experience is compartemized, If is possible to use Windows, Ok, if not, I use Linux(WSL or emulated).

I have already programmed on Mac OS, using XCode. XCode is an aberration. One of worst software development experience in my life.

Ruby or Python development experience(in terminal with vim and a package manager like HomeBrew) is good on Mac OS, after installing a good terminal.


> Windows is a very good operating system.

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.


> When it doesn't gets in the way, yes

How?

My problem with Windows and basically all modern UIs on all operating systems is that we are in the dark age of UI. Everything is gamified, unnecessarily complex, slow...Windows is especially bad, with a lot of old and new UI mixed in with some kind of crazy indecision, incompetence, etc.


I'll give you a technical reason: the Windows API isn't POSIX. Furthermore, it's a monstrosity compared to POSIX.

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.


>I'll give you a technical reason: the Windows API isn't POSIX

Is not POSIX is a technical reason? I have more problems between Linux distributions than between Linux/Windows when it comes to programming.

> If you've never felt this pain, be glad you missed the multi-decade low-level cross-platform programming nightmare.

I started my professional career in 1999. I understand and worked at the time of cross-platform hell.


All Microsoft products are free of charge if you know where to look for them.

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.


>All Microsoft products are free of charge if you know where to look for them.

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 forget where I read it but a not insignificant percentage of pirated software contains malware

Probably one of the strong antipiracy groups' propaganda. They conspired with AV vendors to make cracks detected as malware (with a vague name/description) despite there being no actual "malice" against the user.

The truth is, they might be the ones trying to seed malware in warez releases to further their narrative.

...and of course Windows is basically ad-supported at this point.


You're not getting my point. At $200 or even $2000 it's a steal compared to the 'expected value' (really, loss) of having my computer compromised. Yes, I'm more paranoid than most, but I have more to lose than most, and unlike others, I can't claim I don't understand the risks.


>I forget where I read it but a not insignificant percentage of pirated software contains malware,

That just means you don't know where to look.

>having my bank or brokerage account compromised would cost exponential orders of magnitude more than any software licence.

I agree. For anything that's important, especially if it's mission-critical or commercial in nature, go the legit way. Handing Microsoft some cash means you're buying legal assurance that something will work safely (FSVO safely) in a way where the chain of liability hopefully doesn't stop at you.


You're missing his point.

Downloading any illegal software can compromise your email and bank accounts and basically ruin your life. It only takes one.


Illegal software in and of themselves are not dangerous.

What is dangerous is software sourced from dubious origins, regardless legality.

What is life-ruining is using illegal software in situations where you absolutely do not want to be on the hook for liability.


Are you still wearing a mask and scared of COVID I assume?

The best security measure one can have is being an absolute nobody.

if anything pirated software is an indicator of low wealth and thus should make you more secure not less


What does mask and COVID have to do with the current discussion? Leave your politics out of this.


Unwarrented fear of an extremely low-probability bad outcome.


COVID killed more than 6 million people.

That number would have been much higher if there were more people like you, going against medicine and scientific recommendations.

We won this battle despite people like you, so please, leave your bad science, conspiracy theories out of this technical forum.


> COVID killed more than 6 million people.

COVID trimmed weeks or months off the lives of people who were already on their way to the end of their lives in a matter of 12/48 months.


The stuff in other people's houses is free if you're good at picking locks.


The sysinternals tools make it for me. procexp and procmon are insanely powerful and you can solve really obscure issues really quickly.

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.


>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.

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".


Windows is the only desktop OS that enables me to use my computer to do the shit I need or want to do.

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?


> 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.

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.


Keep in mind I'm not throwing a blind eye to Windows 10/11's many problems, they are very real and I will absolutely criticize and even hate on Windows for them.

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.


If ‘shit you need to do’ includes office use (Excel has no competition), graphics (Adobe, others), or quite a few other equally important things, Linux will not be a good fit.

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.


Install SimpleWall, let it disable windows firewall, block all the things that reach to external IP addresses that you know you haven't installed yourself.


For me the list is:

  - 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).


> 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.)


Fork - a fast and friendly git client https://fork.dev/

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


Nice list. Love fork. Been a BC user for like 15 years now. And uBlock just works.


I've also been using Beyond Compare for over a decade, and the only thing I'm missing that they stubbornly refuse to add is line wrap support. Comparing long lines is such a pain.


Emacs. TeX/LaTeX. Classic Unix. i3. A bunch of Scheme implementations. Tcl/Tk.


I was going to mention nano

when you just wanna edit things quick and only need to remember a few commands. just wish it came standard with most distros.


nano is such a lifesaver. It's pure Unix – does one job really well, doesn't try to be half an IDE like vi and friends, just a friendly little text editor that pretty much everyone can use within minutes. Nothing better for quick edits on remote systems beside never having to do quick edits on remote systems.


I used joe, pico, nano since 1994 and someday I will finally change the key bindings so that I have this in mline with my vscode.

This is by far the biggest drawback of switching editors and being lazy at the same time.


Ah I forgot about pico! I used to have way to crash it every time, something to do with the word wrapping. But it stopped being developed so we switched to nano.


emacs, magit, i3, arch, lisps and descendants, firefox, mpv

magit especially


Emacs may not be the best Lisp interpreter around, but I still love it for how open it is and for the great community around it.


i3 is so simple and intuitive!


Software I’m Thankful For: the linux kernel and the gnu userland that's the base for the linux distributions I'm using for the last 20 years. I can't image a life without them.


Software I'm thankful for (2022): Everything open source, even that which I do not use myself, because it's still there to benefit others, and it's there for me to learn from, adapt, etc, etc. Even bad open source software can be a good lesson in how not do to a thing, or may have some good bits worth learning from or adapting. So yeah, I'm thankful for open source software … All of it. My use of computers has been richer for it.


ffmpeg is one software that comes to mind. At first it sounds and looks complicated, but all the internet video is ran by it, and now even for small stuff I use it with admiration


Can you elaborate on "all the internet video is ran by it"?


For instance I found this old article "Google’s YouTube Uses FFmpeg" https://news.ycombinator.com/item?id=2831292

This may have changed for Youtube but I believe that a large portion of video services still uses ffmpeg under the hood.


Many online services use it for encoding, decoding, transcoding, cutting, merging and muxing video and audio formats. It implements a lot of codecs. It is often also used to generate video thumbnails. Its filters [1] are also very powerful to create complex chains of functionality.

[1] https://ffmpeg.org/ffmpeg-filters.html


  cygwin
  mintty
  stream deck
  firefox / thunderbird
  eclipse
  linux
  socat / netcat
  postgres / mysql
  ms windows (ducks)
  emacs
  ms excel


Fucking finally somebody that says cygwin. Everybody nowadays is "wsl2 this, wsl2 that" but they forget that the OG, which still blows wsl2, it's CygWin. I use it for 2 decades, one of the 2 programs I install whenever I need to use somebody else (usually client) PC; the other one is uBlock Origin.


Why? Because WSL = running Linux on top for Windows, so expect a performance hit?

Many 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


backwhen WSl wasn't a virtual machine, it's made sense and had some advantage over CygWin


I have to add Django and Postgres to this. Both rock solid, stable, but still staying up to date and improving without being trend-driven.


Mostly agree but I don't see goroutines (or go itself) as anything truly great for concurrent (many blocking operations waiting for external events) or parallel (using multiple cores to solve a problem faster than a single core could). It seems like just about everything with goroutines existed in some form or fashion in other widely used systems, but I'm always curious if I'm missing some magic.

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.


The responses so far say so much about the HN audience. As a mobile app designer, developer, I'll throw in some higher level tools that I love: - Figma - Slack - VS Code - DataGrip (most JetBrains tools really) - Photoshop - 1Password - Lightroom (Classic, of course) - UBlock Origin - Gusto (makes my life easier as a startup founder)


I'm gonna get in on the fun and try to find ones that haven't been said.

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.


I am appreciative of the following software.

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


I share/approve many of them! I think that is incredible how a computer/software can change your life. If you’re born for the ‘80/‘90 and you remember how it was the life “without software”.


Visidata - Helpful to view excel/delimited text file to glance the data on TUI

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.


Haven't heard of Visidata before. Just downloaded and it blew my mind. A less useful tool particularly for CSV is the CSV Rainbow plugin on VSCode, which was my previous favorite.


VS Code

It took me awhile to switch over. But really, I can’t go back to anything else. The customization and UX is unbeatable.


Same here. I use to use Jetbrain editors that are nice but slow and extremely specific to languages.

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).


Turbo Pascal, Turbo C++, Borland C++ - not for anything I do today, but for being a big part of my gateway into programming back in the early 90's.

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 am a little sad that nobody has said .NET or C# so I’m going with those.

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.


The Linux kernel, Firefox, Joplin, Signal, NewPipe and F-Droid, all of which I use every day and couldn't live without.


Honestly, the big one for me, this year, is tailscale.

No matter where I am, what device I'm using, all my stuff is always accessible and with me.

I love it.


So good that it took this article to remind me that it’s there for me everyday, doing it’s thing perfectly, staying out of my way.


Agreed. It replaces horrible multi-hop ssh hackery. Highly recommended.


I donate to a few projects when possible, as my "thanks" can't directly help those that improve my computing experience. ;)

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.

https://www.youtube.com/watch?v=8EI7p2p1QJI


Two small contenders nobody mentions here are Winmerge and Notepad++, my daily drivers that are quietly just working.


I would add Bitwarden, and its self-hosted rust version - Vaultwarden.

Also Caddy - a web engine which is actually useable (and great)


Here is my quick list.

- 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.


Helix really is amazing, even with it's current level of maturity (or should I say immaturity) I just can't stop using it, I can't wait to see how well it works in a year or two.


Kitty and KDE are two real gems!


Karabiner is incredible for making keyboard shortcut to do some pretty complicated task. Obsidian, what a note-taking app! Makes Evernote looks like a dinasour. Vim (and NeoVim), you learn it once and use it for everything.


Instead of Obsidian which requires payment to sync notes.

I am using Joplin: https://joplinapp.org

Using Dropbox as sync with E2EE (but you can use other ways to sync)


git - can't imagine working without it

also:

unit test frameworks - what a godsend

ruby - brought joy to writing code, even if I don't get to use it much anymore


In my world I'd add haproxy, Lua, libevent or libev, htop, and nginx.

I'll be doing some playing around with Caddy, and maybe that will replace nginx for me on my list.


I'm endlessly dazzled by the elegance of the 'unix principles'. There is no question anything developed today would be much more complicated.

Still, leaving the linux shell largely for 15 years and coming back to it, I can do basic things - without reading an instruction manual.


Lots of mine (like git and vim) have already been mentioned, so here's some different ones

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.


For Windows, I'm thankful for voidtools "Everything": Find any file instantly across storage devices.


Im thankful of everything that was accomplished in software & the Internet in the last 20 years. And Im thankful for everybody that have made those happen.

Thank you all.


Observability: prometheus/thanos/grafana

Language: Golang/python

Containers: Docker/vagrant

Browser: Chrome/Safari


I found the comment about the speed of the Go compiler... surprising. Fast compile times has always been an important objective for compiled languages, and while Go has a reputation for fast compiler times, in my experience, the Go compiler's performance doesn't seem particularly impressive. Indeed, for a lot of code bases, C, D, even dirty old Pascal compilers, and for a lot of code bases (as in ones, not heavily using template foo), even C++ compilers compile as fast if not faster than Go when you disengage the optimizer. Aside from compiling C++/Rust/Ada/Haskell programs laden with tons of templates/generics/type-foo, I can't think of a compiler that seemed perceptibly "slower" than Go. Now, Go's optimizer is surprisingly quick, but then, the binaries it produces aren't particularly optimized.


I’m thankful for all the framework authors that make it reasonable for me to author my own software without having to reinvent the wheel.



* ZSH - powerful configurable terminal

* 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.


Software I live in, Visual studio on windows. I have started with 6. Far Manager is old school 2 blue panels file manager. Tortoise merge is now accompanied with Araxis Merge but still my favorite. 7zip, gets slowly replaced with zstd. Perforce. I have never liked this version control system but it still runs the world for me. Profiling tools, my workday is bad if I havent run one of those. Unfortunately list is too long and was rotating fast over years. From relatively recent things I would probably pick LLVM/Clang and Everything.

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.


ItsyCal (macOS). So simple, and so useful.

The best part is being able to replace the standard menu bar date with my custom date, including time zone.


Thank you for this!

The culture of small, useful and native-feeling utility apps is honestly one of my favorite aspects of macOS.


Adding another thank you because this simple, cute, incredible app is a new desktop staple for me.


This is awesome! Appreciate the recommendation.


In no particular order:

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


Rarely a day goes by that I don't interact with tmux or vim or mosh. It's hard to imagine life without them


I added my own list but somehow omitted those. I use all of them on a daily basis.


If this thread has prompted you to go through your personal archive and update it, please remember that it's very possible that one or more obscure projects have taken over by bad actors and now contain malware. Be careful downloading an installer for that ten year old program.


I'll say Brave, the least-worst mainstream cross-platform web browser.

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.


I really appreciate the Docker registry 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


Recently switched to macos for development and I'm really thankful to have found out about Shortcat and Raycast.

Combined with Tridactyl plugin on firefox, I can keep my hands on the keyboard for almost every task across the OS.


Yes, love Raycast. ctrl + opt + space and I can immediately jump to my Zoom and Google meetings.


This post makes me so happy to be working in software. It's easy to get jaded over the years, but this really brings me so much of the joy and love of working with software.


Vivaldi - The most customizable browser on the market.

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


"I keep trying to quit vim" -- this made me laugh.


> I keep trying to quit vim

It's esc + :q


I saw software I later found out was called Circus Ponies Notebook in the mid-90s, in use by a guy who was too cool for me to understand.

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.


Hmm....JSON felt so good in the mid-2000s because the alternative was XML, but I would not be on the list of things I am _thankful_ for now. It would not take much to make it considerably better at the job it purports to do—see JSON5 as an example. However because it is so entrenched it basically cannot change at this point.


Off the top of my head: QEMU, Valgrind, GDB, Linux, Wireshark, Nmap, GoogleTest, RenderDoc (still blows my mind), Fusion360, and KiCad.


Nobody seems to have mentioned pandoc [0].

[0] https://pandoc.org/


I'm thankful for software based on open standards, like the Internet stack, email, Matrix for communications, ...


Imapsync has been the one for me: https://imapsync.lamiral.info/

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.


Cult of the Dead Cow - BO… this got me into programming because it was like magic and I wanted to learn how it worked.


  - 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 fun


Ad Blockers.


The list is itself very focused on software making. How about mentioning some end-user software as well? Otherwise it makes it sound as though software development is purely an end in itself. Why be grateful for gcc, the Go compiler or SQLite if not for the software that they enable to exist?


-- I'm grateful that the following sofrware exists --

Linux

Emacs (+VM +gnus +org-mode +scheme-mode)

Sublime

clang++

cargo + rustc

SQLite

Apache

Google

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


I am thankfull for all the free software people write and share to make this mess a little bit better world.


Aside:

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>


Roam & Obsidian changed my life


- Postgresql. I still can't believe it's free.

- NodeJS. Despite its popularity, it's still underrated.


A lot of people, myself included, just take this for granted when in fact it's critical and reliable infrastructure for so many things.


redis - for simple, reliable interprocess communication

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


Suprised no one mentioned SHA256. I know there's not a official SHA256 implementation but i guess any implementation (except OpenSSL) is good.

Left out OpenSSL because of poor docs and a small amount of developers. Last I had seen it was like 2 or so.


Linux, LaTeX, SSH, Vim, rsync, keepassxc.

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.


Software I use the daily

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.


I'm also in for most of the stuff others mentioned(VS Code specially), but two never mentioned I'm grateful are 'Flameshot' and 'Gitkraken'.


> vim. I keep trying to quit vim

Haha, good one. I see what you did there.


Everything (Instant file search): https://www.voidtools.com/


does search on windows still suck? Also Listary


> JSON is the worst form of encoding — except for all the others that have been tried.

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.


I don't see this as edgy pessimism, I see it as pragmatic optimism. The author isn't complaining about JSON, they're acknowledging JSON as the best choice despite its warts.


I understand his intention, but “the worst form of encoding” is pretty ridiculous.


It's a reference to the old adage about government

> Democracy is the worst form of government – except for all the others that have been tried

https://blogs.fcdo.gov.uk/petermillett/2014/03/05/the-worst-...


Oh my mistake


Yeah, I'd just say "good form of general-purpose encoding."


VSCode. Love it. Especially for remote development.


Vim Ffmpeg Zsh, fish, iTerm, Awk, perl, Ruby...


yt-dlp


I cannot disagree with not one of crawshaw.io's software I'm thankful for...

except vi... seriously you heathen??? emacs 4ever ;)


I'm going to grab this opportunity to give the tiniest of shout outs to a random list of mostly Windows based software that I use every single day.

- 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)


Can I ask what you're using Beyond Compare for, that you can't get from VScode etc?


ripgrep

This thing saved me daaaaaaays worth of time over the years. Plus my mental, plus my hair, plus ... well you get the gist..


One piece of OSS I will be forever grateful for is Freeswitch. I built a massively successful business on top of it.


Thanks for mentioning this. It looks interesting


Ring?


An alphabetical list of software that I really like.

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


nobody said nodejs yet?


Not sure if anyone else has said it, but I sure will. I am the lone developer of my website, and it has been so wonderful to be able to remain in JavaScript for both front and back end development. Node also makes a fine scripting language, and the repl is where I normally go by default to practice/drill JS concepts so I won’t forget them. I’m incredibly grateful for NodeJS!


Python because it provided me with a great living

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


Vim. Haven't been able to escape since I started and don't want to ever escape now


httpie neovim redis asdf-vm keepassxc


- Blender - GIMP - fldigi - ffmpeg


Emacs, Firefox, ssh, Linux in general, Ruby and Ruby on Rails, Thunderbird, email, OSMAnd+.


Really enjoyed this piece.

Now I better understand:

make clean && make

(Regarding the mtimes link in the first paragraph)


Davinci Resolve

PyCharm

Clion

Audacity


Davinci Resolve is incredible. Using its fully functional version for free feels like cheating.

One of the side effects being that it presents the tools and context for doing things properly - from editing to color correction.


Not only that, they also have proper linux binaries, which is really really awesome. (Even if, it has caveat of having to use specific formats... but storage space is cheap nowadays, so that is not that huge of an issue, thankfully)


I was so delighted to discover DaVinci for a multitude reasons, but one of the biggest ones was that it doubles as a full-blown audio editor (for my use-cases, anyway). This allowed me to finally ditch Audacity, after its development took some very questionable turns last year.


- sublime text

- jellyfin

- finamp

- piOS

- wireguard

- narwhal iOS Reddit app

- osmand/openstreetmap in general

- netnewswire

- pocket casts

- librewolf

- sonixd

- obsidian

- signal

- iterm


I hadn't used Sublime for a long time until recently. The speed is unreal.


I never stopped using it. All of my coworkers moved to Atom, then VS Code. But I'm still very very happy with ST.


Also the minimal interface. I’m easily distracted and while vscode provides convenience I appreciate the ability to only look at my code.


Helix. Most wonderful to use text editor I’ve found in my short career.


I can't help but second this. It's a total joy to use and lets me focus on doing what I need to do without constant lag and yak-shaving configuration files.


A couple of niche ones not mentioned

pdftk

Popper tools pdftotext especially with the -layout switch


- New Relic

- 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


The usual suspects:

- 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 !!!


Agree with all the softwares author listed, I would like to add:

- Ruby and Rails

- Homebrew

- Sublime Text / VSCode

- iTerm2

- Git


That post was empty and vapid and spammy.


No love for PhraseExpress / Espanso?


I love Espanso! https://espanso.org/


+1 for PhraseExpress


dwm st dmenu vim hugo ranger tmux newsboat


Goodlist, I would add Stable Diffusion


vim and all the low level libraries and tools that I don't even notice I rely on every day


When on windows: Total Commander.


Almost a year old and still fresh


- Nix/NixOS

- GHC (Haskell compiler)

- Emacs

- consult/vertico/marginalia

- Org-mode

- Org-roam

- tramp.el

- magit

- docker.el

- gnus


It really is back to the future, isn't it?

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


Total Commander

Notepad++

Don't need to explain I guess.


Thanks for this list


on ubuntu

- 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


uBlock origin and AdBlock Pro or other ad block alternatives are what I am grateful for! Has saved me a lot of time being wasted on ads. Also archive.is and archive.org for helping me find historical copies of webpages and also bypassing paywalls.


Sublime text

Terminus

Zsh

Powershell (verbosity isn’t terrible!)

SQLAlchemy (connection engine + docs)

Git

Ssh

IPython as a debugger shell


Are you me?

In addition to everything above, I'm thankful for these:

Pass (passwordstore.org)

Newsblur

Multitail


Vypress chat

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


This reminds me of Steve Jobs' email to himself. In 2010 he wrote:

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/


Discussed here:

Steve Jobs emails himself (2010) - https://news.ycombinator.com/item?id=32761060 - Sept 2022 (247 comments)


After reading this, I am reminded of the Buddhist concept of Pratītyasamutpāda [1].

In essence, existence is interwoven in a complex tapestry of interdependence.

https://en.m.wikipedia.org/wiki/Pratītyasamutpāda


The concept of Ubuntu also occupies the same sort of space. Which makes sense when you consider Mark Shuttleworth is South African.

https://en.wikipedia.org/wiki/Ubuntu_philosophy


And here I thought Ubuntu was a Swahili word meaning "I don't know how to install Debian".


I'm surprised how the asian continent had a pervasive notion of holism. They always look very wide.


"Interbeing" is how Thich Nhat Hanh would put it. Everything exists only in relation to everything else. It's relations all the way down.


Even confusianism is said to put the emphasis on the group rather than the individual. So contrasting with many occidental cultures.


Steve Jobs was buddhist.


The last line "Sent from my iPad" was quite fitting as a device that he conceptualized :-)


Yeah it hits differently after what he said. My first impression after reading the "Sent from my iPad" was it was some sort of tongue-in-cheek joke, but it's the default signature so it was added automatically! It's a good growth hack.


could have edited it for that particular message with a

sent from a derivative of alan kay prototype


Did Jobs conceptualise it or did someone at Apple?


It’s fairly well documented that the iPad was what he’d wanted to have for a while, well before the iPhone existed. IIRC biographies put his first concept of what became the iPad around when the iPod was released.

The iPhone was just a happy accident, something they decided to do with the cool tech they were playing with when working on the iPad, before it was ready.


Had to comment on this!

The IPad was described as a glass keyboard when it was still a secret. It was inspired by an argument with a Microsoft employee who argued apple should license the windows tablet OS and make tablets.

The whole company was more focused on making a phone however. And three secret internal movements converged into what is the IPhone today. Best thing is it was kept secret from Steve Jobs. But once he saw it, he shelved the iPad and worked on the iPhone.

The iPhone's predecessor was the Motorola iTunes phone. Which was a combo of the ipod and phone.

A bit of compiled history.

Edit: iPad was a development concept because he believed tablets should not have a stylus. And got angry at Microsoft employee for suggesting it should.


Not being snarky but isn't a tablet what everyone wanted and just needed technology to catch up?


kinda spoils it imho. why is it included? he surely didnt intend it.


i don't know, after a list of things he didn't do that he's thankful for, containing something he was responsible for in this way is a subtle nod to what he did create.

Its powerful because (a) he probably didn't explicitly add it, and (b) it references his impact on the world and (c) the iPad is obviously important but no where near as important as mathematics or medicine, and its not included on the list, just a helpful nod to its ability to help him reflect on this list.


The auto-marketing footer sullies the rest of his letter. The content recognizes all of the great achievements of human civilization and then at the end there is an advertisement. Which relies on it's continued inclusion in emails by stroking the human ego, so not very Buddhist, either.


its like an youtube ad in the middle of a symphony


No mention of the shoulders that Apple products stand upon.


That was actually just the entire message. To cherry-pick a few:

> I speak a language I did not invent or refine.

> I did not discover the mathematics I use.

> 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.


Apart from all of the message, yes, no mention of it at all.


I was thinking more of things like the "windows, icons, menus, pointer" that Apple tried to sue Microsoft for.


> or most of the technology I work with.

No mention of it at all.


A nice reminder of the absurdity of the narrative of the "self-made man".


This is probably the most elaborate humblebrag I've ever seen.


I guess because it ends with "Sent from my iPad"? Still seems like an uncharitable interpretation considering that a "humblebrag" is a pretty deliberate thing.

Maybe he just wanted to remind himself of these things.


Steve Jobs was a complex person, yet he was nothing if not deliberate. It is indeed "uncharitable" of me, but I cannot read that "Sent from my iPad" as anything but the punchline that the rest was built around.


[flagged]


Ah yes, Steve Jobs, the CEO and entrepreneur widely known for his lack of taste and aesthetic sense.


If by aesthetic you mean personal, then I wouldn't say his "normcore" look was of any particular taste


The minimalist style of most of his products is essentially a demonstration of lack of taste, probably with the purpose of playing it safe and not clashing with any potential customer's taste.


Imposing their own taste would have the potential to limit sales. Similar to how if you want to ensure a good resale value for your home, you shouldn't make the decor too "specific", as it could put off potential buyers.


I think it's more about the users lacking the taste and aesthetic sense to change the default email signature to something more personal?


He was also known for his ruthless business practices, sociopathic tendencies, saying his daughter smelled like a 'toilet' on his deathbed and then subsequently starving himself of life-sustaining nutrients until he died.

Steve Jobs was not afraid to contradict the image he was "widely known for".


I'm not defending Jobs, but people are more than one thing. It's possible he was entirely sincere when he wrote that email (allegedly), but was not that compelled to reconcile that sort of ideal with his other thoughts and actions. Thus I don't think everything Jobs said should be dismissed. I also understand why many have a hard time appreciating things that "bad" people say.

It is a shame that he said that to his daughter on his deathbed. I'd not heard about that until you mentioned it. People sometimes say crazy things or revert to earlier memories during their final few minutes, but for Lisa, that must have solidified the reality that they would never have reconciled.


As with all things, this definitely deserves some context. His daughter later said that she used some rose mist before visiting him, and admitted that she did smell like a toilet (as in, a fragrance often used to clean toilets).


I guess I assumed the context wasn't that literal.


When the media was plastered with Jobs' obits, it was chastening to see the short shrift Dennis Ritchie got, especially with all the coverage around the valuable legacy of Jobs' patents for computer cases.

> ...I don't think everything Jobs said should be dismissed

I agree that whatever he said should be taken on its own merits; I just don't see the value in privileging anything the guy said over anyone else in the first place.


The point of my comment wasn't to glorify Steve Jobs, but to criticize the other commenter's unreasonable prejudice.


> saying his daughter smelled like a 'toilet' on his deathbed

This requires a citation.


It's dishonest without the additional context that he was criticizing an overpowering cheap poo-pourri type-scent rather than saying his daughter smelled like shit at the very least


Shhh you're ruining their argument with pesky context.


It's from his daughter's book "Small Fry". It wasn't on his deathbed, though he was very sick. She had put on some cologne that didn't smell good.


Easy to say things behind someone who's already dead. How can we trust the book?


Since she's the only living witness, and it's her book, you can decide for yourself.


Read it.


https://www.nytimes.com/2018/08/23/books/steve-jobs-lisa-bre...

However the context matters and it’s explained in this thread.


She reported it. All you have to do is google.



You’ll have to better than the British tabloid press as a source.



Do you really expect to find that kind of info in some ‚serious‘ press?


"Serious" press covered a Russian pee pee hoax, so if you're insisting they have standards that exclude irrelevant scatlogical references, then think again.


I've seen claims by people who knew him that he was narcissistic (which I find easy to believe) but none that he was sociopathic.


I wouldn't label him a by-and-large sociopath, but Steve Jobs certainly exhibited sociopathic behavior. Especially earlier in his career, Jobs was known for his lack of empathy towards his coworkers and being difficult to work with.


Let’s not turn reports of being difficult to work with into armchair diagnoses of serious mental health conditions.


>Jobs was known for his lack of empathy towards his coworkers and being difficult to work with

That not significant evidence of "sociopathic behavior" unless your using "sociopathic" to mean behavior you disapprove of.


I read "Sent from my iPhone" as "I apologize for brevity and typos" and don't get offended.


Well I don't get offended, I just roll my eyes that someone is okay being a walking ad for a company that has plenty of money.


Do you roll your eyes at yourself whenever you, say, drive a car?

We're surrounded by things that have their company's branding prominently plastered on them. Hell, stuff like luxury bags (eg: Louis Vuitton) exist specifically to flaunt a company's branding.

Of course, it would be nice if we weren't surrounded by marketing and advertising everywhere all the time, but that's beside the point.


Uh, no, I don't; obviously aesthetic judgments are much more subtle than that.

> but that's beside the point.

uh that is precisely the point. Hence if there is some trivial way to avoid it, I like people who do it.

For instance yeah your car has branding you can't avoid. But you know what you can avoid? Those stupid license plate holders that dealers put on to advertise themselves. Better than nothing.


> Those stupid license plate holders

In some jurisdictions you can avoid this problem by having no licence plate at all and if you upgrade the car frequently enough, you can avoid ever having a plate.


You can remove decals


Also, at least some of the car brands can be ordered without external model markings.


I mean, the line hits a bit different coming from Steve Jobs, he built* the fucking thing.

* yeah yeah, I know


If you don’t get offended, perhaps you get things out of proportion?


People who are so image conscious that they care about that kind of thing in themselves or others really seem like they have their priorities in the wrong place.

It ends up being a great filter, leaving things around to bother the kinds of people you don’t want to impress.


I understand that, but keeping the default email signature might also mean that said person is so busy or detached from technology that they don't even know/have-time-to change their email signature.


When I read "Sent from my iPhone" I feel sorry they don't have a proper keyboard and that they have to touch cold, hard glass instead; what an unpleasant tactile experience!

And then I remember I now have to do the same, because someone switched off my fantastic BlackBerry (R.I.P. until resurrection comes!)...


Between body heat from being in your pocket and heat from the electronics, the unpleasant glass usually isn't cold.


I explicitly leave it in for this sort of interpretation. I remove it from my iPad, but not phone.


Someone with common sense in 2022. How uncommon :-)


I have a strong sentiment for users that use standards without optimizing anything they are either just really focused on their work or totally unorganized both have their charms.


Not sure which ones are that but I usually consider (some of) then plainer than vanilla

They're the complete opposite of the "here's to the crazy ones", they have neither wish not curiosity in how to make things better


I personally wouldn't draw all these conclusions from the email footer alone and I'd refrain from speculation as well. It's a footer at the end of the day, but that's me I guess.


Of course. It's an inconsequential footer and people have different priorities.

My comment was more in the sense that instead of a lack of taste it's more apathy, but it's way less serious than people are taking it


Quite the opposite, I make things better that strike me as being important. Things that aren’t don’t get attention.

Like the table manners of which of four forks are “correct” to use, many things I just don’t care to be “good” at and folks who do strike me as odd.


> they have neither wish not curiosity in how to make things better

Nonsense. Plenty of people have curiousity in how to make things better but don't do it in ways that you would see.


Could be. Not all defaults need to be changed

But they also usually ignore contexts and only look at the small picture


I strongly dislike people like you


I think if you work on the iPhone/iPad, (or for that matter, on other email clients or email sending devices), there's probably an exemption from it being as tacky to advertise the device you're using


I see it a lot from non-techies who I think either don't know how to change it, or reasonably think that it's a conventional way to convey that one is on mobile (to explain why one is more terse, or heads up that they don't have access to info normally on desktop right now, etc.).

When the iPhone first game out, and was expensive and hard to get, the signature risked coming across as an affluence brag.


Not even 'risked', it was explicitly that! That's a lot of why it's crass to this day.


Oh, at the time, I probably felt miffed over it, and maybe once responded with a juvenile signature, "Sent from my iPhone that your mom bought me".

But, more general than incidents of iPhone bragging/enthusiasm, I have more data points now, of different people's various motivations and thinking, and I try to remind myself not to get bent out of shape. Kinda like in David Foster Wallace's "This is Water" commencement speech: https://www.youtube.com/watch?v=8CrOL-ydFMI


I can't speak for iPhone but I was always bemused by the line. Until someone responded to one of my messages and I realised my message also ended with sent from my ** phone. I hadn't added the line. I realised on some Android phones the phone adds the line to the bottom of your message. You can turn it off but I suspect most people don't..


The lack-of-taste element has been trumped by the ‘Get Outlook for iOS’ one that it’s spawned.

Are more courteous take is that it indicates a message was sent in haste.


this take is so pretentious that it reads like tech bro satire. Ah yes, customizing my email footer settings will showcase my refined taste and advanced aesthetic sense.


Well it's a bit more complicated than that. No, it doesn't showcase any kind of refined taste, it's just like a super simple signal for the bare minimum. Kinda like... uh... wearing clothes that fit, fashion choices aside.


Meaning if you see that they just don't have taste?


yep.


It's not unlike wearing a giant designer label. Except that everyone and their uncle, from trailer park to penthouse, has an iPhone.


In the US perhaps. Here in Spain it's definitely a luxury item. Even the "5 year old design" iPhone SE is 600€ here which is a lot for Spain.

For the same price you can get a Samsung S21 FE with full-screen bezelless AMOLED and 3-cam setup (wide, ultra wide, 3x zoom) and in-screen fingerprint. And for half that an A52s with similar except the tele. So those are much more popular here.

The only people I know with iphones are die hard Apple fans or really far above average earners :)


Not everyone. Very few of the people I know use iPhones.


Don't worry, nobody thought it was literally everyone.


The implication, though, is that iPhone is at least the most common device used. At least in the US, this is not true.


Every statistic I've found shows not only a 50+% share of the existing market, it also shows new phones from Apple are selling to over 50% of the market.

It makes the email signature even more bizarre.

https://gs.statcounter.com/vendor-market-share/mobile/united...

https://hypebeast.com/2022/9/apple-iphone-overtakes-androids...


Correct, which means that neither are "most common".

But the distribution is not even. In my part of the country, you don't see iPhones very often at all. In other parts of the country, you see them everywhere.


I'm sorry, how is "greater than 50%" not the same as "most common?"

Either it's two players with 51% and 49%, in which case the 51% is "most common," or it's many players, with 51% and a bunch of other percentages that collectively add up to 49%, in which case the 51% is still the most common, perhaps even more so.

I'm not shilling for Apple here, as Android was clearly most common From 2011-2021, and still is world-wide. If anything, I'm shilling for the English language.


> Either it's two players with 51% and 49%, in which case the 51% is "most common,"

In a market the size we're talking about, 51% and 49% are effectively the same as 50-50. I think it's reasonable to say neither is the "most common". They're used equally.

And I don't know the margin of error on the figures, but I'm sure it exceeds 1% anyway.


The issue isn't the figure 50, it's the drawing pool.

Thread-initial description was 50% of the market, which is ambiguous. It could refer to either the market in sales, which indicates highest growth, or the market in userbase, which could be the layman's “common”.


Common does not mean > 51%.

  Term     Numerical rate   Percentage
  Common   1 in 10          10% 
iPhone is by definition most common.


Not "to himself", it was for a speech.


No – to himself. Not a speech. As per the linked site where it reads:

  > Email from Steve Jobs to himself
  > 2010
  > 
  > Steve often sent himself messages to capture what was on his mind.


Sure.. also as per that site, https://stevejobsarchive.com/international-design-conference... Basically the same stuff.

So either prepping a new speech, or recapping his own quotes at the end of his life.

If it wasn't for the recording, the whole e-mail sounds like affirmations or someone who who needs to keep his mind straight and humble.


<ctrl>f office

0/0


I don't know about you, but I can't buy bread with 'thanks.'


are you the author of one of the pieces of software listed in this article? and if so, how certain are you that the author hasn't contributed to your project, either through direct financial contribution or by paying developers to work on it?

as far as i'm aware, tailscale is a pretty upstanding member of the open-source community.


it's funny, because I believe the author has contributed to at least 4 of these directly in his day job, and has published code for a few more. But I guess you can't buy bread with substantial contributions, if ability to buy bread is our metric. But it's not a good metric.


We don't live by bread alone.


Software is just the smell of other computer users. Some smell nice, most smell terrible, it's nothing special either way. You can rewrite anything in an afternoon if you're in the right mood.


Maybe not an afternoon, but any software could be rewritten given enough time and interest.

Although copyright and patents may prohibit you from distributing it.


*prohibit you from legally distributing it (which makes it difficult to profit from.)

Also everyone way overestimates how hard it is to re implement all this crap.


vim? Really you said this? OMG.


Could you please stop posting unsubstantive comments to Hacker News? You've been doing it repeatedly, unfortunately, and we're trying for a different sort of forum here.

https://news.ycombinator.com/newsguidelines.html


[flagged]


Please stop. We want interesting new discussions, not boring old flamewars.


yes but i wont judge you for not understanding or appreciating the power and usefulness of vim. and dont bother, either. i encourage you to stick with the peasants' notepad++


Notepad++ requires GUI, buddy. Vim is console app.


Vim's great. So great that I essentially use Vim on Emacs.


If vim is great why most popular question about vim is "How do I exit Vim?" - https://stackoverflow.com/questions/11828270/how-do-i-exit-v...


Because Vim is a power tool that must be learned. You cannot "just use it". Would you say the UX of an airplane is bad because you have so many knobs and buttons and have to learn how to use them before flying?


steep learning curve doesn't imply bad UX, or useless, or not great.


The same I heard about sendmail and its configs :).


Because vim is useless for those who do not touchtype.


You don't have anything more to contribute than "Stop liking things I don't like?"


FYI, I’m using vim every day. If you have run vim before - you should know what I mean. About others I don’t care.


I have no idea what you mean. I cannot get enough information from the context of "OMG." There are many possible interpretations.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: