

Less bad is good, right?
Is it? If a serial rapist goes from 10 rapes a month to 5, have they done a good thing?
(and obviously, driving a car is not comparable to rape - just illustrating that less of a bad thing is not a good thing)


Less bad is good, right?
Is it? If a serial rapist goes from 10 rapes a month to 5, have they done a good thing?
(and obviously, driving a car is not comparable to rape - just illustrating that less of a bad thing is not a good thing)


That’s less bad, that’s not fixing anything. There is no universe when using energy to move 1.5-3 tonne private vehicles around for transportation is sustainable. I’ve heard numbers typically in the 40-60% region for the lifetime energy use of electric vs ICE. That is not fixing any problem, that’s making the problem worse less quickly.


You think electric cars are some sort of solution? They are part of the problem, not the solution. Making things worse but not quite as quickly is not making things better.
Truth is we could never stop it without radical global abolition of high energy activities. That’s impossible given the short term gains of breaking ranks and the unpopularity of that level of denial. We didn’t have to destroy ourselves as quickly, but the path was set when we had the industrial revolution.
Hmm, I’m not taking about hacking defaults, I’m talking about hacking functionality. I’m talking about making capabilities that didn’t exist, all seamlessly part of my typical integrated text manipulation environment (that’s way broader than editing)
The unique power of emacs is it doesn’t have typical boundaries, so integrated personal unique functionality is possible. May well be a huge downfall, security wise - it rides a lot on security through obscurity.
Frankly it’s taken me decades to properly appreciate how my computer experience can be so fungible. Most computer systems don’t allow it.
Lazy about tooling? The biggest point people make is that IDEs tend to work out of the box while the likes of vim or emacs need configuration and have an initially steep learning curve.
Well, as in this discussion, some people sometimes also tend to raise a lot of features as if only IDEs have them, but that’s frequently just ignorance.
Hackability not on your list? It’s the ability to extend and adapt it to my particular needs that, above many other things, means I am too deep into Emacs to even imagine leaving.
Plugins are a very weak substitute that cannot provide that utility, and I notice Helix doesn’t even offer plugins. That sword does have the horrendous opposite edge of almost total lack of security, so perhaps I’ll regret that one day. There are so many ways I value Emacs that isn’t matched by any other text environment that none of the others are even on my radar as possible replacements.
Out-of-the-box experience is very weak on Emacs, but I’m decades past that being a concern to me directly, though it does inhibit newcomer uptake.
Other than that, for me it ticks your boxes while barely scratching the surface of its merits. At least its speed and latency is not something I notice any meaningful benefit when working with something that people praise, like vim. Come to that most of the time like now, typing into a browser text box, I’m not even bothered by latency, and that’s way worse than Emacs.
It’s biggest failing to me is working remotely when there’s significant network latency, where VSCode is clearly superior, but I have neither the time, nor probably the ability, to fix it.
Dude, your þey business immediately turns 80% of readers against any message you may be trying to convey while the rest will be saying “Okay, they may be an insufferable dweeb, but that doesn’t mean they’re wrong, so let’s try to give it a fair read”…
I swear some of you people think some of the most talented and productive experienced devs use vim and emacs because of some snobbery or because they haven’t noticed vscode etc exist.
It really is unique.


Well j = i + 1, and drop the equality test.
Linux does use Python syntax… in Python.
In Bash though, it uses Bash syntax.


I remember it as just beer and cider, with the addition of blackcurrant making it a Purple Nasty, and all sorts of tales of how they allegedly reacted to make a vicious drink more than the sun of the parts that I am sure was fiction.
And for Americans, this means alcoholic ciders, since they also call raw apple juice cider, and most Americans have no idea what a blackcurrant is (a delicious intense berry that was illegal to cultivate in the US for a lot of the recent past).


I wasn’t trying to give you advice, I was describing the situation in general. 🤷


It’s very hardware dependent with a few problem’s like Nvidia. For Best results go established brands that support Linux like thinkpads.


