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=
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.
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.
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'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.
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...
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.
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).
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!
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!
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!».
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.
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.
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
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 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.
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.
> 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...
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.
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.
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
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
The built-in Windows search is (for me) abysmal compared to Spotlight search on the Mac, and especially Alfred's interface to Spotlight search. The Windows search seems to switch too early to trying Bing results when I'm only interested in local results.
Never tried Everything before, but I think I've seen it recommended before, so I'm downloading now.
my 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
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?
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!
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.
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.
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.
asdf because it manages versions of software for me really well and it has thus far been rock solid reliable. https://asdf-vm.com/
Emacs because it's about as configurable and customizable as my most insane requirements. And emacs lisp is very cool. Similarly, vim and vscode are also dear to me.
Factorio! because of course Factorio, it's amazing. Similarly Kerbal Space Program.
Firefox for standing up against the chrome hegemony nowadays, and for being so exciting back in 1998 with its initial open source decision.
And Tree Style Tabs, because every time I have to use a browser without it, my skin crawls at the lack of organization. https://github.com/piroor/treestyletab
And the big ones: grep, sed, awk, cut, sort, uniq, jq for all the times they've turned something incomprehensible into something useful to this tiny mind.
EDIT: oh and zsh because zmodload zsh/datetime gives me $EPOCHSECONDS which makes life so much easier to make cool prompt segments like "days and hours since last commit" and "remaining auth session time in minutes and seconds"
# display time since last commit in days and hours
gdate -d @$(($EPOCHSECONDS-$(git log -1 --format=%ct))) -u +"(%-dd %-Hh ago)"
I think, you want to take the difference and divide by 86400 to get the number of days. Then take the difference modulo 86400 to get seconds in a day, and convert that to hours (minutes:seconds) via strftime string.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
> 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”.
> 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.
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.
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
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.
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.
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:
>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 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.
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.
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
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.
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.
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...
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.
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.
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.
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.
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.
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.
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.
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".
> 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.
- 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.)
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.
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.
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.
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
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.
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.
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 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”.
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.
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.
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.
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.
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.
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.
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.
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.
* 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.
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
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.
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.
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.
There is a docker container thats super easy to use. It's worked flawlessly for me the two times I've needed it. Each time I use it I donate because it's clearly a great bit of code.
- Notepad++ for better writing
- Inkscape for drawing
- Everything for finding your writings and drawings
- AstroGrep for finding content inside writings (and drawings (SVG))
- Firefox for the Web
- F# for fun
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?
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.
I haven’t actually seen Windows since 2006. I run Linux on laptops too. If you do video editing, maybe a Mac or apparently a windows would be better. Otherwise, Ubuntu LTS works well.
Apptivate - set global keyboard shortcut for Mac.
Firefox - been using it for 20 years and still loving it.
Vimium - vim binding for Firefox. Make web browsing more productive.
> 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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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
"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 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.
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.
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.
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!)...
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.
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.
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.
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..
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.
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 :)
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.
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”.
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.
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.
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.
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++
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?
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.