1. 10

    See also Tomu, a similar project which fits an ARM cortex computer inside your USB port and has freely-licensed specs: https://tomu.im (by one of the co-creators of the Novena open-hardware laptop)

    1. 4

      The only thing which stops me from diving into Emacs is a reliable terminal emulator. I know ansi-term, but I also know its bugs, like completely ignoring window size change and SIGWINCH forwarding.

      1. 6

        I went “full Emacs” some months ago, when I switched to Eshell as my main shell… I recommend giving it a try! I’ve not opened a regular terminal since, I think.

        Edit: the above was possible because over time Emacs has supplanted my other usages of a terminal:

        • Magit
        • mu & mu4e for email
        • ag-mode as grep replacement
        • dired for file/directory exploration
        • TRAMP for accessing remote files (as we’ve migrated to ephemeral machines without ssh access I don’t really use this any more)
        1. 2

          But you’re probably not working with numerous remote machines, mainly baremetal, with no ability to safely export configuration files / profile to the destination user. I know TRAMP, but it’s not about remote file access, but remote execution/support.

          Also, even if I want to go “full Emacs”, there are still some advanced n/curses application which I don’t or can’t leave at all, often on these “remote machines”.

          Let’s say I just want a proper terminal emulation in Emacs – ansi-term is quite close to that. but it fails in full-screen sessions (basically misinterpreting/dropping ECMA “escape” codes), as well as missing SIGWINCH forwarding I mentioned. Of course I don’t force anyone to write it exclusively for me, but I’m kinda shocked there’s still no proper support for complete VT100/VT5xx capabilities in GNU Emacs, as it’s about 30+ years old.

          1.  

            but I’m kinda shocked there’s still no proper support for complete VT100/VT5xx capabilities in GNU Emacs, as it’s about 30+ years old.

            I think this is due to the fact that for most commonly-used ncurses programs, it’s both less work and more benefit to just write a pure-elisp frontend and skip the curses UI entirely. Obviously doesn’t work for all obscure curses programs out there, but I think that has a lot to do with why ansi-term hasn’t had these shortcomings fixed.

          2. 1

            It’s important to note that Eshell was not meant as a shell replacement by its authors, but as a way to easily get output from commands to a buffer, so it is very limited in features.

            That said, if it works for you, you do you!

            1.  

              Do you have a cite for that? I’d believe that was true at one point, but it’s certainly not the case any more; it is a very full-featured shell these days.

              1.  

                It used to be here, but it appears to not be there anymore! I rescind my statement.

          3. 5

            That’s a rather unconventional complaint about Emacs; normally it’s the other way around (“why would I want a terminal in my text editor?”) ;)

            You mentioned ansi-term, and others have mentioned Eshell, so I thought I’d mention that I use shell-mode for most commandline stuff. It’s a “dumb” terminal and hence can’t handle things like curses, but that lets it act more like a normal Emacs buffer (e.g. I can navigate and edit the content, without the terminal or running command intercepting my keypresses). It seems to handle window size changes and SIGWINCH perfectly well (i.e. ROWS and COLUMNS get updated).

            You’re right that Emacs is pretty bad at non-dumb terminals, like with ansi-term. I don’t bother with those modes at all and use a separate terminal (st + dtach + dvtm) for things which need that, like curses applications (that’s also much faster!). IMHO the value of Emacs is to have a standard way to navigate/search/edit buffers of text (plus easy scripting). TUIs like curses are more like character-based graphics than actual text, they’re not meant to be user navigable or editable (it will mess us the display and changes might get overwritten). Likewise applications which control user interaction (e.g. capturing key presses) don’t work well with the unified way of doing things (keybindings, etc.) that Emacs imposes.

            Note that there are many ways to do things with Emacs, so if terminals are your main pain point you could try (if you haven’t already) different mixes of components. For example, you could try running Emacs inside a terminal, or inside screen/tmux/dvtm so your terminals are alongside Emacs rather than inside it. You could use emacsclient/emacs –daemon to have multiple instances connected to a single session. You mention TRAMP in another comment; note that it can handle remote shells as well as just files. This is most obvious in eshell, where we can do cd /ssh:user@remote:/home/user and carry on as normal, with TRAMP sending our commands over to the remote machine. If we’re connected to a remote machine with TRAMP (e.g. in eshell, or dired) when we run M-x shell the resulting shell will be running on that machine, and things like tab-completion for filenames will be sent over TRAMP.

            1. 2

              This is probably the most comprehensive answer I’ll find in the web to this date, thank you :)

              But, in shell-mode (M-x shell) $COLUMNS and $LINES aren’t updated at all. However, they do in M-x eshell. Pretty weird considering that first one knows a bit about ANSI/ECMA, while eshell does not.

              TRAMP is a very nice tool even if I didn’t knew about remote execution, but now seems to be even better, thanks again :)

              But still, sometimes I have the need to spawn these curses applications so I’m constantly looking for the alternative options - running external terminal emulator seems to be trade-off, but it’s still “out of the block” in Emacs world. And, when diving into Emacs, I took the “use Emacs for (almost) everything” approach as I think it should be taken this way.

              There’s a thing about XEmbed, but I can’t find any reliable docummentation, seems to be experimental feature yet.

              That EXWM might be great with xterm being fed by ELisp-structured data parsed into X resources, but it’ll require some additional code :)

            2. 5

              One option is to use Emacs as a window manager via EXWM—then you can have an xterm as a buffer!

              1. 1

                I could web-search for it, but I’d rather ask a person: is that one based on xwidget?

                1. 4

                  It’s actually just a window manager written in Emacs Lisp using a pure Emacs Lisp implementation of the X11 protocol!

                  1. 1

                    Ah, like StumpWM, except elisp instead of common lisp.

                  2. 1

                    No, it is a completely unrelated project

                2. 1

                  What specifically do you need terminal emulation for? In my experiance curses applications (like WICD) worked well enough, maybe being slightly slugish.

                1. 8

                  I used to be against this, but with the exceptions for non-commercial services, I’m leaning the other way.

                  1. 3

                    Wait, really? Why on earth?

                    1. 2

                      Because the business model of google is to profit from other people’s work and I don’t want them or Msoft or similar to be the gateway to content.

                      1. 2

                        “Commoditize Your Compliment.” Might be a bit harder under this legislation.

                        1. 1

                          I see; kind of a “the enemy of my enemy is my friend” kind of thing?

                          1. 1

                            Not really. You can see from the Google publishers program that it is getting into a position where everything goes through it. I think it is reasonable to require that either an aggregator is a public resource not-for-profit or that it pays its content creators.

                    1. [Comment removed by author]

                      1. 7

                        If I find myself on a machine that doesn’t have my customized environment, my productivity drops and cognitive burden increases, as I try to remember how to do things the unaugmented way.

                        Emacs tramp-mode makes it pretty easy to edit files on remote machines using your local config.

                        I have to remember what I have installed and what I don’t.

                        Most Emacs users keep their dotfiles in git, which makes it pretty easy to ensure that you’ve got the exact same setup on every machine you use. (It’s a little more complicated if you use package.el because it defaults to just installing the latest version every time, which is why I use git subtrees for all my dependencies; helps guarantee you’ve always got the exact same setup every time.)

                        1. 1

                          Most Emacs users keep their dotfiles in git, which makes it pretty easy to ensure that you’ve got the exact same setup on every machine you use.

                          I doubt even 10% of Emacs users keep their dotfiles in git. Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into. My standards for what kind of code I allow myself to run and download and what kind of code I’d download onto an arbitrary production server are pretty different.

                          (It’s a little more complicated if you use package.el because it defaults to just installing the latest version every time, which is why I use git subtrees for all my dependencies; helps guarantee you’ve always got the exact same setup every time.)

                          Because every vim plugin I’ve come across was hosted in a git repository, I’ve switched to using git submodules for plugins. Only problem is that every time I go to clone my repository, I do a git clone, then remember I have forgotten the command to initialise all submodules, delete the clone, then clone again with --recurse-submodules.

                          It also means I can clone without submodules to just get my .vimrc if I just need to do something simple. Although to be honest, I can get back to 90% of my productivity just by switching ; and :.

                          1. 8

                            I doubt even 10% of Emacs users keep their dotfiles in git.

                            A bold claim. However, speculative.

                            Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into.

                            I think you’re misunderstanding how Emacs tramp-mode works. You can edit files over ssh just like you would on your local file system. No need to setup a remote Emacs config.

                            1. 1

                              A bold claim. However, speculative.

                              No, it’s not a bold claim, because it’s not a claim at all. On the other hand, ‘most Emacs users keep their dotfiles in git’ is a claim, and a very dubious one at that.

                              I think you’re misunderstanding how Emacs tramp-mode works. You can edit files over ssh just like you would on your local file system. No need to setup a remote Emacs config.

                              I wasn’t talking about tramp-mode. Obviously. I was talking about what I was directly responding to and what I directly quoted.

                              1. 4

                                I wasn’t talking about tramp-mode. Obviously. I was talking about what I was directly responding to and what I directly quoted.

                                I am quite sure that what @pab meant was that there is no need to to clone your dotfiles to every machine you ssh into, as long as you have tramp-mode at hand.

                            2. 3

                              I doubt even 10% of Emacs users keep their dotfiles in git.

                              I’m probably inclined to agree, when it comes to all Emacs users. It would probably be better to say that most modern and intermediate (or more advanced) users use git to manage their dotfiles (or just .emacs.d, in my case). Those using Emacs over 30 years probably already have a scheme and a strategy, and those still experimenting and learning will not find great value in using VC.

                              Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into.

                              I think that @technomancy is talking about workstations. As he mentioned, Emacs users use Tramp to connect to remote systems, while retaining their local configuration. At most, people usually use, eg mg instead of vi, but porting everything is usually not worth the effort.

                              1. 3

                                I doubt even 10% of Emacs users keep their dotfiles in git.

                                I don’t know about that. ~/.emacs.d/ has been a thing for many years now, and things like [Prelude}(https://github.com/bbatsov/prelude) & (I believe) spacemacs distribute themselves as git repos. Do more than 10% do this? I don’t know how I’d find out. But I think it’s common, and it is certainly useful to be able to roll back changes, merge them across work & personal machines &c.

                                Not to mention that it’s not exactly kosher to go downloading a repository of files onto every computer you happen to ssh into.

                                This is also common, e.g. with Oh My zsh, but note that with emacs one is far less likely to ssh into a remote machine and run emacs there: rather, one would just use TRAMP, e.g. to edit /ssh:remote-host:.config/foo/bar.

                                And of course an emacs user can do as you do, and jut schlep around a .emacs like you schlep around a .vimrc — but many (I hope more than 10%!) of us find a version-controlled repo is a better solution.

                                1. 0

                                  But I think it’s common, and it is certainly useful to be able to roll back changes, merge them across work & personal machines &c.

                                  There are of course many many version control systems that allow you to do all of this without being git.

                                2. 1

                                  I do a git clone, then remember I have forgotten the command to initialise all submodules, delete the clone, then clone again with –recurse-submodules.

                                  Why not run git submodule update --init?

                                  1. 1

                                    then remember I have forgotten the command to initialise all submodules

                                    1. 2

                                      Ah, sorry, I misread that as ‘forgotten to add the --recurse-submodules flag’.

                            1. 18

                              I like to term this as ‘time between cause and effect’ - or the time it takes between making a change, and seeing the result of that change. In a compiled language, this is usually very large

                              Not this again. Clojure is and always has been a compiled language.

                              edit: it gets worse:

                              It was a bit mind blowing to realize, and a great revelation was revealed, as it became clear that all those parenthesis were for a very good reason (for this interactive functionality to work well - imagine trying to re-evaluate a single snippet of code in ANY other non-lisp language - good luck writing a parser that can handle redefining a single method without having to ‘hot reload’ an entire file

                              This is trivial in many non-lisps such as Forth, Smalltalk, and Lua. Interactivity and homoiconicity are completely orthogonal.

                              To be clear I don’t disagree with the conclusions of the article, but the examples and rationale given are very bad.

                              1. 11

                                I am also learning Nim right now and I can relate so much with the post, especially the part about the module imports. I just dislike so much that everything gets suddenly imported into the regular namespace that I only use “import X as X” and “from X import y” so that I can keep the mentality I have built from Python

                                1. 3

                                  Yes, this really bugs me, too. It makes autocomplete and hinting so much less useful, because after a few imports there are so many names in the namespace.

                                  1. 3

                                    Clojure used to work this way; before version 1.4 or so there was the :use section of the ns clause which brought everything in, but its use has since been strongly discouraged in favor of :require [x :as y] which is much clearer. Maybe Nim could take the same approach.

                                  1. 6

                                    If I didn’t use Emacs I would have switched to Fossil a long time ago.

                                    1. 6

                                      No mention of how to re-encrypt an existing key with the better -o scheme; seems like a strange omission. The invocation is ssh-keygen -p -o -f keyfile if you were curious.

                                      1. 3

                                        I guess the point is more about unsafe defaults than how to rekey. But nonetheless, it’s present:

                                        You can upgrade existing keys with ssh-keygen -p -o -f PRIVATEKEY.

                                        Maybe an edit?

                                      1. 3

                                        This is why you Don’t Implement Your Own Crypto! Come on folks.

                                        1. 9

                                          Sooo, You know that this is OpenSSH right? I mean someone has to write the Crypto. OpenSSH developers are among those that you might want to trust to do it right. No one is perfect though.

                                          1. 6

                                            Actually, the code in question was written by Tatu, before openssh was forked.

                                            Well, depending on exactly what code you mean. The key encrypting code was technically in OpenSSL (or librsa) I think. The choice to use it was Tatu’s.

                                            1. 3

                                              Pretty sure this comment was intended as a joke for this reason?

                                              1. 2

                                                Yeah it kind of was. I guess it was a little obscure though.

                                            2. 6

                                              Well, hop in a time machine back to 1996 and pick something better off the shelf…

                                              1. 1

                                                I read the article, and the situation seems related to OpenSSL only. Joel Sing confirmed that commits https://github.com/libressl-portable/openbsd/commit/17b1f1ce28ae8bc5a873951ad6c8aa564b68c0ab and https://github.com/libressl-portable/openbsd/commit/952c1252f58f5f57227f5efaeec0169759c77d72 fixed the issues back in 2017 for LibreSSL. More details by Billy Brumley to the oss-security earlier this year: http://www.openwall.com/lists/oss-security/2018/04/16/3 .

                                                In conclusion OpenBSD and Void Linux have this mitigated.

                                                1. 4

                                                  Those commits have nothing to do with the issue in the article.

                                              1. 9

                                                It’s interesting because the author is not thoughtlessly in favour of GitHub, but I think that his rebuttals are incomplete and ultimate his point is incorrect.

                                                Code changes are proposed by making another Github-hosted project (a “fork”), modifying a remote branch, and using the GUI to open a pull request from your branch to the original.
                                                

                                                That is a bit of a simplification, and completely ignores the fact that GitHub has an API. So does GitLab and most other similar offerings. You can work with GitHub, use all of its features, without ever having to open a browser. Ok, maybe once, to create an OAuth token.

                                                Whether using the web UI or the API, one is still performing the quoted steps (which notably never mention the browser).

                                                A certain level of discussion is useful, but once it splits up into longer sub-threads, it becomes way too easy to loose sight of the whole picture.

                                                That’s typically the result of a poor email client. We’ve had threaded discussions since at least the early 90s, and we’ve learned a lot about how to present them well. Tools such as gnus do a very good job with this — the rest of the world shouldn’t be held back because some people use poor tools.

                                                Another nice effect is that other people can carry the patch to the finish line if the original author stops caring or being involved.
                                                

                                                On GitHub, if the original proposer goes MIA, anyone can take the pull request, update it, and push it forward. Just like on a mailing list. The difference is that this’ll start a new pull request, which is not unreasonable: a lot of time can pass between the original request, and someone else taking up the mantle. In that case, it can be a good idea to start a new thread, instead of resurrecting an ancient one.

                                                What he sees as a benefit I see as a detriment: the new PR will lose the history of the old PR. Again, I think this is a tooling issue: with good tools resurrecting an ancient thread is just no big deal. Why use poor tools?

                                                While web apps deliver a centrally-controlled user interface, native applications allow each person to customize their own experience.
                                                

                                                GitHub has an API. There are plenty of IDE integrations. You can customize your user-experience just as much as with an email-driven workflow. You are not limited to the GitHub UI.

                                                This is somewhat disingenuous: while GitHub does indeed have an API, the number & maturity of GitHub API clients is rather less than the number & maturity of SMTP+IMAP clients. We’ve spent about half a century refining the email interface: it’s pretty good.

                                                Granted, it is not an RFC, and you are at the mercy of GitHub to continue providing it. But then, you are often at the mercy of your email provider too.

                                                There’s a huge difference between being able to easily download all of one’s email (e.g. with OfflineIMAP) and only being at the mercy of one’s email provider going down, and being at the mercy of GitHub preserving its API for all time. The number of tools which exist for handling offline mail archives is huge; the number of tools for dealing with offline GitHub project archives is … small. Indeed, until today I’d have expected it to be almost zero.

                                                Github can legally delete projects or users with or without cause.
                                                

                                                Whoever is hosting your mailing list archives, or your mail, can do the same. It’s not unheard of.

                                                But of course my own maildir on my own machine will remain.

                                                I use & like GitHub, and I don’t think email is perfect. I think we’re quite aways from the perfect git UI — but I’m fairly certain that it’s not a centralised website.

                                                1. 8

                                                  We’ve spent about half a century refining the email interface: it’s pretty good.

                                                  We’ve spent about half a century refining the email interface. Very good clients exist…. but most people still use GMail regardless.

                                                  1. 6

                                                    That’s typically the result of a poor email client. We’ve had threaded discussions since at least the early 90s, and we’ve learned a lot about how to present them well. Tools such as gnus do a very good job with this — the rest of the world shouldn’t be held back because some people use poor tools.

                                                    I have never seen an email client that presented threaded discussions well. Even if such a client exists, mailing-list discussions are always a mess of incomplete quoting. And how could they not be, when the whole mailing list model is: denormalise and flatten all your structured data into a stream of 7-bit ASCII text, send a copy to every subscriber, and then hope that they’re able to successfully guess what the original structured data was.

                                                    You could maybe make a case for using an NNTP newsgroup for project discussion, but trying to squeeze it through email is inherently always going to be a lossy process. The rest of the world shouldn’t be held back because some people use poor tools indeed - that means not insisting that all code discussion has to happen via flat streams of 7-bit ASCII just because some people’s tools can’t handle anything more structured.

                                                    I agree with there being value in multipolar standards and decentralization. Between a structured but centralised API and an unstructured one with a broader ecosystem, well, there are arguments for both sides. But insisting that everything should be done via email is not the way forward; rather, we should argue for an open standard that can accommodate PRs in a structured form that would preserve the very real advantages people get from GitHub. (Perhaps something XMPP-based? Perhaps just a question of asking GitHub to submit their existing API to some kind of standards-track process).

                                                    1. 1

                                                      You could maybe make a case for using an NNTP newsgroup for project discussion

                                                      While I love NNTP, the data format is identical to email, so if you think a newsgroup can have nice threads, then so could a mailing list. They’re just different network distribution protocols for the same data format.

                                                      accommodate PRs in a structured form

                                                      Even if you discount structured text, emails and newsgroup posts can contain content in any MIME type, so a structured PR format could ride along with descriptive text in an email just fine.

                                                      1. 1

                                                        Even if you discount structured text, emails and newsgroup posts can contain content in any MIME type, so a structured PR format could ride along with descriptive text in an email just fine.

                                                        Sure, but I’d expect the people who complain about github would also complain about the use of MIME email.

                                                      2. 1

                                                        You could maybe make a case for using an NNTP newsgroup for project discussion, but trying to squeeze it through email is inherently always going to be a lossy process.

                                                        Not really — Gnus has offered a newsgroup-reader interface to email for decades, and Gmane has offered actual NNTP newsgroups for mailing lists for 16 years.

                                                        But insisting that everything should be done via email is not the way forward; rather, we should argue for an open standard that can accommodate PRs in a structured form that would preserve the very real advantages people get from GitHub. (Perhaps something XMPP-based? Perhaps just a question of asking GitHub to submit their existing API to some kind of standards-track process).

                                                        I’m not insisting on email! It’s decent but not great. What I would insist on, were I insisting on anything, is real decentralisation: issues should be inside the repo itself, and PRs should be in some sort of pararepo structure, so that nothing more than a file server (whether HTTP or otherwise) is required.

                                                      3. 4

                                                        …the new PR will lose the history of the old PR.

                                                        Why not just link to it?

                                                        This is somewhat disingenuous: while GitHub does indeed have an API, the number & maturity of GitHub API clients is rather less than the number & maturity of SMTP+IMAP clients. We’ve spent about half a century refining the email interface: it’s pretty good.

                                                        That strikes me as disingenuous as well. Email is older. Of course it has more clients, with varying degrees of maturity & ease of use. That has no bearing on whether the GitHub API or an email-based workflow is a better solution. Your point is taken; the GitHub API is not yet “Just Add Water!”-tier. But the clients and maturity will come in time, as they do with all well-used interfaces.

                                                        Github can legally delete projects or users with or without cause.

                                                        Whoever is hosting your mailing list archives, or your mail, can do the same. It’s not unheard of.

                                                        But of course my own maildir on my own machine will remain.

                                                        Meanwhile, the local copy of my git repo will remain.

                                                        I think we’re quite aways from the perfect git UI — but I’m fairly certain that it’s not a centralised website.

                                                        I’m fairly certain that it’s a website of some sort—that is, if you intend on using a definition of “perfect” that scales to those with preferences & levels of experience that differ from yours.

                                                        1. 2

                                                          Meanwhile, the local copy of my git repo will remain.

                                                          Which contains no issues, no discussion, no PRs — just the code.

                                                          I’d like to see a standard for including all that inside or around a repo, somehow (PRs can’t really live in a repo, but maybe they can live in some sort of meta- or para-repo).

                                                          I’m fairly certain that it’s a website of some sort—that is, if you intend on using a definition of “perfect” that scales to those with preferences & levels of experience that differ from yours.

                                                          Why on earth would I use someone else’s definition? I’m arguing for my position, not someone else’s. And I choose to categorically reject any solution which relies on a) a single proprietary server and/or b) a JavaScript-laden website.

                                                          1. 1

                                                            Meanwhile, the local copy of my git repo will remain.

                                                            Which contains no issues, no discussion, no PRs — just the code.

                                                            Doesn’t that strike you as a shortcoming of Git, rather than GitHub? I think this may be what you are getting at.

                                                            Why on earth would I use someone else’s definition?

                                                            Because there are other software developers, too.

                                                            I choose to categorically reject any solution which relies on a) a single proprietary server and/or b) a JavaScript-laden website.

                                                            I never said anything about reliance. That being said, I think the availability of a good, idiomatic web interface is a must nowadays where ease-of-use is concerned. If you don’t agree with that, then you can’t possibly understand why GitHub is so popular.

                                                        2. 3

                                                          (author here)

                                                          Whether using the web UI or the API, one is still performing the quoted steps

                                                          Indeed, but the difference between using the UI and the API, is that the latter is much easier to build tooling around. For example, to start contributing to a random GitHub repo, I need to do the following steps:

                                                          • Tell my Emacs to clone & fork it. This is as simple as invoking a shortcut, and typing or pasting the upstream repo name. The integration in the background will do the necessary forking if needed. Or I can opt not to fork, in which case it will do it automatically later.
                                                          • Do the changes I want to do.
                                                          • Tell Emacs to open a pull request. It will commit my changes (and prompt for a commit message), create the branch, and open a PR with the same commit message. I can use a different shortcut to have more control over what my IDE does, name the branch, or create multiple commits, etc.

                                                          It is a heavily customised workflow, something that suits me. Yet, it still uses GitHub under the hood, and I’m not limited to what the web UI has to offer. The API can be built upon, it can be enriched, or customised to fit one’s desires and habits. The difference in what I need to do to get the same steps done differs drastically. Yes, my tooling does the same stuff under the hood - but that’s the point, it hides those detail from me!

                                                          (which notably never mention the browser).

                                                          Near the end of the article I replied to:

                                                          “Tools can work together, rather than having a GUI locked in the browser.”

                                                          From this, I concluded that the article was written with the GitHub web UI in mind. Because the API composes very well with other tools, and you are not locked into a browser.

                                                          That’s typically the result of a poor email client.

                                                          I used Gnus in the past, it’s a great client. But my issue with long threads and lots of branches is not that displaying them is an issue - it isn’t. Modern clients can do an amazing job making sense of them. My problem is the cognitive load of having to keep at least some of it in mind. Tools can help with that, but I can only scale so far. There are people smarter than I who can deal with these threads, I prefer not to.

                                                          What he sees as a benefit I see as a detriment: the new PR will lose the history of the old PR. Again, I think this is a tooling issue: with good tools resurrecting an ancient thread is just no big deal. Why use poor tools?

                                                          The new PR can still reference the old PR, which is not unlike having an In-Reply-To header that points to a message not in one’s archive. It’s possible to build tooling on top of this that would go and fetch the original PR for context.

                                                          Mind you, I can imagine a few ways the GitHub workflow could be improved, that would make this kind of thing easier, and less likely to loose history. I’d still rather have an API than e-mail, though.

                                                          This is somewhat disingenuous: while GitHub does indeed have an API, the number & maturity of GitHub API clients is rather less than the number & maturity of SMTP+IMAP clients. We’ve spent about half a century refining the email interface: it’s pretty good.

                                                          Refining? You mean that most MUAs look just like they did thirty years ago? There were many quality of life improvements, sure. Lots of work to make them play better with other tools (this is mostly true for tty clients and Emacs MUAs, as far as I saw). But one of the most wide-spread MUA (gmail) is absolutely terrible when it comes to working with code and mailing lists. Same goes for Outlook. The email interface story is quite sad :/

                                                          There’s a huge difference between being able to easily download all of one’s email (e.g. with OfflineIMAP) and only being at the mercy of one’s email provider going down, and being at the mercy of GitHub preserving its API for all time.

                                                          Yeah, there are more options to back up your mail. It has been around longer too, so that’s to be expected. Email is also a larger market. But there are a reasonable number of tools to help backing up one’s GitHub too. And one always makes backups anyway, just in case, right?

                                                          So yeah, there is a difference. But both are doable right now, with tools that already exist, and as such, I don’t see the need for such a fuss about it.

                                                          I use & like GitHub, and I don’t think email is perfect. I think we’re quite aways from the perfect git UI — but I’m fairly certain that it’s not a centralised website.

                                                          I don’t think GitHub is anywhere near perfect, especially not when we consider that it is proprietary software. It being centralised does have advantages however (discoverability, not needing to register/subscribe/whatever to N+1 places, and so on).

                                                        1. 13

                                                          technomancy’s atreus, handwired. Will build another one and a split atreus too.

                                                          1. 4

                                                            I’m working on a weird prototype to turn my Atreus into a pi-powered laptop with a shoulder strap: https://www.flickr.com/photos/technomancy/tags/atreusdeck

                                                            Turns out powering a Pi with a battery is harder than you’d think.

                                                            1. 1

                                                              What’s the battery life on this? I am only half joking…

                                                              1. 1

                                                                About 15 minutes with the battery I’m currently using and a Pi 2. (The Pi 3 draws like twice as much current.)

                                                                Needs a lot of work.

                                                                1. 2

                                                                  Ugh, that’s more of a UPS in search for the next power outlet :)

                                                                  1. 2

                                                                    I ended up ditching the Pi because the battery and screen stuff was just too fiddly for a mobile device. My most recent prototype uses an Android device instead. The battery setup is much simpler, and the screen is much higher resolution. I’ve been using it with Termux as an SSH client, and it works pretty well for that; much better than I was expecting.

                                                                    https://www.flickr.com/photos/technomancy/43534951372/

                                                                    1. 1

                                                                      Neat! And the intended position is hanging from your shoulders and you type while standing?

                                                                      1. 1

                                                                        You can type while standing, but it’s more that you can easily move around from one sitting position to another and easily take it with you.

                                                            2. 2

                                                              Been wanting to build a customized atreus for some time, it seems like a great build

                                                              1. 1

                                                                Yes, it is. There are also 65key variants or a split model for a 3d printer.

                                                                If you want it the easier way get a kit and PCB from technomancy!

                                                            1. 2

                                                              Atreus with clicky switches and the stock firmware for a little over a year (IIRC). I only use it at my desk, but I’ve been very happy with it so far - it’s one of the least expensive and most easily available of the small, staggered-column keyboards. I have to stave off wrist pain/finger numbness which keeps recurring (I switched from a mouse to a trackball recently as well), and one of my hard requirements for a full-time-use keyboard is that it can’t have staggered rows, as the side-to-side motions make the pain flare up much more quickly. My only complaints are that I wish I’d remembered where I put the rubber footies it came with, as it’s very slidy with just the screws on the bottom and a couple of them have loosened and gone missing due to sliding on the desk.

                                                              1. 2

                                                                Next time I come down to Portland I’ll bring some extra rubber feet; maybe for FennelConf 2019!

                                                              1. 5

                                                                Just git?

                                                                I was kind of hoping that if we’re going to break the github hegemony, we might also start to reconsider git at least a little. Mercurial has so many good ideas worth spreading, like templates (DSL for formatting the output of every command), revsets (DSL for querying commits), filesets (DSL for querying files and path) and changeset evolution (meta-graph of commit rewriting).

                                                                1. 10

                                                                  Don’t forget pijul!

                                                                  Seriously, though, I don’t think there is any “github plus something” that is going to break the github hegemony. Github won because it offered easy forking while Sourceforge was locked in a centralized model. Sourceforge won because it was so much easier than hosting your own repo + mailing list.

                                                                  The thing that will get people away from github has to have a new idea, a new use case that isn’t being met by github right now, and which hasn’t been proposed before. That means that adding hg won’t do it – not because hg is worse than git (honestly, git’s terrible, and hg is fine), but because hg’s already been an option and people aren’t using it.

                                                                  Adding email commits won’t do it, because that use case has been available for a long time (as pointed out elsewhere in these comments) and people aren’t using it.

                                                                  Until something new is brought to the table, it’s all “let’s enter a dominated market with a slight improvement over the dominant tech”, and that’s just not going to be enough.

                                                                  1. 8

                                                                    So, one thing that I would use a new contender for is being able to put my work under my own domain.

                                                                    The “new thing” here is “have your personal branding on your site” (which is clearly fairly popular given how common personal domain/sites are among developers).

                                                                    If I could CNAME code.daniel.heath.cc to your host to get my own github, I’d do it today (as long as any issues/wiki/PR state/etc remained usefully portable).

                                                                    1. 8

                                                                      That’s a really neat idea. I don’t think I can prioritize it right now but it’s definitely something I would consider implementing.

                                                                      1. 3

                                                                        I actually think that GitHub’s lack of branding and customization is a big reason for its success. When I go take a look at a new project on GitHub, I don’t have to figure out how to navigate a new site’s design, and this makes the GitHub ecosystem as a whole easier to use.

                                                                        1. 3

                                                                          I don’t mean corporate/design branding.

                                                                          I want to use my own name (and be able to move providers without breaking links).

                                                                          1. 1

                                                                            I want to use my own name (and be able to move providers without breaking links).

                                                                            But that will happen anyway, unless your new provider uses the same software as the old one.

                                                                            1. 1

                                                                              Yep - so it has to be oss too.

                                                                              1. 1

                                                                                That makes sense actually. sr.ht supporting the ability to use your own domain name (presumably a subdomain of your personal domain name for personal projects?) would make it really easy to migrate away from sr.ht in the future if you felt it was more cost-effective to host your own. Although I don’t know what the pricing model is intended to be.

                                                                        2. 2

                                                                          You can do that with Gitlab (or Gitea if you prefer something lightweight). Only thing is you need to take care of the hosting yourself. But I’m sure there are companies offering a one-click setup, to which you can later point your own domain.

                                                                          1. 2

                                                                            If you host your own gitlab instance, can you fork and submit patches to a project that’s hosted on gitlab,com, as easily/seamlessly as if you were hosted there?

                                                                            Centralization has benefits that self-hosting can’t always provide. If there were some federation which allowed self-hosting to integrate with central and other self-hosting sites, that seems like a new and interesting feature.

                                                                            1. 5

                                                                              Git is already federated with email - it’s specific services like GitHub which are incompatible with git’s federation model (awfully conveniently, I might add). sr.ht is going to be designed to accomodate git’s email features, both for incoming and outgoing communication, so you’ll be able to communicate easily between sr.ht instances (or sr.ht and other services like patchworks or LKML).

                                                                              1. 2

                                                                                As I mention earlier, though, federation by email has been available for a long time and hasn’t been used (by enough people to replace github). The (vast) majority of developers (and other repo watchers) prefer a web UI to an email UI.

                                                                                1. 4

                                                                                  I intend to build a web UI which is driven by email underneath.

                                                                              2. 4

                                                                                The gitlab, gitea, and gogs developers are working on this but it’s still very much in the discussion stage at this point. https://github.com/git-federation/gitpub/

                                                                                1. 1

                                                                                  Oh, definitely no federation. Didn’t know that federation was what he was looking for.

                                                                                  1. 2

                                                                                    I don’t know exactly what he was looking for, but It seemed like one of:

                                                                                    • hosted, centralized, but with my domain plus some branding, or
                                                                                    • self-hosted but with the features of centralization, including community, etc

                                                                                    The latter sounds to me like it would need federation.

                                                                                2. 1

                                                                                  It’s currently awkward to run multiple domains on most OSS servers which might otherwise be suitable.

                                                                              3. 3

                                                                                hg isn’t really an option right now, though. There’s nowhere to host it. There’s bitbucket, and it’s kind of terrible, and they keep making it worse.

                                                                                If you can’t even host it, people won’t even try it.

                                                                              4. 14

                                                                                I’m afraid you’re not going to find a sympathetic ear in sr.ht. I am deeply fond of git and deeply critical of hg.

                                                                                The GitHug hegemony has nothing to do with its basis on git. If git were the product of GitHub, I might agree, but it’s not. If you really want to break the GitHub hegemony you should know well enough to throw your lot in with the winning tool rather than try to disrupt two things at once.

                                                                                1. 3

                                                                                  Do you mind expanding on why you are deeply critical of mercurial?

                                                                                  1. 8

                                                                                    Perhaps some day I’ll write a blog post going into detail. The short of it is that git is more Unixy, Mercurial does extensibility the wrong way, and C is a better choice than Python (or Rust, I hear they’re working on that).

                                                                                    1. 4

                                                                                      Git IS more unixy! Using hg feels suspiciously like using a GUI and I can’t figure out why.

                                                                                      1. 4

                                                                                        because hg‘s command-line interface was “designed”, whereas git’s command-line interface “evolved” from how it was being used.

                                                                                  2. 2

                                                                                    The GitHug hegemony has nothing to do with its basis on git.

                                                                                    Exactly; it’s the other way around. Git got popular because of github.

                                                                                    Git was much worse before github made it popular. It’s bad now and difficult to use now, but it was much worse before 2008. So if you just want to get away from Github, there’s no need to stay particulary enamoured with git either.

                                                                                    And whatever criticisms you may have about hg, you have to also consider that it has good ideas (those DSLs above are great). Those ideas are worth spreading, and git for a long time has tried to absorb some of them and hasn’t succeeded.

                                                                                1. 6

                                                                                  Government jobs tend to be 40 hours or less. State government in my state has a 37.5 hour standard. There is very occasional off-hours work, but overtime is never required except during emergencies – and not “business emergencies”, but, like, natural disasters.

                                                                                  1. 8

                                                                                    I’m surprised that tech workers turn up their nose at government jobs. Sure, they pay less, but the benefits are amazing! And they really don’t pay too much less in the scheme of things.

                                                                                    How many private sector tech jobs have pensions? I bet not many.

                                                                                    1. 9

                                                                                      I work in a city where 90% of the folks showing up to the local developer meetup are employed by the city or the state.

                                                                                      It’s taken a lot of getting used to being the only person in the room who doesn’t run Windows.

                                                                                      1. 4

                                                                                        I feel like this is pretty much the same for me (aside from the meetup bit).

                                                                                        Have you ever worked with windows or have you been able to stay away from it professionally?

                                                                                        1. 3

                                                                                          I used it on and off for a class for about a year in 2003 at university but have been able to avoid it other than that.

                                                                                        2. 1

                                                                                          Yeah. I hadn’t used Windows since Win 3.1, until I started working for the state (in the Win XP era). I still don’t use it at home, but all my dayjob work is on Windows, and C#.

                                                                                        3. 5

                                                                                          they pay less

                                                                                          Not sure about this one. When you speak about pay, you also have to count all the advantages going with it. In addition, they usually push you out at 5pm so your hourly rate is very close to the contractual one.

                                                                                          1. 3

                                                                                            Most people who are complaining that they pay less are the tech workers who hustle hard in Silicon Valley or at one of the big N companies. While government jobs can pay really well and have excellent value especially when considered pay/hours and benefits like pensions, a Google employee’s ceiling is going to be way higher.

                                                                                            There’s a subreddit where software engineers share their salaries and it seems like big N companies can pay anything from $300k–700k USD when you consider their total package. No government job is going to match that.

                                                                                          2. 3

                                                                                            Do you work in the public sector? What’s it like?

                                                                                            1. 13

                                                                                              I do.

                                                                                              Pros: hours, and benefits. Less trend-driven development and red queen effect. Less age discrimination (probably more diversity in general, at least compared to Silicon Valley).

                                                                                              Cons: low pay, hard to hire and retain qualified people. Bureaucracy can be galling, but I imagine that’s true in large private sector organizations, too.

                                                                                              We’re not that behind the times here; we’ve avoided some dead-ends by being just far enough behind the curve to see stuff fail before we can adopt it.

                                                                                              Also, depending on how well your agency’s goals align with your values, Don’t Be Evil can actually be realistic.

                                                                                              1. 6

                                                                                                I will say, I once did a contract with the Virginia DOT during Peak Teaparty. Never before in my life have I seen a more downtrodden group. Every single person I talked to was there because they really believed in their work, and every single one of them was burdened by the reality that their organization didn’t and was cutting funding, cutting staff, and cutting… everything.

                                                                                                They were some of the best individuals I ever worked with, but within the worst organization I’ve ever interacted with.

                                                                                                Contrast that to New York State- I did a shitton of work for a few departments there. These were just folks who showed up to get things done. They were paid well, respected, and accomplished what they could within the confines of their organization. They also were up for letting work knock off at 2PM.

                                                                                                1. 2

                                                                                                  Also, depending on how well your agency’s goals align with your values, Don’t Be Evil can actually be realistic.

                                                                                                  Agreed. There’s no such thing as an ethical corporation.

                                                                                                  Do you mind sharing the minimum qualifications of a candidate at your institution? How necessary is a degree?

                                                                                                  I’m asking for a friend 😏

                                                                                                  1. 2

                                                                                                    What about B corps?

                                                                                                    1. 1

                                                                                                      No, not even them.

                                                                                                      When you think about what “profit” is (ie taking more than you give), I think it’s really hard to defend any for-profit organization. Somebody has to lose in the exchange. If it’s not the customers, it’s the employees.

                                                                                                      1. 5

                                                                                                        That’s a pretty cynical view of how trade works & not one I generally share. Except under situations of effective duress where one side has lopsided bargaining leverage over the other (e.g. monopolies, workers exploited because they have no better options), customers, employees and shareholders can all benefit. Sometimes this has negative externalities but not always.

                                                                                                        1. 1

                                                                                                          Then I guess we must agree to disagree 🤷🏻‍♂️

                                                                                                        2. 2

                                                                                                          Profit is revenue minus expenses. Your definition, taking more than you give, makes your conclusion a tautology. i.e., meaningless repetition.

                                                                                                          Reciprocity is a natural law: markets function because both parties benefit from the exchange. As a nod to adsouza’s point: fully-informed, warrantied, productive, voluntary exchange makes markets.

                                                                                                          Profit exists because you can organize against risk. Due to comparative advantage, you don’t even have to be better at it than your competitors. Voluntary exchange benefits both weaker and stronger parties.

                                                                                                          1. 1

                                                                                                            Profit is revenue minus expenses. Your definition, taking more than you give, makes your conclusion a tautology. i.e., meaningless repetition.

                                                                                                            I mean, yes, I was repeating myself. I wasn’t concluding anything: I was merely rephrasing “profit.” I’m not sure what you’re trying to get at here aside from fishing for a logical fallacy.

                                                                                                            a tautology. i.e., meaningless repetition.

                                                                                                            Intentionally meta?

                                                                                                            Reciprocity is a natural law

                                                                                                            Yup. No arguments here. However, reciprocity is not profit. In fact, that’s the very distinction I’m trying to make. Reciprocity is based on fairness and balance, that what you get should be equal to what you give. Profit is expecting to get back more than what you put in.

                                                                                                            Profit exists because you can organize against risk.

                                                                                                            Sure, but not all parties can profit simultaneously. There are winners and losers in the world of capitalism.

                                                                                                          2. 1

                                                                                                            So, if I watch you from afar and realize that you’ll be in trouble within seconds, come to your aid, and save your life (without much effort on my side) in exchange for $10, who’s the one losing in this interaction? Personally, I don’t think there’s anything morally wrong with playing positive-sum games and sharing the profits with the other parties.

                                                                                                        3. 1

                                                                                                          For an entry-level developer position, we want either a batchelor’s degree in an appropriate program, with no experience required, an associate’s degree and two years of experience, or no degree and four years of experience. The help-desk and technician positions probably require less for entry level but I’m not personally acquainted with their hiring process.

                                                                                                          1. 2

                                                                                                            I would fall into the last category. Kind of rough being in the industry for 5 years and having to take an entry level job because I don’t have a piece of paper, but that’s how it goes.

                                                                                                            1. 2

                                                                                                              For us, adding an AS (community college) to that 5 years of experience would probably get you into a level 2 position if your existing work is good. Don’t know how well that generalizes.

                                                                                                              1. 2

                                                                                                                Okay cool! I have about an AS in credits from a community college I’d just need to graduate officially. Though, at that point, I might as well get a BS.

                                                                                                                Thanks for helping me in my research :)

                                                                                                      2. 4

                                                                                                        I don’t, but I’m very envious of my family members who do.

                                                                                                        One time my cousin (works for the state’s Department of Forestry) replied to an email on Sunday and they told him to take 4 hours off Monday to balance it off.

                                                                                                        That said, from a technological perspective I’d imagine it would be quite behind in times, and moves very slowly. If you’re a diehard agile manifesto person (I’m not) I probably wouldn’t recommend it.

                                                                                                        EDIT: I guess it’s really what you value more. In the public sector, you get free time at the expense of money. In the private sector, vice versa. I can see someone who chases the latest technologies and loves to code all day long being miserable there, but for people who just code so they can live a fulfilling life outside of work it could be a good fit.

                                                                                                  1. 21

                                                                                                    Stylus is using the same theme database without collecting your history:

                                                                                                    1. 7

                                                                                                      +1

                                                                                                      But the problem is: how to ensure that Stylus (or any alternative) won’t become the next “Stylish”?

                                                                                                      1. 7

                                                                                                        I’ve written a couple of my own extensions, partly for this reason. For certain complicated or common needs (like ad-blocking) I have no choice but to find an extension I trust and use it. But in other cases I just end up writing my own because I can’t find something that doesn’t feel sketchy.

                                                                                                        Ironically, one of my extensions was recently removed from the Firefox store because there was some incidental code in a dependency (that isn’t used at runtime) that makes a network request.

                                                                                                        1. 1

                                                                                                          I’ve written a couple of my own extensions, partly for this reason.

                                                                                                          This is the “hacker’s approach” that I prefer.
                                                                                                          Everyone should be able to hack software for his own need.

                                                                                                          For certain complicated or common needs (like ad-blocking) I have no choice but to find an extension I trust and use it.

                                                                                                          Well, actually you can also review them, if the sources are available.

                                                                                                          1. 6

                                                                                                            Well, actually you can also review them, if the sources are available.

                                                                                                            Certainly an important part of the process, but both major browsers push updates to extensions silently, and there’s no guarantee that the code my browser runs is the same code that was in the OSS repository. It’s a crap situation all-around, really.

                                                                                                            1. 4

                                                                                                              This is the “hacker’s approach” that I prefer.

                                                                                                              I prefer it too, but as far as I can tell webextensions goes out of its way to make this tedious and annoying.

                                                                                                              I’ve tried building webextensions from source, and as far as I can tell there is no way to permanently install them. You can only install them for a single session at a time. (Hopefully there’s a workaround someone can suggest, but I didn’t find one at the time.) It was pretty appalling from a hackability/software-freedom perspective, so I was pretty surprised to see it coming from Mozilla.

                                                                                                              1. 2

                                                                                                                Idk about mozilla, but I made my own permanently installed extension for an appliance with chromium. Precisely to avoid the risk of updates or unavailability due to internet outages.

                                                                                                          2. 4

                                                                                                            Consumers should demand that extensions don’t improperly use personal info, and that the browser vendors only allow extensions that adhere to these rules.

                                                                                                            1. 17

                                                                                                              Consumers should demand that extensions don’t improperly use personal info

                                                                                                              Do you know any consumer that want extensions to sell their personal info?
                                                                                                              I mean, it’s like relying on consumers’ demand for pencils that do not explode.

                                                                                                              Yes, they might ask for it… if only they knew they should!
                                                                                                              (I’m not just sarcastic: perfect symmetric information is the theoretical assumption of free market efficiency)

                                                                                                              1. 2

                                                                                                                I was being half sarcastic. Marketing is basically information arbitrage, after all.

                                                                                                                But as a practical matter I believe voluntary regulation is the way forward for this. Laws are struggling to catch up, although it would be interesting to see how GDPR applies here.

                                                                                                                1. 5

                                                                                                                  I believe voluntary regulation is the way forward for this.

                                                                                                                  Gentlemen agreements work in a world of gentlemen.
                                                                                                                  In a world wide market cheating is too easy. It’s too easy to hide.

                                                                                                                  GDPR reception shows how much we can trust companies “voluntary regulations”.

                                                                                                                  Laws are struggling to catch up

                                                                                                                  True. This is basically because many politics rely on corporate “experts” to supply for their ignorance.

                                                                                                              2. 3

                                                                                                                In theory the permissions system should govern this. For example, I can imagine a themeing extension needing permission to access page content; but it should be easy to make it work without any external communication, e.g. no network access, read-only access to its own data directory (themes could be separate extensions, and rely on the extension manager to copy them into place), etc.

                                                                                                                1. 2

                                                                                                                  It can leak data to its server by modifying just css, not even touching DOM, by adding background images for example. I don’t know if it’s even possible to design browser extensions system so extension effects are decently isolated.

                                                                                                                  However, these exfiltration hacks might attract attention easier than plain XHR.

                                                                                                                  1. 1

                                                                                                                    Hmm, yes. I was mistakenly thinking of a theme as akin to rendering given HTML to a bitmap; when in fact it’s more like a preprocessor whose result is sent to the browser engine. With no way of distinguishing between original page content and extension-provided markup, you’re right that it’s easy to exfiltrate data.

                                                                                                                    I can think of ways around this (e.g. setting a dirty bit on anything coming from the theme, or extending cross domain policies somehow, etc.) but it does seem like I was being a bit naive about how hard it would be.

                                                                                                              3. 2

                                                                                                                Theoretically, you could audit the GitHub repo (https://github.com/openstyles/stylus) and build it yourself. Unfortunately that doesn’t seem too feasable.

                                                                                                                1. 1

                                                                                                                  For this reason I install the absolute minimum extensions. I usually only have privacy badger installed as I’m fairly sure the EFF won’t sell out.

                                                                                                              1. 19

                                                                                                                I’ve tried several linux distribution in the last 10years (ubuntu,debian,fedora,arch,nixos) and honestly, NixOS is way above the others for a developer-friendly OS. It’s:

                                                                                                                • super lightweight
                                                                                                                • customizable
                                                                                                                • with an awesome package manager
                                                                                                                • well documented

                                                                                                                I love being able to drop in a shell having the package or the lib I want and test things. In comparison, Arch feels like a totally standard linux distribution.

                                                                                                                1. 9

                                                                                                                  I’ve been using NixOS everywhere around me for about 3.5 years and totally agree. I now work on Atlassian Marketplace which deployed using Docker images that are built from Nix.

                                                                                                                  1. 3

                                                                                                                    The nix model definitely seems like a great way to build docker images. Reproducible, minimal, flexible, it seems like a perfect fit.

                                                                                                                    1. 3

                                                                                                                      That sounds strange to me; if you’re already set up to use nix, why bother with docker? Maybe I’m overlooking some things?

                                                                                                                      1. 2

                                                                                                                        Because Atlassian has an internal PaaS which requires Docker. I use NixOS for everything but deploy our systems to that.

                                                                                                                        1. 1

                                                                                                                          I’m not using NixOS. And it wouldn’t be for running locally, it would be for deploying on something like Kubernetes. But nix is a flexible, useful tool even when NixOS isn’t involved.

                                                                                                                        2. 1

                                                                                                                          How can it be both good as my workstation, and good as a minimal container runtime?

                                                                                                                          Not for the sake of being argumentative (I have yet to try Nix), just confused because those two seem like opposites.

                                                                                                                          1. 3

                                                                                                                            Flexible is the key adjective that makes it work for both. Nix allows you to install a package tree into a target directory, using binary packages. Analogous to debootstrap / kickstart. But it also lets you ad hoc add / update / remove packages in that directory like apt / yum does on a running system. It can also do all this according to a package spec a la bundler / npm / maven.

                                                                                                                            And it can do all this live on a workstation too! So that’s why it works for both.

                                                                                                                            It also does a great job of keeping things clean by installing packages into versioned directories, and symlinking the active package into the base system. Similar to what homebrew does on MacOS. That makes cleaning old versions a breeze, and allows multiple versions to be installed, which nix lets you switch between easily.

                                                                                                                            That being said, I run more conventional distros to keep familiar with the server installs used by customers. I find the utility of that expertise greater than any utility NixOS provides. But since nix is also a standalone tool, it works on less interesting distros and can be used for homedir installs or building docker images.

                                                                                                                            1. 2

                                                                                                                              That being said, I run more conventional distros to keep familiar with the server installs used by customers.

                                                                                                                              Interesting. I find that I do this as well. I.e. I use a minimal vimrc, bash (not zsh/fish), etc., to not confuse my muscle memory of my day job (which is bog-standard Linux/Debian sysadmin).

                                                                                                                          2. 1

                                                                                                                            Here’s a good blog post about using Nix to build Docker images: http://lethalman.blogspot.com/2016/04/cheap-docker-images-with-nix_15.html

                                                                                                                          3. 1

                                                                                                                            So all the images are built from the nixos base image? It’s the first big company that I hear is using nixos+docker!

                                                                                                                            1. 2

                                                                                                                              No base image - just x86_64-linux built Nix binaries.

                                                                                                                        1. 7

                                                                                                                          Amazing how this article can talk about how great the fediverse is (a network that exists for nearly a decade now) without once using the word or mentioning its history.

                                                                                                                          1. 4

                                                                                                                            “Fediverse” is damaging to the Mastodon brand

                                                                                                                            1. 6

                                                                                                                              Except the whole post is about the fediverse? It’s right there staring you in the face in bold.

                                                                                                                              The social network that is Mastodon isn’t really Mastodon. It’s bigger.

                                                                                                                              1. 3

                                                                                                                                The word “Fediverse” is not on the page…

                                                                                                                              2. 3

                                                                                                                                What makes you say that? (Well, other than the fact that I guess it’s strictly “good” for the Mastodon brand if Mastodon and only Mastodon becomes identified with ActivityPub federation, in the same way that it’s “good” for the kleenex brand if kleenex becomes identified with all tissue paper)

                                                                                                                              3. 0

                                                                                                                                GNU/social et al?

                                                                                                                                1. 4

                                                                                                                                  Yes, it’s all the same network. See https://fediverse.network/.

                                                                                                                              1. 9

                                                                                                                                The article makes some good points; of course there’s not much technically interesting or novel in Docker.

                                                                                                                                But the alternatives he suggests would be non-starters at every place I’ve worked, simply because some people insist on using Macs, which don’t support them. Docker let mac users finally join the containerization party (even if Docker for Mac secretly uses Linux behind the scenes anyway, ssshhh; don’t tell anyone.) I still think the story of “how a technically-inferior/uninteresting solution dominated the market by demonstrating that social/perception issues are usually the main thing that drives uptake” is more interesting than “Docker is bad, m’kay” takes anyway, and there’s a lot to learn there.

                                                                                                                                1. 2

                                                                                                                                  Thanks for thinking of us, poor Mac users :-) I switched from Ubuntu to macOs a few years ago, and one of the things I missed was not being able to use Docker natively (without lauching a VM myself). The advent of Docker for Mac made things a lot easier (and standardized) and made me switch my main project from Vagrant to Docker.

                                                                                                                                1. 6

                                                                                                                                  Adjacent set of unfocused rants: are we even teaching them useful programming?

                                                                                                                                  • As a society, we’re obsessed with teaching “practical” knowledge by rote instead of learning how to learn. Are 1 month JavaScript bootcamps useful for people 5 years down the road? 10?

                                                                                                                                  • We teach kids how to learn, but they can do nothing useful with it even if they do care. Environments like Swift Playgrounds are cute, but they can’t be used to develop applications - for that, you need a Mac (and how to use it!) and a developer license. Even on Android, for “post-PC” children, especially in the third world, what good is their programming knowledge if there’s no good environment for it?

                                                                                                                                    • Likewise, nothing much can be really done with programming on device. It’s not like you can script or query Instagram - it’s all silos. AppleScript or Unix pipelines could be a model. (It seems Apple might start to resolve that a little with the Shortcuts app though.)
                                                                                                                                  1. 7

                                                                                                                                    There is no question it’s not possible to teach kids “useful” in the professional sense programming in a few months course. Even adults for that matter. That’s not the point however.

                                                                                                                                    For all talk about “digital natives” the kids have no fainest clue about how the things that define most of their waking life work. They only have an ad hoc mental concept of networking, casual exposure to what OS is, they rightfully fear malicious software and hacking but do not understand the vectors they work through nor what they can or can not do. Computers and smartphones are magic to them, to the extent that cars, electricity or airplanes never were for the previous generations.

                                                                                                                                    My son had a programming course like that, it lays a decent foundation to how computers actually work, what they can and can not do. It’s a lot easier to explain how malicious program can work when a person has a concept of what a program is. There were also a bunch of classes with Micro:bit helping demystify what’s happening in countless devices around us.

                                                                                                                                    1. 5

                                                                                                                                      Yeah. I think a lot of Lobsters users are in a “goldilocks” generation of computer knowledge - young enough to have the access or necessity to learn computers, but old enough to do it back when computers were hard.

                                                                                                                                      1. 1

                                                                                                                                        I rolled a 20 on being in the right time to learn computers. I had Tandy 1000XLs in my kindergarden, with various educational apps, then around the 4th grade, I received a hand-me-down Commodore 64 with two cubic meters of books, wires, disk drives, disks, carts, an Atari with a keyboard, joy sticks, paddles, a koala pad, etc. I played with that a couple years, and my very next computer was a 120Mhz Pentium, Win95, no internet. After exploring almost literally every file on the thing, I got AOL, riiiiight before the web blew up.

                                                                                                                                        Today, as you might imagine, I hate almost everything that is going on with computers. :/

                                                                                                                                    2. 3

                                                                                                                                      Did you read the article? It’s basically a response to this exact critique, saying that focusing on the end product misses other benefits, like knowing what kinds of things programs are and are not capable of. This helps them make more informed decisions around privacy, etc. thruout their life regardless of career path.

                                                                                                                                    1. 10

                                                                                                                                      Good on you. It’s worth mentioning here that Microsoft is going in the other direction. https://www.mercurynews.com/2018/06/19/microsoft-defends-ties-with-ice-amid-separation-outcry/amp/

                                                                                                                                      1. 3

                                                                                                                                        In response to questions we want to be clear: Microsoft is not working with U.S. Immigration and Customs Enforcement or U.S. Customs and Border Protection on any projects related to separating children from their families at the border, and contrary to some speculation, we are not aware of Azure or Azure services being used for this purpose. As a company, Microsoft is dismayed by the forcible separation of children from their families at the border.

                                                                                                                                        Maybe I’m missing something, but it seems they are going in the exact same direction…

                                                                                                                                        1. 6

                                                                                                                                          It’s a very confusing article; my best guess is that they are working with ICE, but not on “projects related to separating children from their families at the border”.

                                                                                                                                          1. 11

                                                                                                                                            And just because Microsoft isn’t directly helping, they are still helping. That nuance is discussed in OP’s article - any support to an morally corrupt institution is unacceptable, even if it is indirect support.

                                                                                                                                            1. 7

                                                                                                                                              But that perspective is very un-nuanced. Is everything ICE does wrong? It’s a large organization. What if the software the company that @danielcompton denied service to is actually just trying to track down violent offenders that made it across the border? Or drug trafficking?

                                                                                                                                              To go even further, by your statement, Americans should stop paying their taxes. Are you advocating that?

                                                                                                                                              1. 18

                                                                                                                                                ICE is a special case, and deserves to be disbanded. It’s a fairly new agency, and its primary mission is to be a Gestapo. So yes, very explicitly, everything ICE does is wrong.

                                                                                                                                                1. 3

                                                                                                                                                  On what ground and with which argument can you prove your statement? I mean, there is probably an issue with how it’s run, but the whole concept of ICE doesn’t sound that wrong to me.

                                                                                                                                                  1. 14

                                                                                                                                                    From https://splinternews.com/tear-it-all-down-1826939873 :

                                                                                                                                                    The thing that is so striking about all three items is not merely the horror they symbolize. It is how easy it was to get all of these people to play their fascistic roles. The Trump administration’s family separation rule has not even been official policy for two months, and yet look at where we are already. The Border Patrol agent is totally unperturbed by the wrenching scenes playing out around him. The officers have sprung to action with a useful lie to ward off desperate parents. Nielsen, whom the New Yorker described in March as “more of an opportunist than an ideologue” and who has been looking to get back into Donald Trump’s good graces, is playing her part—the white supremacist bureaucrat more concerned with office politics than basic morality—with seeming relish. They were all ready.

                                                                                                                                                    I’m going to just delegate all arguments to that link, basically, with a comment that of it’s not exceedingly obvious, then I probably can’t say anything that would persuade you. Also, this is all extremely off-topic for this forum, but, whatevs.

                                                                                                                                                2. 11

                                                                                                                                                  There’s always a nuance, sure. Every police force ever subverted for political purposes was still continuing to fight petty crime, prevent murders and help old ladies cross the street. This always presented the regimes a great way to divert criticism, paint critics as crime sympathisers and provide moral leeway to people working there and with them.

                                                                                                                                                  America though, with all its lip service to small government and self reliance was the last place I expected that to see happening. Little did I know!

                                                                                                                                                  1. 6

                                                                                                                                                    Is everything ICE does wrong? It’s a large organization.

                                                                                                                                                    Just like people, organizations should be praised for their best behaviors and held responsible for their worst behaviors. Also, some organizations wield an incredible amount of power over people and can easily hide wrongdoing and therefore should be held responsible to the strictest standard.

                                                                                                                                                    1. 9

                                                                                                                                                      Its worth pointing out that ICE didn’t exist 20 years ago. Neither, for that matter did the DHS (I was 22 when that monster was born). “Violent offenders” who “cross the border” will be tracked down by the same people who track down citizen “violent offenders” ie the cops (what does “violent offender” even mean? How do we who these people are? how will we know if they’re sneaking in?) Drug trafficking isn’t part of ICEs institutional prerogative in any large, real sense, so its not for them to worry about? Plenty of americans, for decades, have advocated tax resistance precisely as a means to combat things like this. We can debate its utility but it is absolutely a tactic that has seen use since as far as I know at least the Vietnam war. Not sure how much nuance is necessary when discussing things like this. Doesn’t mean its open season to start dropping outrageous nonsense, but institutions which support/facilitate this in any way should be grounds for at the very least boycotts.

                                                                                                                                                      1. 5

                                                                                                                                                        Why is it worth pointing out it didn’t exist 20 years ago? Smart phones didn’t either. Everything starts at some time.

                                                                                                                                                        To separate out arguments, this particular subthread is in response to MSFT helping ICE, but the comment I responded to was referring to the original post, which only refers to “border security”. My comment was really about the broader aspect but I phrased it poorly. In particular, I think the comment I replied to which states that you should not support anything like this indirectly basically means you can’t do anything.

                                                                                                                                                        1. 5

                                                                                                                                                          Its worth pointing out when it was founded for a lot of reasons; what were the conditions that led to its creation? Were they good? Reasonable? Who created it? What was the mission originally? The date is important because all of these questions become easily accessible to anyone with a web browser and an internet connection, unlike, say, the formation of the FBI or the origins of Jim Crow which while definitely researchable on the net are more domains of historical research. Smart phones and ethnic cleansing however, not so much in the same category.

                                                                                                                                                          1. 4

                                                                                                                                                            If you believe the circumstances around the formation of ICE are worth considering, I don’t think pointing out the age of the institution is a great way to make that point. It sounds more like you’re saying “new things are inherently bad” rather than “20 years ago was a time with a lot of politically questionable activity” (or something along those lines).

                                                                                                                                                            1. 9

                                                                                                                                                              dude, read it however you want, but pointing out that ICE is less than 20 years old, when securing a border is a foundational issue, seems like a perfect way to intimate that this is an agency uninterested in actual security and was formed expressly to fulfill a hyper partisan, actually racist agenda. Like, did we not have border security or immigration services or customs enforcement prior to 2002/3? Why then? What was it? Also, given that it was formed so recently, it can be unformed, it can be dismantled that much easier.

                                                                                                                                                              1. 1

                                                                                                                                                                I don’t understand your strong reaction here. I was pointing out that if your goal was to communicate something, just saying it’s around 20 years old didn’t seem to communicate what you wanted to me. Feel free to use that feedback or not use it.

                                                                                                                                                      2. 2

                                                                                                                                                        In addition, I bet the ICE is using Microsoft Windows and probably Office too.

                                                                                                                                                        1. 1

                                                                                                                                                          That’s a great point, and no I don’t advocate for all Americans to stop paying taxes.

                                                                                                                                                        2. 0

                                                                                                                                                          any support to an morally corrupt institution is unacceptable, even if it is indirect support

                                                                                                                                                          A very interesting position. It just requires you to stop using any currency. ;-)

                                                                                                                                                          1. 3

                                                                                                                                                            No, it requires you to acknowledge that using any currency is unacceptable.

                                                                                                                                                            Of course not using any currency is also unacceptable. When faced with two unacceptable options, one has to choose one. Using the excuse “If I follow my ethics I can never do anything” is just a lazy way to never think about ethics. In reality everything has to be carefully considered and weighed on a case by case basis.

                                                                                                                                                            1. 1

                                                                                                                                                              Of course not using any currency is also unacceptable.

                                                                                                                                                              Why? Currency is just a tool.

                                                                                                                                                              Using the excuse “If I follow my ethics I can never do anything” is just a lazy way to never think about ethics.

                                                                                                                                                              I completely agree.
                                                                                                                                                              Indeed I think that we can always be ethical, but we should look beyond the current “public enemy”, be it Cambridge Analytica or ICE. These are just symptoms. We need to cure the disease.