1. 30

    Good talk.

    I recently used systemd “in anger” for the first time on a raspi device to orchestrate several scripts and services, and I was pleasantly surprised (but also not surprised, because the FUD crowd is becoming more and more fingerprintable to me). systemd gives me lifecycle, logging, error handling, and structure, declaratively. It turns out structure and constraints are really useful, this is also why go has fast dependency resolution.

    It violates unix philosohpy

    That accusation was also made against neovim. The people muttering this stuff are slashdot markov chains, they don’t have any idea what they’re talking about.

    1. 29

      If you believe composability (one program’s output is another program’s input) is an important part of The Unix Philosophy, then ls violates it all day long, always has, likely always will. ls also violates it by providing multiple ways to sort its output, when sort is right there, already doing that job. Arguably, ls formatting its output is a violation of Do One Thing, because awk and printf exist, all ready to turn neat columns into human-friendly text. My point is, The Unix Philosophy isn’t set in stone, and never has been.

      1. 7

        Didn’t ls predate the Unix Philosophy? There’s a lot of crufthistory in unix. dd is another example.

        None of that invalidates the philosophy that arose through an extended design exploration and process.

        1.  

          nobody said it’s set in stone; it’s a set of principles to be applied based on practicality. like any design principle, it can be applied beyond usefulness. some remarks:

          • i don’t see where ls violates composability. the -l format was specifically designed to be easy to grep.
          • the sorting options are an example of practicality. they don’t require a lot of code, and would be much more clumsy to implement as a script (specifically when you don’t output the fields you’re sorting on)
          • about formatting, i assume you’re referring to columniation, which to my knowledge was not in any version of ls released by Bell Labs. checking whether stdout is a terminal is indeed an ugly violation.
          1.  

            i don’t see where ls violates composability. the -l format was specifically designed to be easy to grep.

            People have written web pages on why parsing the output of ls is a bad idea. Using ls -l doesn’t solve any of these problems.

            As a matter of fact, the coreutils people have this to say about parsing the output of ls:

            However ls is really a tool for direct consumption by a human, and in that case further processing is less useful. For futher processing, find(1) is more suited.

            Moving on…

            the sorting options are an example of practicality. they don’t require a lot of code, and would be much more clumsy to implement as a script (specifically when you don’t output the fields you’re sorting on)

            This cuts closer to the point of what we’re saying, but here I also have to defend my half-baked design for a True Unix-y ls Program: It would always output all the data, one line per file, with filenames quoted and otherwise prepared such that they always stick to one column of one line, with things like tab characters replaced by \t and newline characters replaced by \n and so on. Therefore, the formatting and sorting programs always have all the information.

            But, as I said, always piping the output of my ls into some other script would be clumsier; it would ultimately result in some “human-friendly ls” which has multiple possible pipelines prepared for you, selectable with command-line options, so the end result looks a lot like modern ls.

            about formatting, i assume you’re referring to columniation, which to my knowledge was not in any version of ls released by Bell Labs. checking whether stdout is a terminal is indeed an ugly violation.

            I agree that ls shouldn’t check for a tty, but I’m not entirely convinced no program should.

            1.  

              just because some people discourage composing ls with other programs doesn’t mean it’s not the unix way. some people value the unix philosophy and some don’t, and it’s not surprising that those who write GNU software and maintain wikis for GNU software are in the latter camp.

              your proposal for a decomposed ls sounds more unixy in some ways. but there are still practical reasons not to do it, such as performance and not cluttering the standard command lexicon with ls variants (plan 9 has ls and lc; maybe adding lt, lr, lu, etc. would be too many names just for listing files). it’s a subtle point in unix philosophy to know when departing from one principle is better for the overall simplicity of the system.

        2. 21

          The declarative units are definitely a plus. No question.

          I was anti-systemd when it started gaining popularity, because of the approach (basically kitchen-sinking a lot of *NIX stuff into a single project) and the way the project leader(s) respond to criticism.

          I’ve used it since it was default in Debian, and the technical benefits are very measurable.

          That doesnt mean the complaints against it are irrelevant though - it does break the Unix philosophy I think most people are referring to:

          Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new “features”.

          1. 25

            With all due respect[1], did your own comment hit your fingerprint detector? Because it should. It’s extrapolating wildly from one personal anecdote[2], and insulting a broad category of people without showing any actual examples[3]. Calling people “markov chains” is fun in the instant you write it, but contributes to the general sludge of ad hominem dehumanization. All your upvoters should be ashamed.

            [1] SystemD arouses strong passions, and I don’t want this thread to devolve. I’m pointing out that you’re starting it off on the wrong foot. But I’m done here and won’t be responding to any more name-calling.

            [2] Because God knows, there’s tons of badly designed software out there that has given people great experiences in the short term. Design usually matters in the long term. Using something for the first time is unlikely to tell you anything beyond that somebody peephole-optimized the UX. UX is certainly important, rare and useful in its own right. But it’s a distinct activity.

            [3] I’d particularly appreciate a link to NeoVim criticism for being anti-Unix. Were they similarly criticizing Vim?

            1. 9

              [3] I’d particularly appreciate a link to NeoVim criticism for being anti-Unix. Were they similarly criticizing Vim?

              Yes, when VIM incorporated a terminal. Which is explicitly against its design goals. From the VIM 7.4 :help design-not

              VIM IS... NOT                                           *design-not*
              
              - Vim is not a shell or an Operating System.  You will not be able to run a
                shell inside Vim or use it to control a debugger.  This should work the
                other way around: Use Vim as a component from a shell or in an IDE.
                A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
                everything but the kitchen sink, but some people say that you can clean one
                with it.  ;-)"
              

              Neo-VIM appears to acknowledge their departure from VIM’s initial design as their :help design-not has been trimmed and only reads:

              NVIM IS... NOT                                          design-not
              
              Nvim is not an operating system; instead it should be composed with other
              tools or hosted as a component. Marvim once said: "Unlike Emacs, Nvim does not
              include the kitchen sink... but it's good for plumbing."
              

              Now as a primarily Emacs user I see nothing wrong with not following the UNIX philosophy, but at it is clear that NeoVIM has pushed away from that direction. And because that direction was an against their initial design it is reasonable for users that liked the initial design to criticism NeoVIM because moving further away from the UNIX philosophy.

              Not that VIM hadn’t already become something more than ‘just edit text’, take quickfix for example. A better example of how an editor can solve the same problem by adhering to the Unix Philosophy of composition through text processing would be Acme. Check out Acme’s alternative to quickfix https://youtu.be/dP1xVpMPn8M?t=551

              1.  

                akkartik, which part of my comment did you identify with? :) FWIW, I’m fond of you personally.

                I’d particularly appreciate a link to NeoVim criticism for being anti-Unix

                Every single Hacker News thread about Neovim.

                Were they similarly criticizing Vim?

                Not until I reply as such–and the response is hem-and-haw.

                1. 6

                  To be fair I don’t think the hacker news hive mind is a good judge of anything besides what is currently flavour of the week.

                  Just yesterday I had a comment not just downvoted but flagged and hidden-by-default, because I suggested Electron is a worse option than a web app.

                  HN is basically twitter on Opposite Day: far too happy to remove any idea even vaguely outside what the group considers “acceptable”.

                  1.  

                    Indeed, I appreciate your comments as well in general. I wasn’t personally insulted, FWIW. But this is precisely the sort of thing I’m talking about, the assumption that someone pushing back must have their identity wrapped up in the subject. Does our community a disservice.

                    1.  

                      OTOH, I spent way too much of my life taking the FUD seriously. The mantra-parroting drive-by comments that are common in much of the anti-systemd and anti-foo threads should be pushed back. Not given a thoughtful audience.

                      1.  

                        Totally fair. Can you point at any examples?

                        1.  

                          https://news.ycombinator.com/item?id=7289935

                          The old Unix ways are dying… … Vim is, in the spirit of Unix, a single purpose tool: it edits text.

                          https://news.ycombinator.com/item?id=10412860

                          thinks that anything that is too old clearly has some damage and its no longer good technology, like the neovim crowd

                          Also just search for “vim unix philosophy” you’ll invariably find tons of imaginary nonsense:

                          https://hn.algolia.com/?query=vim%20unix%20philosophy&sort=byPopularity&prefix&page=0&dateRange=all&type=comment

                          Please don’t make me search /r/vim :D

                          1.  

                            Thanks :) My attitude is to skip past crap drive-by comments as beneath notice (or linking). But I interpreted you to be saying FUD (about SystemD) that you ended up taking seriously? Any of those would be interesting to see if you happen to have them handy, but no worries if not.

                            Glad to have you back in the pro-Neovim (which is not necessarily anti-Vim) camp!

                            1.  

                              thinks that anything that is too old clearly has some damage and its no longer good technology, like the neovim crowd

                              That’s not saying that neovim is ‘anti-Unix philosophy’, it’s saying that neovim is an example of a general pattern of people rewriting and redesigning old things that work perfectly well on the basis that there must be something wrong with anything that’s old.

                              Which is indeed a general pattern.

                              1.  

                                That’s not saying that neovim is ‘anti-Unix philosophy’

                                It’s an example of (unfounded) fear, uncertainty, and doubt.

                                rewriting and redesigning old things that work perfectly well on the basis that there must be something wrong with anything that’s old.

                                That’s a problem that exists, but attaching it to project X out of habit, without justification, is the pattern I’m complaining about. In Neovim’s case it’s completely unfounded and doesn’t even make sense.

                                1.  

                                  It’s not unfounded. It’s pretty obvious that many of the people advocating neovim are doing so precisely because they think ‘new’ and ‘modern’ are things that precisely measure the quality of software. They’re the same people that change which Javascript framework they’re using every 6 weeks. They’re not a stereotype, they’re actual human beings that actually hold these views.

                                  1.  

                                    Partial rewrite is one of the fastest ways to hand off software maintainership, though. And vim needed broader maintainer / developer community.

                                    1.  

                                      Vim’s maintainer/developer community is more than sufficient. It’s a highly extensible text editor. Virtually anything can be done with plugins. You don’t need core editor changes very often if at all, especially now that the async stuff is in there.

                                      1.  

                                        You don’t need core editor changes very often if at all, especially now that the async stuff is in there.

                                        Which required pressure from NeoVim, if I understood the situation correctly. Vim is basically a one-man show.

                  2. 18

                    What is FUD is this sort of comment: the classic combination of comparing systemd to the worst possible alternative instead of the best actual alternative with basically claiming everyone that disagrees with you is a ‘slashdot markov chain’ or similar idiotic crap.

                    On the first point, there are lots of alternatives to sysvinit that aren’t systemd. Lots and lots and lots. Some of them are crap, some are great. systemd doesn’t have a right to be compared only to what it replaced, but also all the other things that could have replaced sysvinit.

                    On the second point, it’s just bloody rude. But it also shows you don’t really understand what people are saying. ‘I think [xyz] violates the unix philosophy’ is not meaningless. People aren’t saying it for fun. They’re saying it because they think it’s true, and that it’s a bad thing. If you don’t have a good argument for the Unix philosophy not matter, or you think systemd doesn’t actually violate it, please go ahead and explain that. But I’ve never actually seen either of those arguments. The response to ‘it violates the Unix philosophy’ is always just ‘shut up slashdotter’. Same kind of comment you get when you say anything that goes against the proggit/hn hivemind that has now decided amongst other things that: microsoft is amazing, google is horrible, MIT-style licenses are perfect, GPL-style licenses are the devil-incarnate, statically typed languages are perfect, dynamically typed languages are evil, wayland is wonderful, x11 is terrible, etc.

                    1. 9

                      claiming everyone that disagrees with you is a ‘slashdot markov chain’ or similar idiotic crap

                      My claim is about the thoughtless shoveling of groundless rumors. Also I don’t think my quip was idiotic.

                      there are lots of alternatives to sysvinit that aren’t systemd

                      That’s fine, I never disparaged alternatives. I said: systemd is good and I’m annoyed that the grumblers said it wasn’t.

                      1.  

                        It’s not good though, for all the reasons that have been said. ‘Better than what you had before’ and ‘good’ aren’t the same thing.

                        1.  

                          seriously. If you don’t kike systemd, use something else and promote its benefits. Tired of all the talking down of systemd. It made my life so much easier.

                          1.  

                            seriously. If you like systemd, use it and shut up about it. Tired of all the talking up of systemd as if it’s actually any better than its alternatives, when it is objectively worse, and is poorly managed by nasty people.

                            1.  

                              Have you watched the video this thread is about? Because you really sound like the kind of dogmatist the presenter is talking about.

                              If you like systemd, use it and shut up about it

                              Also, isn’t this a double-standard, since when it comes to complaining about systemd, this attitude doesn’t seem that prevalent.

                    2. 5

                      I think that the problem is fanboyism, echo chambers and ideologies.

                      I might be wrong, so please don’t consider this an accusation. But you writing this sounds like someone hearing that systemd is bad, therefore never looking at it, yet copying it. Then one tries it and finding out that baseless prejudices were in fact baseless.

                      After that the assumption is that everyone else must have been doing the same and one is enlightened now to see it’s actually really cool.

                      I think that this group behavior and blindly copying opinions is one of the worst things in IT these days, even though of course it’s not limited to this field.

                      A lot of people criticizing systemd actually looked at systemd, really deep, maybe even built stuff on it, or at least worked with it in production as sysadmin/devop/sre/…

                      Yes, I have used systemd, yes I understand why decisions we’re taken, where authors if the software were going, read specs of the various parts (journald for example), etc.

                      I think I have a pretty good understanding compared to at least most people that only saw it from a users perspective (considering writing unit files to be users perspective as well).

                      So I could write about that in my CV and be happy that I can answer a lot of questions regarding systemd, advocate its usage to create more demand and be happy.

                      To sum it up: I still consider systemd to be bad on multiple layers, both implementation and some ideas that I considered great but then through using it seeing that it was a wrong assumption. By the way that’s the thing I would not blame anyone for. It’s good that stuff gets tried, that’s how research works. It’s not the first and not the last project that will come out sounding good, to only find out a lot of things either doesn’t make a difference or make it worse.

                      I am a critic of systemd but I agree that there’s a lot of FUD as well. Especially when there’s people that blame everything, including own incompetence on systemd. Nobody should ever expect a new project to be a magic bullet. That’s just dumb and I would never blame systemd for trying a different approach or for not being perfect. However I think it has problems on many levels. While I think the implementation isn’t really good that’s something that can be fixed. However I think some parts of the concept level are either pretty bad or have turned out to be bad decisions.

                      I was very aware that especially in the beginning the implementation was bad. A lot got better. That’s to be expected. However next to various design decisions I consider bad I think many more were based on ideas that I think to most people in IT sound good and reasonable but in the specific scenarios that systemd is used it at least in my experience do not work out at all or only work well in very basic cases.

                      In other words the cases where other solutions are working maybe not optimal, but that aren’t considered a problem worth fixing because the added complexity isn’t worth it systemd really shines. However when something is more complex I think using systemd frequently turns out to be an even worse solution.

                      While I don’t wanna go into detail because I don’t think this is the right format for an actual analysis I think systemd in this field a lot in common with both configuration management and JavaScript frameworks. They tend to be amazing for use cases that are simple (todo applications for example), but together with various other complexities often make stuff unnecessarily complicated.

                      And just like with JavaScript frameworks and configuration management there’s a lot of FUD, ideologies, echochambers, following the opinion of some thought leaders, and very little building your own solid opinion.

                      Long story short. If you criticize something without knowing what it is about then yes that’s dumb and likely FUD. However assuming that’s the only possible reason for someone criticizing software is similarly dumb and often FUD regarding this opinion.

                      This by the way also works the reverse. I frequently see people liking software and echoing favorable statements for the same reasons. Not understanding what they say, just copying sentences of opinion leaders, etc.

                      It’s the same pattern, just the reversal, positive instead of negative.

                      The problem isn’t someone disliking or liking something, but that opinions and thoughts are repeated without understanding which makes it hard to have discussions and arguments that give both sides any valuable insides or learnings

                      Then things also get personal. People hate on Poetteing and think he is dumb and Poetteing thinks every critic is dumb. Just because that’s a lot of what you see when every statement is blindly echoed.

                      1.  

                        That’s nice, but the implication of the anti-systemd chorus was that sys v init was good enough. Not all of these other “reasonable objections” that people are breathless to mention.

                        The timbre reminded me of people who say autotools is preferrable to cmake. People making a lot of noise about irrelevant details and ignoring the net gain.

                        But you writing this sounds like someone hearing that systemd is bad, therefore never looking at it, yet copying it.

                        No, I’m reacting to the idea that the systemd controversy took up any space in my mind at all. It’s good software. It doesn’t matter if X or Y is technically better, the popular narrative was that systemd is a negative thing, a net-loss.

                      2.  

                        It violates unix philosohpy

                        That accusation was also made against neovim. The people muttering this stuff are slashdot markov chains, they don’t have any idea what they’re talking about.

                        i don’t follow your reasoning. why is it relevant that people also think neovim violates the unix philosophy? are you saying that neovim conforms to the unix philosophy, and therefore people who say it doesn’t must not know what they’re talking about?

                        1.  

                          are you saying that neovim conforms to the unix philosophy, and therefore people who say it doesn’t must not know what they’re talking about?

                          When the implication is that Vim better aligns with the unix philosophy, yes, anyone who avers that doesn’t know what they’re talking about. “Unix philosophy” was never a goal of Vim (”:help design-not” was strongly worded to that effect until last year, but it was never true anyways) and shows a deep lack of familiarity with Vim’s features.

                          Some people likewise speak of a mythical “Vim way” which again means basically nothing. But that’s a different topic.

                          1.  

                            vim does have fewer features which can be handled by other tools though right? not that vim is particularly unixy, but we’re talking degrees

                        2.  

                          The people muttering this stuff are slashdot markov chains, they don’t have any idea what they’re talking about

                          I’ll bookmark this comment just for this description.

                        1.  

                          The follow links don’t work, but it’s a cool idea!

                          1.  

                            The author knows about the issue, so I guess it will be fixed soon:

                            Also, since this is the early days, please know that there are downtimes when I’m desperately trying to fix things, probably right now!

                          1. 19

                            Over the last year I’ve made a transformation from being reluctantly acceptive of systemd, to strongly opposing it, to accepting it more fully. Interestingly this didn’t come from systemd itself, but a greater immersion in emacs that made me question the so-called “unix philosophy” – the fact that systemd wasn’t that relevant seems to me to reflect the issue and attitudes in general.

                            Nevertheless, or maybe even precisely because of it, I understand the problems people have with it. Special formats that doesn’t directly cooperate with the userland, isolated and non-trivially replaceable components and unexpected behaviours (something I do think *nix generally gets right) all are one the one hand an attempt to shed of legacy constraints, but at the same time make the appearance that systemd isn’t a component or something that is added, but something one has to submit to: just think about all the software that depends on a specific init system! (albeit, it can usually be circumvent).

                            To simply blame all of this on systemd seems to me an incomplete criticism, since systemd didn’t just pop up out of nowhere with the intention to provoke the greatest amount of graybeards. Real design issues, real legacy problems and real limitations which are to be found with a set of ideoms that resulted from quite a different environment, all had their influence. No solution is pretty or clean when the issue to begin with isn’t pretty of clean either.

                            1. 7

                              As far as Tech-newsletters go, I can really recommended the Nixers newsletter. If one reads sites like lobste.rs regularly, it may contain a few things one might have already seen, but especially if you were a bit more busy over the week, it’s a nice summary.

                              1. 1

                                I like the fringeness (is that a word?) of it. It feels it is off the mainstream and I often really like the quote of the week. A really well done newsletter!

                              1. 2

                                nice. I wonder if there’s a way to make one account that I can use on all of them.

                                1. 6

                                  Ehh, as far as I understand, that’s not the point. All these apps are the source code between instances, and instances federate + offering per-instance identities. Accounts can then use the instance federation to talk between one-another.

                                  And in the same way as you don’t have a mastodon account that’s valid on all instances, so you can’t have a “fediverse account” that’s valid over all “fediverse apps”.

                                1. 4

                                  btw there’s an app that I don’t see on this list: How might I go about finding a community of people that want to work together building a federated version?

                                  1. 5

                                    My guess would be to look for interested people on mastodon, since it’s currently the de-facto “center” of the fediverse, and there are plenty of tech-savy/developers on there.

                                    1. 2

                                      I mean, all the microblogging AP servers can talk to each other, doesn’t really matter which one you use to explore the fediverse.

                                    2. 3

                                      For now, Mastodon. But this is a project in itself that someone can take on!

                                      1. 1

                                        a federated version of what?

                                      1. 3

                                        Non-Fiction: I’ve just started A Field Guide to Genetic Programming, and I can at least say that the first part is understandable enough for a person with minimal experience. Additionally, I’m currently continuing The Rust Programming Language after having have taken a brake for a while.

                                        Fiction: Karl May’s “Durchs Wilde Kurdistan” and Kafka’s “Das Schloss”, both in german, both with longer breaks in between.

                                        1. 11

                                          The Plugin API

                                          I’d much rather use vimscript than Python for scripting vim. Vimscript is no stranger a language than many other domain-specific languages out there. And I’d definitely rather configure using vimscript than Python or elisp. Hmm, what’s a better way of swapping ; and ::

                                          (define-key evil-normal-state-map (kbd ";") 'evil-ex)
                                          (define-key evil-normal-state-map (kbd ":") 'evil-repeat-find-char))
                                          
                                          nnoremap : ;
                                          nnoremap ; :
                                          

                                          And while it was true at the time that vim was purely synchronous, it’s not true anymore. Can’t really hold that against the author, of course, because he wrote it in 2015, but certainly can hold that against the person that posted an outdated article.

                                          The Codebase

                                          Really doesn’t matter to anyone that isn’t developing it, and Vim doesn’t really need a lot of new development in my opinion, so I don’t care how slow it is to develop. It has async. Its development resources are being wasted on crap like terminal support within vim, which is not the right way to use the terminal from vim (use ctrl-z [do some terminal stuff] fg) anyway, so getting useless features added faster doesn’t seem important.

                                          In fact, out of all the developer communities I’ve encountered, Vim’s is the most hostile to change. Anything that isn’t a bug fix is frowned upon. Patches are often criticized for ridiculous reasons. After we posted our patch to the Vim-dev mailing list, the first reply was:

                                          Most developers of free software don’t particularly like it when people turn up with big unannounced patches they want merged, with no previous history of contribution. I don’t know if the latter is true, but it probably is. It usually is. Who wants a bunch of code foisted upon them, in a different style from what they’re used to and what the project has, that they then have to maintain?

                                          Does Neovim clean stuff up? Sure. But it cleans stuff up by removing support for the clipboard and incompletely reimplementing half of it.

                                          NOTE: Don’t use ANSI style function declarations. A few people still have to use a compiler that doesn’t support it.

                                          Regardless of whether this is a reasonable comment to make (and I personally think that without some evidence that it’s untrue, you shouldn’t really criticise it, as vim’s developers probably know its userbase better than you), I’m sure this has probably been mentioned elsewhere or should be obvious from the fact that that’s how the rest of the codebase does it! The number one rule of coding style is to maintain similarity with nearby code. If a codebase uses a particular style, even if it’s not the style you like, just go with it.

                                          And for what it’s worth, often the pre-ANSI style function definitions are much nicer to read. float foo(x, y, z) float x, y, z; { ... } rather than float foo(float x, float y, float z) { ... } - why should you have to write float thrice?

                                          The rest of that thread is me being as civil as possible, despite discouragement at every turn. The replies might as well be a paint-by-numbers guide on how to alienate new contributors.

                                          What you call ‘async’ isn’t even proper async, it’s just ‘delay actually doing this action that still blocks the UI for an amount of time’. Could you in theory use that to implement something to poll an external process? Sure. Is that a good way to implement asynchronous communication with external processes in a text editor? I really don’t think so. That is brought up in the thread and then it looks like the person that posted the original patch basically never says anything in the rest of the thread.

                                          Skimming the thread, it sounds like there were a lot of issues with the original patch, and they were pointed out, and you changed things in response to them. But you definitely can’t claim as you do in this article that you were strung along making changes then finally told it wouldn’t do. He said from the start that he was very retiscent about making those changes because they were error-prone and likely to cause lots of issues in the future. That’s pretty clear signalling that it’s unlikely that your changes will make it in.

                                          1. 7

                                            Really doesn’t matter to anyone that isn’t developing it, and Vim doesn’t really need a lot of new development in my opinion, so I don’t care how slow it is to develop.

                                            It’s funny when people admit this kind of stuff because it means (1) they haven’t (deeply) followed vim_dev for much time, and (2) their opinion doesn’t matter to anyone who actually isn’t happy with the status quo.

                                            often the pre-ANSI style function definitions are much nicer to read

                                            Vim switched to ANSI later, anyways. Bram very well knows the importance of keeping developers happy.

                                            Personally, my main complaint about Vim’s development is that Bram doesn’t trust his own “core” developers (there are about two or three–or zero if you’re looking for anyone besides Bram with a deep understanding of the eval, input, or event-loop subsystems).

                                            1. 2

                                              Bram very well knows the importance of keeping developers happy.

                                              is that Bram doesn’t trust his own “core” developers

                                              These points disagree with each other I feel.

                                              Sounds like it “doesn’t matter” until it does. That is, when everybody else but Bram needs Bram out of the way.

                                            2. 4

                                              And I’d definitely rather configure using vimscript than Python or elisp. Hmm, what’s a better way of swapping ; and ::

                                              (define-key evil-normal-state-map (kbd ";") 'evil-ex)
                                              (define-key evil-normal-state-map (kbd ":") 'evil-repeat-find-char))
                                              
                                              nnoremap : ;
                                              nnoremap ; :
                                              

                                              Things like nnoremap always deterred me from doing any serious vim configuration, and is in my eyes a quite good example for why I don’t like vim script.

                                              From a programmers perspective, it’s at the very least confusing. What I read is “ rebind : to ; (or the other way around?), then do the same with they keys ; and :…” but wait, shouldn’t that make both keys do the same thing, since I just redefined : (or ;)? Or is this just some rerouting mechanism, a sort of compatibility layer between my vim and the real vim?

                                              And as a frivolous emacs apologist, I’d like to give a practical example why I consider elisp to be better, while keeping in mind that I’m not remotly a elisp expert:

                                              (defun swap-keys (kb1 kb2 &optional map)
                                                 "Swap the functions behind KB1 and KB2 in MAP"
                                                 (interactive "kFirst key: \nkSecond key: ")
                                                 (let* ((m (or map (current-global-map))
                                                        (f1 (lookup-key m kb1))
                                                        (f2 (lookup-key m kb2)))
                                                   (define-key m kb1 f2)
                                                   (define-key m kb2 f1)))
                                              

                                              Now I have a function for swapping key bindings, which I think is useful if there is a real need to swap keybindings all the time. And not only can anyone with any lisp experience get what’s going on here, it’s also interactively usable via M-x swap-keys. When I include the time it took to find the function lookup-key and the interactive formatting, it all took me about 5 minutes. And again, I really don’t do much elisp, but IMO much more elegant.

                                              (Your pervious example would then become (swap-keys ":" ";" 'evil-normal-state-map))

                                            1. 3

                                              huh?

                                              1. 2

                                                In case there are problems with the rendering of the page, this is a “Dweb” example: a distributed version of the the Internet Archive (I used the title auto-generator, so “in the browser” might have not been the best title…).

                                                As far as I see, issues can be reported here: https://docs.google.com/forms/d/e/1FAIpQLSe7pXiSLrmeLoKvlDi2wODcL3ro7D6LegPksb86jr5bCJa7Ig/viewform

                                              1. 1

                                                Premature optimization is the root of all evil

                                                • C.A.R. Hoare

                                                Wasn’t that Knuth?

                                                1. 2

                                                  Knuth said he was quoting Hoare, although Hoare denied it?

                                                1. 3

                                                  Trying to finish an update for my regular expression game, since people have been mentioning that it’s too easy.

                                                  Already got rid of 1000 (out of 1900) lines of code over the last few days.

                                                  1. 1

                                                    Your project homepage link gives me a 403 from the github README.

                                                    1. 1

                                                      ^^ Well, I am still working on it. I’m going to set the homepage up as soon as I have a more or less stable version I can properly document.

                                                      Until then, the old README might help.

                                                  1. 23

                                                    “It is difficult to get a [web developer] to understand something, when [their] salary depends on [them] not understanding it.”

                                                    ― Upton Sinclair

                                                    1. 4

                                                      My back looks like a pin cushion from all the arrows I received over the years fighting for web that would be more ethical and void of mostly useless crap. Some battles won, too many lost. I lost one just yesterday, but it didn’t occur to me that it was because of my money-induced blindness.

                                                      I actually like this quote and have used it myself before, but while I met many web developers over the years who didn’t care about bullshit described in the article, almost all of them didn’t simply because they were either ignorant of available technologies, didn’t care much about quality of anything they did and most often both.

                                                      1. 1

                                                        Some battles won, too many lost.

                                                        What were some of the wins?

                                                        1. 4

                                                          Example of a small recent one would be Klevio website (as it currently exists, less so after today). I am not linking to it because I don’t want referrals from Lobsters to show up in website’s logs, but is trivial to find.

                                                          Almost everything on this website works with Javascript turned off. It uses Javascript to augment experience, but does not needlessly rely on external libraries. Should work reasonably well even on poor connections. Does not track you and still has a privacy policy handling that tries to be closer to the spirit of GDPR then to what you may get away with.

                                                          It would certainly be easier for me and faster to develop (cheaper for company) if I just leaned on existing tools, build yet another SPA and have not spent more than a week arguing with lawyers about what is required.

                                                          Alas, because unsurprisingly most people do not opt-in to analytics, I am now working on a different confirmation dialog, more in line with what others are doing. It will still be better than most, but certainly more coercive than current.

                                                          And this is in a company that is, based on my experience, far more conscientious about people’s privacy than others I worked for.

                                                          1. 1

                                                            It would certainly be easier for me and faster to develop (cheaper for company) if I just leaned on existing tools, build yet another SPA and have not spent more than a week arguing with lawyers about what is required.

                                                            Is this really true? Not to downplay your craft but I always thought tinkering with HTML/CSS until things look right would be way easier than learning a separate library.

                                                            I checked out that website and it’s pretty refreshing that stuff actually works. If you want a little constructive feedback, the information density is very low especially on a desktop computer with a widescreen monitor. I have to scroll down 7 screens to get all the information, which could have fit on a single screen. Same with the “about us” page. I notice the site is responsive, giving a hamburger when you narrow your window, so maybe the “non-mobile” interface could be more optimized for desktop use.

                                                            1. 1

                                                              I don’t think it is in every case, but in this one I think it would be since everything was handwritten without picking up existing solutions for things like galleries. If you mean the SPA part, then I guess it becomes more moot. It would probably be about the same doing the first implementation, but this one, which is basically a bunch of static files, certainly has a higher cost of maintenance because we (I) didn’t get around to finishing it so page “components” still have to be manually copied to new files and updated everywhere when their content changes. The plan was to automate most of this, but we haven’t spent the time on it yet.

                                                              I agree with everything in the second paragraph. Regretfully that is one of those battles lost.

                                                              1. 1

                                                                so what do your managers feel is the benefit of having such low information density? how do these decisions get made?

                                                                1. 1

                                                                  If I remember correctly it was because it supposedly looks modern, clean and in-line with company’s brand. It has been a while so my memory is fuzzy on this.

                                                      2. 2

                                                        I’ve heard this a few times already, but I’ve never quite understood what the implication is. What precisely are web developers not understanding? I get the default examples (eg. oil companies funding environmental research), but just can’t see the analogy in this case.

                                                        1. 22

                                                          You’re on week three of your new job at a big city ad and design firm. Getting that first paycheck was nice, but the credit card bill from the moving expenses is coming up, that first month of big city rent wiped out your savings, and you don’t really have a local personal network to find new jobs. The customer wants a fourth “tag” for analytics tracking. Do you:

                                                          1. Put it in
                                                          2. Engage in a debate about engineering ethics with your boss and his boss (who drives a white Range Rover and always seems to have the sniffles after lunch) culminating with someone screaming and you storming out, never to return?
                                                          1. 8

                                                            Web devs know that auto play videos and newsletter pop ups are annoying but annoying people is profitable

                                                        1. 1

                                                          This is way too much attention for a teen. I mean what if their idea is wrong in some small way. pop

                                                          1. 8

                                                            If someone of the caliber of Scott Aaronson is sufficiently convinced you are right to put his name on the paper, there is no shame in being wrong. No one in the field would hold that against Tang if it turned out to be wrong.

                                                            I fail to see what being a teen has to do with anything. If he was a year older, or already in grad school, it would have been fine?

                                                            To me that sounds like an argument from the same visceral response I have to these kinds of stories: jealousy. I really have to suppress the urge to rain on his parade. And doing that via arguments that seem to have someone’s best interest in mind is the socially safest way to do so. It’s a way of stealthily sabotaging someone’s accomplishment.

                                                            1. 3

                                                              I think what voronoipotato may have been alluding to was that aside from that age largely being turmoil for emotions as they learn to deal with them. Teenagers aren’t as battle hardened as adults and having so much attention plastered upon them for it to suddenly turn nasty can be a massive blow emotionally and without the right support can end up dissuading them from continuing.

                                                              It sounds like the teen will be fine, with someone like Scott Aaronson on the same team - even if the idea turns out to be flawed they will have all the support they need to continue.

                                                              1. 3

                                                                Exactly, to be precise the problem I had was with the article pushing Tang into the limelight and not the research Tang contributed to. The research is fine.

                                                              2. 3

                                                                I’m not jealous at all. I don’t have any desire to get into academia or compete in that way. I stopped with a community college degree. The difference a few years can make at that age in emotional development is pretty big. Also they have other past successes however small to fall back on. Some people have one big (perceived) catastrophic failure at the beginning and they give up, and they never come back. More importantly, notoriety isn’t Tang’s accomplishment. Saying that they shouldn’t be forced into the limelight on their first attempt isn’t saying they should never have had the opportunity to submit or contribute to scientific progress.

                                                              3. 6

                                                                Once Tang had completed the algorithm, Aaronson wanted to be sure it was correct before releasing it publicly. “I was still nervous that once Tang put the paper online, if it’s wrong, the first big paper of [Tang’s] career would go splat,” Aaronson said.

                                                                The article specifically mentions that point.

                                                                1. 2

                                                                  Yeah I don’t see how that makes it any better.

                                                              1. 1

                                                                Isn’t this quite a lot of boiler-plate code for something rather simple?

                                                                1. 1

                                                                  Whoops, forgot about this comment. I mean, there’s some boilerplate… but I’m not really sure what I could get rid of. I’ve seen worse.

                                                                  1. 1

                                                                    Well the whole node part, or am I mistaken? As far as I understand it, you’re just selecting a random file (image) from a directory to server for each HTTP request, no? It’s been a while since I used perl, but I suspect that this could be trivially done with a simple CGI script. Python and Go could even use their standard library, requiring no library dependencies, codes of conduct, contribution guidelines, package managment settings, etc.

                                                                    1. 1

                                                                      Oh I see. I mean, I suppose. I’m not familiar with writing CGI scripts, which is why I didn’t go that route. This could pretty easily be rewritten to not depend on Express, but I chose to use Express anyway just because it saved a little typing and because I’m used to it. The code of conduct I just copied from another project of mine and the contributing guidelines don’t really have a lot to do with the specifics of the code. I think you’d still want both those things regardless of language or whether you were using the standard library.

                                                                1. 37

                                                                  I’ve been very happy with pass, a command-line tool that stores passwords and notes in a git repository. Being a directory of text files, it’s easy to use standard command-line tools on or tinker with programmatically. There’s a thriving ecosystem of plugins, tools, and clients.

                                                                  I also use autopass for autofilling in X applications. As time goes in, I fill in more and more autotype fields to check ‘remember me’ boxes and other non-standard fields. It’s really convenient. (One annoyance is that if any password files are not valid YAML, autopass errors to stdout without opening a window, so I hit my hotkey and nothing happens.)

                                                                  1. 11

                                                                    One more vote for pass, i’ve been a happy user for years now. Was missing a proper browser extension for it so I built one: Browserpass. It’s no longer maintained by me due to lack of time, but the community is doing a far better job at maintaining it than I possibly could so that’s all good!

                                                                    1. 10

                                                                      Pass looks pretty neat, but the reason I stick with KeePass(XC) is that Pass leaks metadata in the filenames - so your encryption doesn’t protect you from anyone reading the name of every site you have an account with, which is an often overlooked drawback IMO.

                                                                      1. 5

                                                                        Your filenames don’t have to be meaningful though. It would be relativity trivial to extend pass to use randomly generated names, and then use an encrypted key->value file to easily access the file you want.

                                                                        On the other hand, if someone already has that access to your device, accessing ~/.mozilla/firefox/... or analogous other directories with far more information is just as trivial, and has probably more informational value.

                                                                        1. 3

                                                                          Then youre working around a pretty central part of pass’s design, which I don’t really like. It should be better by default.

                                                                          wrt your second point, if you give up when they can read the filesystem, why even encrypt at all? IMO the idea is you should be able to put your password storage on an untrusted medium, and know that your data are safe.

                                                                          1. 12

                                                                            if you give up when they can read the filesystem, why even encrypt at all?

                                                                            Because in my opinion, there’s a difference between a intruder knowing that I have a “mail” password, and them actually knowing this password.

                                                                      2. 5

                                                                        The QR code feature of pass is neat for when you need to login on a phone.

                                                                        1. 2

                                                                          Huh, you made me read the man page and learn about this - it’s really cool! What’s your usage like for this though? Just use any barcode reader and then copy paste in the password box?

                                                                          1. 1

                                                                            A barcode reader I trusted, but yeah - its a good hack because I usually have my laptop which has full disk encryption.

                                                                            1. 2

                                                                              Yeah, when you said that all I could think of was the barcode scanner that I used to use where it would store the result of each barcode scanned in a history file… Not ideal :)

                                                                        2. 2

                                                                          Seems like the android version’s maintainer is giving up. (Nice, 80k lines of code in just one dep…)

                                                                          The temptation to nih it is growing stronger but I don’t have enough time :(

                                                                        1. 16

                                                                          Advertising has always been about manipulating people into buying stuff they likely don’t need. It’s a bit coercive. In the days of mass media, advertisers used mass psychology to sell product to a mass audience. The media landscape has changed. With the arrival of personalized media, advertisers are going to try to build a psychological profile of the target (that means you and me) and use individual psychology to try and sell stuff that the target most likely doesn’t need. Same game, different techniques. The difference between this and advertising in the age of mass media is the sheer invasiveness and ubiquity that advertising now takes.

                                                                          1. 8

                                                                            It has also been about announcing the availability of products and making innovations known outside eg. journals. Stuff people may need.

                                                                            I’m not defending modern advertising, or all old advertising, but the ads of old were a lot more understandable in how and what kinds of reactions they were trying to evoke. You could reason your way around an ad for cigarettes, but you can’t reason your way around invisible yet targeted ad networks.

                                                                            So this communist-Cuba approach to advertising is understandable, but calling it just another technique is a bit harsh and underestimates the audience.

                                                                            I’d even go so far as to say the inefficiency of classifieds and such are a self-regulatory system, which should not be removed lest more and more people do believe they need a new microwave oven every year.

                                                                            1. 3

                                                                              “but calling it just another technique is a bit harsh and underestimates the audience.”

                                                                              I don’t know. They’d have done it in the past if they were allowed. They’ve usually been about whatever gets them the most dollars now or later. Tech and people’s habits finally let them do what they always dreamed of doing.

                                                                              1. 2

                                                                                Sure, I suppose, maybe.

                                                                                Low-tech ads have not had highway billboard tracking or any of that stuff. So if Charles Babbage had constructed the ad networks of today for newspapers in the 1800s, the case could still be argued for a dumber way of handling the better minority of advertising.

                                                                                It is good that tech has also given us better ways of spreading information and reviews about products, just if we could keep the ad networks at bay.

                                                                                1. 1

                                                                                  It is good that tech has also given us better ways of spreading information and reviews about products, just if we could keep the ad networks at bay.

                                                                                  This creates a new problem. Lets say we suddenly lived in a advertising free world. So, how would you find out about products … various intermediates. These intermediates are easy to pay off, as they are few in number and you STILL have to get your message to them. So instead of advertising to the masses, you advertise by putting your product announcement in the trunk of a new Telsa and sending a Telsa to each of the meaningful reviewers… cheaper and higher impact.

                                                                            2. 4

                                                                              If anyone is interested in a more detailed history of the topic, I can recommend Curtis’ The Century of the Self. Even though it’s quite informative, it’s easy to follow along.

                                                                            1. 7

                                                                              As usual with decentralized systems, the main problem I had was discovering good feeds. One could find stuff, if one knew what one was looking for, but most of the time these feeds only contain the first few lines of a article. And then again, there are other feeds that just post too much, making it impossible to keep up. Not everyone is coming to RSS/Atom which a precomposed list of pages and websites they read.

                                                                              These are the “social standards”, which I belive are just as important as the technical standards, which should have to be clarified in a post like this one.

                                                                              1. 6

                                                                                I agree. Finding good feeds is difficult indeed, but I believe that good content does spread by word at some point (it may even be word in social media, actually). Feeds that post too much are definitely a problem. Following RSS/Atom feeds of newspapers specifically defeats the purpose. Nobody can manage this hilarious amount of posts, often barely categorised. I don’t have a solution for these at hand; this article suggests that the standard should be improved on this. It might be a good idea to do so.

                                                                                Excerpt feeds I don’t like, because they are hard to search using the feed reader’s search facilities. I however still prefer an excerpt feed over no feed at all, which is why the article mentions this as a possible compromise. The main reason for excerpt feeds appears to be to draw people into the site owner’s Google Analytics.

                                                                                1. 3

                                                                                  As far as unmanageably large&diverse sites go, I seem to recall at The Register you can/could run a search and then get an RSS feed for current and future results of that query. Combined with ways to filter on author etc. that worked a treat.

                                                                                2. 2

                                                                                  the main problem I had was discovering good feeds

                                                                                  This is why my killer feature (originally of GOOG Reader and now of NewsBlur) is a friends/sharing system. The value of shared content is deeply rooted in discovery of new feeds.

                                                                                  feeds only contain the first few lines of a article

                                                                                  Modern feed readers generally support making it easy to get full articles / stories without a context switch.

                                                                                  feeds that just post too much, making it impossible to keep up

                                                                                  Powerful filtration is also another place where modern readers have innovated. Would definitely check them out, because these are solved problems.

                                                                                  1. 2

                                                                                    Can you recommend any specific readers?

                                                                                    1. 1

                                                                                      NewsBlur is pretty great. It’s a hosted service, rather than a local application, but that’s kind of necessary for the whole “sharing” thing.

                                                                                      1. 1

                                                                                        If you’re an emacs user: elfeed. It has pretty good filtering and each website can be tagged.

                                                                                        1. 1

                                                                                          I tried that for a while, but eventually I just couldn’t keep up. I never really have the time to read an article when I’m in Emacs, since usually I’m working on something.

                                                                                        2. 1

                                                                                          I have been quite pleased with NewsBlur. It has the added benefit of being open source, so if it were to disappear (cough, cough, GOOG Reader), it could easily be resurrected.

                                                                                          For the social aspect, of course, might want to poll friends first to see what they are on.

                                                                                    1. 2

                                                                                      I’m working on a watch2gether clone, that uses youtube-dl as a backend: doji [dot] us [dot] .to. I’ve made quite some progress on this, considering that I just started 2 days ago.

                                                                                      The style isn’t modern (intentionally), but it’s rather lightweight and reasonably fast in my experience. There are still a few bugs and rough UX aspects, which have to be though through, commands implemented and some limits have to be set up. Will probably publish the source as soon as I fix a accidental git --reset hard.

                                                                                      1. 1

                                                                                        While I am sympathetic to this approach in general, I think that there’s a reason that Frameworks are developed and adopted, mainly because (as it seems to me) 75% of all the problems one encounters are the same. How many services transform SQL queries into some sort of HTML? What we call “the web” has lost it’s real connection to the WWW long ago. And ultimately it’s potential is to blame.

                                                                                        Connected to that issue, the WWW is a great example of legacy standards stacking themselves one over another. I was just working on a project with pure js, and I had to look up, since I usually don’t do webdev, how cookies are managed… and it isn’t pretty. But one has to say, the author is right, things are getting better. Especially with HTML and CSS. JavaScript will probably take a bit longer, but until all of this finishes and the standards proliferate, who knows what new ideas and desires the web designers and managers will have? Probably won’t be brutalism.

                                                                                        1. 11

                                                                                          Git via mail can be nice but it’s very hard to get used to. It took me ages to set up git send-email correctly, and my problem in the end was that our local router blocked SMTP connections to non-whitelisted servers. This is just one way it can go wrong. I can inagine there are many more.

                                                                                          And just another minor comment: Everyone knows that Git is decentralized (not federated, btw.), the issue is GitHub, ie the service that adds a certain something to version control, like profiles, stars, commit-stats, fork-counts, followers,etc. A one-sided, technical perspective ignores all of these things as useless and unnecessary – falsely. Centralized platforms have a unfair benefit in this perspective, since there’s only one voice, one claim and no way to question it. One has to assume they make sure that the accounts are all real, and not spam-bots, otherwise nothing makes sense.

                                                                                          To overcome this issue, is the big task. And Email, which is notoriously bad at any identity validation, might not be the best thing. To be fair, ActivityPub, currently isn’t either, but the though that different services and platforms could interoperate (and some of these might even support a email-interface) seems at the very least interesting to me.

                                                                                          1. 12

                                                                                            Article author here. As begriffs said, I propose email as the underlying means of federating web forges, as opposed to ActivityPub. The user experience is very similar and users who don’t know how to or don’t want to use git send-email don’t have to.

                                                                                            Everyone knows that Git is decentralized (not federated, btw.)

                                                                                            The point of this article is to show that git is federated. There are built in commands which federate git using email (a federated system) as the transport.

                                                                                            GitHub, ie the service that adds a certain something to version control, like profiles, stars, commit-stats, fork-counts, followers,etc. A one-sided, technical perspective ignores all of these things as useless and unnecessary – falsely

                                                                                            Profiles can live on sr.ht, but on any sr.ht instance, or any instance of any other forge software which federates with email. A person would probably still have a single canonical place they live on, and a profile there which lists their forks of software from around the net. Commit stats are easily generated on such a platform as well. Fork counts and followers (stars?) I find much less interesting, they’re just ego stroking and should be discarded if technical constraints require.

                                                                                            1. 4

                                                                                              I don’t think that’s a strong argument in favor of git being federated. I don’t think it matters either.

                                                                                              Git in of itself does not care about the transport. It does not care whether you use HTTP, git:// or email to bring your repo up to date. You can even use an USB stick.

                                                                                              I’d say git is communication format agnostic, federation is all about standardizing communication. Using email with git is merely another way to pipe git I/O, git itself does not care.

                                                                                              1. 2

                                                                                                git send-email literally logs into SMTP and sends a patch with it.

                                                                                                git am and git format-patch explicitly refer to mailboxes.

                                                                                                Email is central to the development of Linux and git itself, the two projects git is designed for. Many git features are designed with email in mind.

                                                                                                1. 4

                                                                                                  Yes but ultimately both do not require nor care about federation itself.

                                                                                                  send-email is IMO more of a utility function, git am or format-patch, which as you mention go to mailboxes, have nothing to do with email’s federated nature. Neither is SMTP tbh, atleast on the Client-Server side.

                                                                                                  They’re convenience scripts that do the hard part of writing patches in mails for you, you can also just have your mailbox on a usb stick and transport it that way. And the SMTP doesn’t need to go elsewhere either.

                                                                                                  I guess the best comparison is that this script is no more than a frontend for Mastodon. The Frontend of Mastodon isn’t federated either, Mastodon itself is. Federation is the server-to-server part. That’s the part we care about. But git doesn’t care about that.

                                                                                                  1. 9

                                                                                                    I see what you’re getting at. I have to concede that you are correct in a pedantic sense, but in a practical sense none of what you’re getting at matters. In a practical sense, git is federated via email.

                                                                                                  2. 3

                                                                                                    That various email utilities are included seems more like a consequence of email being the preferred workflow of git developers. I don’t see how that makes it the canonical workflow compared to pulling from remotes via http or ssh, git has native support for both after all.

                                                                                                2. 1

                                                                                                  I belive that @tscs37 already showed that Git is distributed, since all nodes are equal (no distinction between clinets and servers), while a git networks can be structured in a federated fashion, ir even in a centralized one. What the transport medium has to do with this is still unclear in my view.

                                                                                                  Fork counts and followers (stars?) I find much less interesting, they’re just ego stroking and should be discarded if technical constraints require

                                                                                                  That’s exactly my point. GitHub offers a unit-standard, and easily recognisable and readable (simply because everyone is used to it). This has a value and ultimately a relevance, that can’t just be ignored, even if this reason is nonsense. It would just be another example of technical naïve.

                                                                                                  I’ve shown my sympathy for ideas like these before, ad I most certainly don’t want to make the impression of a GitHub apologist. All I want to remind people is that the Social aspect beyond necessity (builds, issue trackers, …) are all things one has to seriously consider and tackle when one is interested in offering an alternative to GitHub, with any serious ambitions.

                                                                                                  1. 1

                                                                                                    I don’t think sr.ht has to please everyone. People who want these meaningless social features will probably be happier on some other platform, while the veterans are getting work done.

                                                                                                    1. 1

                                                                                                      I’m fine with people using mailing-list oriented solutions (the elitism might be a bit off-putting, but never mind). I just don’t think that it’s that much better than the GitPub idea.

                                                                                                      People who want these meaningless social features will probably be happier on some other platform, while the veterans are getting work done.

                                                                                                      If having these so-called “meaningless social features” helps a project thrive, attract contributers and new users, I wouldn’t conciser these meaningless. But if that’s not what you are interested in, that’s just ok.

                                                                                                3. 2

                                                                                                  our local router blocked SMTP connections to non-whitelisted servers

                                                                                                  The article says that sr.ht can optionally send the emails for you, no git send-mail required: “They’ll enter an email address (or addresses) to send the patch(es) to, and we’ll send it along on their behalf.”

                                                                                                  Also what mail transfer agent were you pointing git send-mail at? You can have it send through gmail/fastmail/etc servers – would your router block that?

                                                                                                  GitHub […] adds a certain something to version control, like profiles, stars, commit-stats, fork-counts, followers

                                                                                                  How about mirroring code on github to collect stars? Make it a read-only mirror by disabling issues and activating the pull request rejection bot. Git, Linux, and Postgres do this, and probably other projects do too.

                                                                                                  Email […] is notoriously bad at any identity validation

                                                                                                  Do SPF, DKIM and DMARC make this no longer true, or are there still ways to impersonate people?

                                                                                                  1. 1

                                                                                                    Also what mail transfer agent were you pointing git send-mail at?

                                                                                                    Fastmail. Was too esoteric for the default settings of my router. And if it weren’t for support, I would have never guessed that that was the issue, since the whole interface is so alien to most people (just like the questions: did I send the right commits, is my message formatted correctly, etc.)

                                                                                                    How about mirroring code on github to collect stars? Make it a read-only mirror by disabling issues and activating the pull request rejection bot. Git, Linux, and Postgres do this, and probably other projects do too.

                                                                                                    I’m not saying it’s perfect (again, I’m no GitHub apologist) – my point is that it isn’t irrelevant!

                                                                                                    Do SPF, DKIM and DMARC make this no longer true, or are there still ways to impersonate people?

                                                                                                    Yes, if someone doesn’t use these things. And claiming “oh, but they just should” is again raising the entry barrier, which is just too high the way it already would be.

                                                                                                    1. 1

                                                                                                      Yes, if someone doesn’t use these things. And claiming “oh, but they just should” is again raising the entry barrier, which is just too high the way it already would be.

                                                                                                      This doesn’t damn the whole idea, it just shows us where open areas of development are.