I’m now 1 year in to working in Go having been mostly C++ and then mostly large-scale Python dev (with full type annotation).
Frankly, I bristle now at people giving Python a hard time, having worked with Go and I now hate Go and the de-facto ethos that surrounds it. Python may be slow, but for a lot of use cases not in any way that matters and modern computers are very fast. Many problem areas are not performance-limited, and many performance problems are algorithmic, not from raw statement execution. I even rewrote an entire system in Python and made it use 20% of the CPU the former C++ solution used, while having much more functionality.
The error returns drive me nuts. I looked around for explanations of the reasoning as I wasn’t seeing it, and only found bald assertions that exceptions get out of control and somehow error returns don’t. Meanwhile standard Go code is very awkward to read because almost every little trivial function calls becomes 4 lines of code, often to do nothing but propagate the error (and errors are just ignored if you forget…). With heavy use of context managers, my error and cancellation handling in Python was always clean, clear, and simple, with code that almost read like whiteboard pseudo-code.
The select statement can be cool in Go, but then you realize that literally 98% of the times it’s used, it’s simply boilerplate code to (verbosely) handle cancellation semantics via the context object you have to pass everywhere. Again, literally code you just don’t need in exception-based languages with good structures to manage it like Python context managers.
And every time you think “this is stupidly awkward and verbose, surely there’s a cleaner way to do this” you find people online advocating writing the same boilerplate code and passing it off as a virtue. e.g. get a value from a map and fall back to a default if it’s not there? Nope, not offering that, so everyone must write their own if foo, ok := m[k]; !ok {...} crap. Over and over and over again the answer is “just copy this chunk of code” rather than “standard libraries should provide these commonly needed utilities”. Of course we can do anything we want ourselves, it’s Turing Complete, but why would we want to perpetually reinvent these wheels?
It’s an unpopular language, becoming less popular (at least by Google trends) and for good reason. I can see it working well for a narrow set of low level activities with extreme concurrency performance needs, but it’s not the only language that could handle that, and for everything else, I think it’s the wrong choice.


Go code is always an abomination.
Along with “it’s sometimes hard to detect your own stink”
I know about window managers and how using them will reduce the memory usage by system a lot because they are less bloated etc.
Ehhhh… I think it’s more “not using a curated general-purpose DE”, rather than “using a WM”. All graphical systems include a WM, and a DE in some senses is more of a concept or category than a concrete thing. The choice is whether it’s one you cobble a DE together yourself, or use a pre-configured, curated one.
Many people use stand-alone WMs and then create their own DE, but quite a few of us put the WM of our choice within existing DE because we want the WM but have no interest in re-inventing all those DE wheels (and/or have >4Gb memory so the “bloat” is not an issue). In my case it’s i3 on Gnome via gnome-flashback.
Curated DEs do tend to use more resources - typically mostly memory - partly because they tend to be comprehensive for diverse users. Rolling your own minimal DE for your personal needs can often be lighter weight. If you have a very constrained system then it can be beneficial, though that circumstance is more and more unusual these days when 8Gb of memory is often considered “minimal”.
The main reasons for making your own DE is to do things exactly the way you want, at the expense of having to do it. Beware though, there will be various helpful features of DEs you may not realize you appreciate until you have realize you don’t have them. E.g. what happens when you plug in a USB drive? Nothing, by default - a DE usually manages that. SSHing into servers a lot - a credentials agent is nice - better add one of those…
A lot of rolling your own DE is months or years of “oh yeah, that is a useful thing to have; I need to find tools and configure them to do that”. Conversely, dropping your WM of choice into another DE is often a case of “huh, that happens automagically; nice!”.


Dynamic typing is shit. But type annotation plus CI checkers can give you the same benefits in most cases.
In the case of bats for me I think I feel the pulses of bats because it’s quite powerful, more than hear it. It’s probably undertone resonance or something.
I haven’t heard any for a while and my hearing is deteriorating but bat numbers collapsed and I haven’t seen them either.