waves Vim and spaces over here as well. Emacs is a great tool, I just can't stand its keyboard shortcuts. In theory I should try out evil mode, but I've got NeoVim configured how I like it and I don't want to spend the time on switching.
As for tabs vs spaces, in theory, tabs are more flexible than spaces and allow everyone to view the file with their preferred indentation levels. In practice, I have only seen one codebase — ONE — in all my years of programming that was using tabs and yet did not end up with spaces getting mixed in with those tabs at some point along the way. (In the indentation, I mean: obviously once the non-indentation part of the line starts, you want spaces there). And that codebase had precisely two people committing regularly to it. Occasional PRs from other contributors, but only two primary maintainers.
Every other tab-using codebase I've seen (of non-trivial size and complexity, that is), someone, somewhere, had been lazy, or had a misconfigured editor, or something, and spaces snuck into the tabs. The worst offender I ever saw was a file that had been edited by multiple people over the years, who must have had different tab settings in their editors. There was one section where they had tried to line up a bunch of variable assignments and values. (Yes, I know, bad idea, but stick with me for a minute, I'm getting to the punchline). None of the pieces of code that were supposed to line up were actually lined up. (This was C# code, so indentation didn't truly matter like it would in F#, or Python, or ... well, I won't list all of them since I'm trying to get to the point). Here's the really hilarious part. I tried all sorts of tab settings to see if I could get that file to line up. I tried 8. I tried 4. I tried 2. I even tried 3, the setting for the people who can't make their minds up between 4 and 2. Then I tried really oddball settings like 16, 5, or even 7. Nothing worked. There was no tab-size setting I could use that would make the code line up. Which entirely negates the whole point of tabs, that you can set your own indentation.
That was the day I said "Forget about tabs, just use spaces, you won't have that problem with spaces." Tabs have great promise, but in practice, in my experience at least, you end up having to tell your colleagues "hey, you need to set your tabs to 4" (or 8, or 2, or ... well, you better not be using any other numbers) "before editing this file". Which basically negates the whole point of tabs. They're great in theory, but I've only seen ONE codebase that made them work in practice.
I’ll overlook your poor choice in editors. :-) The rest of this is spot on. Yea, that’s bad. A project like that screams for a code formatter to be plumbed into a pre-commit hook. Like you say, I’ve never really found a great argument for tabs either, and with more and more indentation-sensitive languages, any argument to the effect that programmers can choose their own indentation really goes out the window. These days, I program in Clojure with Emacs’s aggressive-indent-mode minor mode. It re-indents the whole top-level function you’re working in every time you pause typing. It keep everything properly indented pretty much all the time. Sometimes your commit diffs will be larger, though.
These days .editorconfig compliance is everywhere, thankfully, so there's a cross-platform solution. At least for that bit. (Note that while usually "cross-platform" means OS's, this time it means editors).
Many of these are beautiful, but it's missing one of the best ever written, by Olin Shivers in the Scsh Reference Manual:
Who should I thank? My so-called ``colleagues,'' who laugh at me behind my back, all the while becoming famous on my work? My worthless graduate students, whose computer skills appear to be limited to downloading bitmaps off of netnews? My parents, who are still waiting for me to quit ``fooling around with computers,'' go to med school, and become a radiologist? My department chairman, a manager who gives one new insight into and sympathy for disgruntled postal workers?
My God, no one could blame me -- no one! -- if I went off the edge and just lost it completely one day. I couldn't get through the day as it is without the Prozac and Jack Daniels I keep on the shelf, behind my Tops-20 JSYS manuals. I start getting the shakes real bad around 10am, right before my advisor meetings. A 10 oz. Jack 'n Zac helps me get through the meetings without one of my students winding up with his severed head in a bowling-ball bag. They look at me funny; they think I twitch a lot. I'm not twitching. I'm controlling my impulse to snag my 9mm Sig-Sauer out from my day-pack and make a few strong points about the quality of undergraduate education in Amerika.
If I thought anyone cared, if I thought anyone would even be reading this, I'd probably make an effort to keep up appearances until the last possible moment. But no one does, and no one will. So I can pretty much say exactly what I think.
Oh, yes, the acknowledgements. I think not. I did it. I did it all, by myself.
This is the answer. Stop operating in authoritarian states and ignore their laws. If those states want to censor what their population can see, it's on them to establish a firewall.
You do realise that most of the world compromises of authoritarian states, right? Not to mention, authoritarianism by whose standards? I know a lot of people that would say EU countries are authoritarian.
Maybe if the US had a sane voting system, but they don't. I'm of the opinion that their flawed voting system is a huge factor in why the US government is the way it is.
Unfortunately that is how it works. A vote for the green party is simply a vote not cast for D and favors R; and a vote for a libertarian is a vote not for R, so it benefits D.
A solution is Ranked Choice Voting where you can say, "Green, and if they don't win, D (or whatever)."
Fwiw, I vote my conscience, not to win. Not the best for my political positions maybe, but I hope to send a signal to others that maybe something other than R/D is one day possible. But, yeah, RCV would help with that conundrum.
While this is true, very often that is the impact of a third party vote in a federal election. See the election of one George W. Bush and the impact of Mr. Nader.
Trump recently posted a diatribe about ranked choice voting in Alaska (calling it "disastrous, and very fraudulent").
Do you know why the modern GOP hates ranked choice voting? Because they rely upon getting clown votes wasted on the Tulsi Gabbard, Jill Stein's and Kanye West's of the world as a way to get elected. They just need to entice just enough fool-vote drawers, knowing the cult will not sway an iota.
(With you on spaces, though.)
reply