1.  

    This is really interesting. I’ve thought about the problem in the past and had considered measuring the latency asymmetry almost impossible. The author gets much farther than I thought you could without some special hardware (granted, using a GPS to estimate the error of NTP).

    However, I’d love to see a more thorough analysis of the achieved accuracy. From the article I can just see that the difference between the PPS and NTP-synced system time is around 3-4ms. There may be other error sources, but just assuming the measurement accuracy is +-3ms on both ends, the measurement of 15ms RX / 5ms TX could theoretically be 9ms RX / 11ms TX instead. I do believe the results are much more accurate in practice, but I’d love to know just how accurate the clocks are and what the probable range of RX/TX latency asymmetry is.

    1.  

      It is likely impossible to actually measure the one-way latency of a link. There will always be uncertainty. You can lower that a lot, but it will probably not be possible to be certain about the numbers.

      Veritasium has a nifty video on the problem, but framed with figuring out the one-way speed of light: https://www.youtube.com/watch?v=pTn6Ewhb27k

    1. 32

      I thought I’d read this before, and after a quick search, I have: https://lobste.rs/s/34sse3/why_discord_is_switching_from_go_rust

      1. 1

        Thanks for letting me know!

      1. 17

        I wrote an IRC bot in Go (nearly a year ago… Time flies) that would randomly respond to people saying “bitcoin” in the channel with “More like buttcoin, am I rite?!”

        It has since evolved to do other stupid shit for no reason other than me finding it somewhat funny in the context of the channel. Oh… And it previews links, because why not…

        1. 9

          Bitcoin trolling sounds like a valid utility to me :)

          1. 3

            Please make a Lobsters version /s

            1. 3

              Please make a Lobsters version

              Well, it’s mostly tailored to the ##crustaceans channel on Freenode. Source code here if you want to do anything to it: https://github.com/Brekkjern/buttsbot

              It’s an absolute mess, but(t) it’s there.

            2. 2

              I wrote an IRC bot in Go (nearly a year ago… Time flies) that would randomly respond to people saying “bitcoin”

              More like buttcoin, am I rite?!

            1. 4

              Are there any well-known open source .NET apps (CLI or GUI) that run on Linux?

              1. 7

                KeePass.

                Back when Gnome + Mono was a thing lots of interesting stuff was born, eg. Beagle.

                Suse was actively developing nice user facing tools in mono at astonishing pace, then C# fell from favour because of politocs, most stuff was half rewritten in C++/Python/JavaScript, usually in lower quality/featureset.

                Since then I find Gnome worse with every release, but that has not so much to do with .NET support.

                1. 1

                  I was using keepass on my windows desktop. When my machine started to die I was pleasantly surprised to find my keepass database worked on debian.

                2. 4

                  There are a few Mono apps from back when the Gnome project was kind of adopting Mono as their standard runtime for apps. Two that come to mind are Tomboy (notes app) and Banshee (music player).

                  1. 4

                    Jellyfin media server (FOSS fork of Emby and alternative to Plex) runs on dotnet.

                    1. 3

                      PowerShell for one, but it’s fairly recent that .NET Core got Linux support, so I doubt there are many large projects around yet. Most likely any really large open source projects in the coming years will come from Microsoft open sourcing their own products.

                      1. 3

                        If anything should work on Linux, it should be F#, but here’s a tweet from yesterday from the author of an F# course bemoaning the difficulty he is having getting his course to seamlessly work.

                        https://twitter.com/kitlovesfsharp/status/1362125496683819012

                        1. 2

                          It works fine for me on Fedora. As the comments suggest, it may be related to snap.

                          Ionode is buggy sometimes, but so is Visual Studiofor F#.Both are steadily getting better.

                        2. 2

                          There may be some, but I have been waiting for a bit more maturity in the .Net Core, .Net 5 (and now .Net 6) ecosystems before diving in. A year ago, I was reading a lot of stories about cross platform issues in core and I had my own painful experience setting up .Net Core with Asp.net.

                          I’m actually quite surprised how quickly there is now a .Net 6 version coming out.

                        1. 7

                          nano is my go-to editor and I have only good things to tell about it.

                          Also, unlike Vim (and Emacs for a long time) it supports the XDG spec.

                          1. 2

                            If you feel comfortable elaborating, I’m curious why you’d pick it over other editors. Are you primarily sshing to places that don’t always have other editors installed?

                            1. 7

                              That is mostly my use case with it. nano works out of the box. It requires no configuration and it’s the same everywhere. That is valuable to me as I need to change a setting or tweak a service file or whatever. It’s not my main editor. I use VSCode for that. You could argue that I could use vi for this, but I just need to change a damn file. I’m not going to work on it for long. Maybe I’ll tweak a line or two and move on with my life. I can use vi, but really, it’s an extra mental load when all I’m doing is scrolling down a file to find the setting I need to change to “yes”.

                              1. 2

                                that makes complete sense. i definitely wasn’t asking from a position of trying to evangelize my own approach. thanks for explaining

                            2. 1

                              Also, unlike Vim (and Emacs for a long time) it supports the XDG spec.

                              It is possible to configure vim to respect XDG. I have this in my ~/config/vimrc:

                              set undodir=${XDG_CACHE_HOME}/vim/undo//
                              set dir=${XDG_CACHE_HOME}/vim/swap//
                              set backupdir=${XDG_CACHE_HOME}/vim/backup//
                              

                              These tell vim to put everything in .cache (I also create those directories if they don’t exist in a file included from my .bashrc because vim sulks if they don’t exist). This also avoids cluttering my filesystem with ~ and .swp files: they all go in ~/.cache where I can clean them out centrally if I ever want to.

                              I have this in a file included from my .bashrc:

                              export EDITOR=vim
                              export VIMINIT="source ${XDG_CONFIG_HOME}/vimrc"
                              

                              The second of these lines tells vim to source my ~/.config/vimrc file when it starts up. It will also try to source .vimrc but it’s quite happy if that doesn’t exist.

                              With this combination, I don’t have a ~/.vimrc and everything seems to work quite happily in XDG locations.

                              1. 3

                                I don’t think there’s any question about a highly configurable editor being able to be made to respect XDG. But that’s not really the same as supporting it, is it? That’s a quite a bit of configuration, in files for two different programs. And even then you have to manually create directories to get it to play nice.

                            1. 3

                              Doesn’t this fall under the “Custom Utility Method” problem listed on the webpage? And how is this different from a variation on YAML?

                              1. 2

                                It sounds a bit like the standards problem, but I think the point is that this utility is generic and doesn’t really care much about how the template looks and functions, while most other templating utilities would be built for purpose and won’t be able to adapt to a changing template.

                              1. 17

                                I don’t disagree with the point the article is making, but they specifically picked an example where OOP would be a weak solution. The objects have no state to keep track of except for the root URL, and quite frankly, that would probably never change during runtime in such an API.

                                What if the object had to keep track of and manage an API key for that endpoint? What if the object has to round-robin different endpoints or just swap to another endpoint if the first one doesn’t respond? What if… And so on.

                                The proposed refactor is perfectly reasonable in the case presented, but it might also only apply to that case and with those limitations. And honestly, there is nothing special about OOP or FP or any other paradigm. You could program anything in any paradigm, but some of them are easier to reason about when the problem gets large enough. There’s no need to go spewing patterns everywhere, but “this case doesn’t need OOP” is not a good enough case to remove all OOP around the codebase.

                                1. 2

                                  (this got long, TL;DR: OO shell would be cool, but maybe simplicity is key, also check out jq!)

                                  I like the idea of a “smarter” shell and while PowerShell is a good try, it’s definitely clunky and not a good one. It just feels so un-ergonomic (Get-ChildItem? is that to get a sub-process? what?). Also Perl’s implicit variables sprinkled throughout is just straight weird.

                                  The idea of an OO shell that pipes objects vs just straight text would be cool, and jq kind of serves that purpose for me. One can map/filter/reduce json data in a pipeline, it’s awesome! Although adding methods to these objects would be pretty nifty…making filtering etc in pipelines even easier. But then again that makes it harder to understand. Looking up 6 different unix utilities (with great man pages) might be easier than looking up one or two custom object. But maybe that’s just because I’m so used to the standard coreutils.

                                  Well this got longer than I thought it would be. Thanks for coming to my TED talk.

                                  1. 3

                                    The concept of item is defined as an object from a provider system, so a file or folder, a registry key, a row from an SQL database, etc. So Get-ChildItem just means children of an item. Commonly you would just write ls in the terminal if you want to invoke it.

                                    If you want to do something related to processes, but you don’t know the command, I would highly recommend trying out gcm *process*. You’ll find that pwsh has a lot of aliases defined for common actions, gcm being aliased to Get-Command for simpler use. This command will list out every command that matches what you supplied as a search string, and since all commands in pwsh are so verbose, it’s rather easy to find a command that might do what you want.

                                    And honestly, I have yet to find a unix utility with an actual “great” man page. At least in comparison to how damn good the man pages are in pwsh.

                                    1. 2

                                      In practice you don’t write the whole cmdlet, you just write gci.

                                      1. 1

                                        That’s my feeling about PowerShell as well. I like the ideas behind it. However, PowerShell the language is clunky, and on Windows, PowerShell the terminal environment is also clunky. Powerful in its ability to expose Windows APIs, and definitely better than cmd.exe or JScript/VBScript, but still…

                                        I’m still not sure what a perfect programmatic shell should look like. There are some ideas coming from the ML/Haskell land that may be more promising than the OO approach.

                                        1. 3

                                          I dunno, the ISE[1] is pretty nice. PS does feel clunky for oneliners but it’s quite solid once you go above 1 line.

                                          It’s still slow though. If I have to deal with multiple large textfiles I prefer to use Cygwin and cat/grep/Perl.

                                          [1] integrated scripting environment

                                      1. 14

                                        0-indexing is better because 0 is a natural number, dangit

                                        Yeah I know lots of people find it unintuitive, but so much math works out so much better when you start counting from 0. I will fite people over this

                                        1. 7

                                          There is no consensus of 0 being part of the natural numbers. There is an ISO standard, but some definitions of natural numbers specify that natural numbers contain all positive whole numbers, and since 0 is neither positive, nor negative, it’s not part of the natural numbers.

                                          1. 11

                                            Peano arithmetic, which I think can be considered fairly standard, is defined in terms of a Zero and a Successor function.

                                            The existence of a zero among the naturals means they can be considered a group, as zero is the identity for addition.

                                            Integers are generally defined as two-tuples of natural numbers where (m,n) represents the difference m-n. The existence of a zero among the naturals means that every integer has a canonical representation as (m,0), (0,n), or (0,0); the first form is simply m, the second is -n, and the third is 0 (which satisfies both, as a bonus showing clearly that 0=-0). This is clearly more elegant than the alternative, where the integral representation of natural m is (m+1,1).

                                            Defining S_0 as the base case of a sequence means that S_n results from n applications of the inductive rule. The simplest example of this is actually peano arithmetic itself, where the number n self-evidently results from n applications of the Successor function to the Zero.


                                            These are just a few examples. I’m unaware of any arguments in favour of excluding zero from the naturals.

                                            1. 8

                                              The existence of a zero among the naturals means they can be considered a group, as zero is the identity for addition.

                                              Not a group but a monoid. Without zero they’d be a semigroup, i.e. lacking identity (or maybe you had some group in mind but with respect to addition the naturals are a monoid, still if people think multiplication is somehow more natural then starting at 1 also gives you a monoid so this argument can go both ways).

                                              I agree with the rest of your comment.

                                              Edit: I guess I’ll put some thoughts here.

                                              The difference between counting the position of something (what is the first number?) and the quantity of something (what is the smallest quantity?) is the difference that matters w.r.t. this indexing question. The reason 0-indexing is more natural is because when you have a positional number system (such as base whatever then whatever is the number of symbols in the system, the first symbol will always have the meaning 0 because when you run out of symbols like suc(9) in decimal, then you start again in the next position (a positional number system) and get 10).

                                              Just to drive the point home: A list in a programming language is a base for a positional number system, the elements in the list are the digits you are using, if you ever find yourself doing index arithmetic of the form x / (length list) combined with x % (length list) then you are working with a base (length list) number system.

                                              Another way to define the natural numbers is in terms of homotopies; if you imagine \mathbb(C) \ {0} then a path that doesn’t circle around the origin is contractible and defined as 0 (a path that has a homotopy to the point it originates from and ends at is contractible) which allows you to prove that 0 = -0, while other numbers can be obtained by looking at how many times you circle around the origin and in which direction the spiral is (you define one direction as positive and the other as negative but I said we’re defining the naturals so you’d ignore directionality, however you’d have have to start at 0 because otherwise extending to the whole numbers would make your earlier system incompatible). This may seem kinda ridiculous but the point is that this kind of inductive number system with a base case is often bidirectional and so it makes sense for the base case to be 0.

                                              1. 5

                                                Peano arithmetic, which I think can be considered fairly standard, is defined in terms of a Zero and a Successor function.

                                                While this is commonly the case today, Peano himself originally defined it for positive integers only.

                                              2. 3

                                                I will also fite anybody who says 0 isn’t a natural number

                                                1. 1

                                                  In addition (pun intended) to the rest of the thread, I’ll point out that the Von Neumann ordinals give a correspondence between natural numbers and set cardinalities. The number 1 corresponds to the sets with exactly one element. Similarly, the number 0 corresponds to the empty sets.

                                                  Think of the natural numbers as the numbers for counting discrete things. (This is a decategorification!) Counting sheep in a field ala Baez, we count zero sheep, one sheep, two sheep, three sheep, etc. The fact that a field can have zero sheep is still countable with natural numbers.

                                                  1. 2

                                                    Think of the natural numbers as the numbers for counting discrete things. (This is a decategorification!) Counting sheep in a field ala Baez, we count zero sheep, one sheep, two sheep, three sheep, etc. The fact that a field can have zero sheep is still countable with natural numbers.

                                                    Yep.

                                                    This is what I meant (elsewhere down-thread) when I said that zero is a generalisation of magnitude. Without zero, the question ‘how many [sheep in a field, for example] are there’ has two different kinds of answers: ‘there are n’ or ‘there aren’t any’. That is, Either None PositiveInt. If zero can be a magnitude, then the answer always takes the form ‘there are n’, with the former ‘none’ case replaced by n=0.

                                                    (There are additionally generalisations to be had: integers let you reason about deficits, and rationals let you reason about fractional quantities (‘how much’ instead of ‘how many’. But those generalisations come at the context of added complexity, where zero is effectively free.)

                                              1. 9

                                                Fantastic article!

                                                But please, don’t just update this thread with the new links. I’d rather they also get posted as separate links. It’s easier to catch the new ones if they are posted as their own posts. Plus, the comments will be relevant to each “chapter” instead of just a mishmash of comments in one thread that were posted before we had the full picture.

                                                1. 2

                                                  Since it’s three related essays coming out in one week, I asked @pushcx whether he preferred three separate threads or one megathread. His preference was for the latter :)

                                                  1. 11

                                                    I’d also like to ask you and @pushcx to reconsider. I don’t want to keep going back to this post (which might drop off the front page after a few days) just to check if the next story is up yet.

                                                1. 3

                                                  Why use something as complicated and bloated as a PS/2 interface for mouse/keyboard? The previous RS232 or D-SUB connectors worked just fine and is much more universal. Standardising on RS232 would reduce the needed types of connectors drastically and even allow for networking devices together using the same plug. If the argument is that the RS232 is outdated, how does that not apply to the PS/2? It’s only a matter of time before that kind of hardware is unavailable and you have to migrate to a more modern USB connector/controller.

                                                  Eventually as you replace the components to keep the machine running you end up with the Ship of Theseus problem. Have you really designed a computer to last a hundred years, or have you just spent time replacing and upgrading the individual components as they failed to keep that old beater running?

                                                  The same thing can be said for the software. One compatibility layer could be swapped for another compatibility layer, and eventually you’re back to the Ship of Thesus thought experiment.

                                                  What you have invented is exactly the same as a regular computer, except that you have sourced all the components (virtual, soft- or hardware) yourself instead of having it supplied by a manufacturer that has vertical integration in the market.

                                                  1. 3

                                                    As I read the piece, it feels like this

                                                    eventually you’re back to the Ship of Thesus thought experiment

                                                    is a feature, not a bug. You’re spending time specifying the individual components so that they can be replaced and adapted and extended over a long service life. And even so that it can be done from easily salvaged components.

                                                    I thought it was a really cool thought experiment to imagine these machines on a much longer cycle than I usually do. Sourcing the components so that you understand them and can service them beyond the expected life of the manufacturer that has vertical integration in the market seems prudent if you’re hoping for this sort of useful life.

                                                    1. 2

                                                      Why use something as complicated and bloated as a PS/2 interface for mouse/keyboard? The previous RS232 or D-SUB connectors worked just fine and is much more universal.

                                                      Both chip series being looked at provide UARTs already so minimal serial exists. Doing full RS232 requires more than just a D-SUB connector. Depending on what you’re connecting it to this might not be too bad (as RevK found connecting an ESP32 to an ASR-33), or it might need substantial circuitry to handle level shifting. Most of this is usually done with something a MAX3232, I’ve found them unreliable with ESP32s. You could probably do something with 74xx chips, I imagine they’ll be around for quite a while.

                                                      As for PS/2 being bloated, I’m not sure I understand what you mean there. To implement a proper D-Sub connector you’re talking 9 pins, with TX, RX, VCC, GND and a handshake loop as a minimum, or additional handshaking pins. PS/2 is VCC, GND, Clock and Data.

                                                      But if you wanted to implement D-SUB instead you absolutely could. If that’s what you wanted you could fill your boots. That’s part of the point of the piece.

                                                    1. 28

                                                      Unix was never as simple as we’d like to remember – or pretend – that it was. Plenty of gotchas have always been lurking around the corners.

                                                      For instance, newlines are totally legit in filenames. So in the absence of insane names, ls |foo will write filenames with one name per line to foo’s stdin. Usually it’s fine to treat ls output as a series of newline-separated filenames, because by convention, nobody creates filenames with newlines in them. But for robustness and security we have things like the -0 argument to xargs and cpio, and the -print0 argument to find.

                                                      For a system that is based on passing around data as text, the textual input and output formats of programs are often ill-suited to machine parsing. Examples of unspecified or underspecified text formats are not difficult to find. I’m really glad to see some venerable tools sprouting --json flags in recent years, and I hope the trend continues.

                                                      1. 5

                                                        Anything but JSON. If plain text is being used because of its readability, JSON is largely antithetical to that purpose.

                                                        1. 14

                                                          JSON fits a nice sweet spot where both humans and machines can both read and edit it with only moderate amounts of anguish. As far as I can tell there is not a good general-purpose replacement for JSON.

                                                          1. 8

                                                            a long article promoting JSON with less than a full sentence for S expression

                                                            1. 4

                                                              What? It’s marked to-do. Here, I’ll just do it. Check the page again.

                                                            2. 3

                                                              What about Dhall?

                                                              1. 2

                                                                You might consider including EDN, I think it makes some interesting choices.

                                                                Another point: the statement that JSON doesn’t support integers falls into a weird gray area. Technically it’s not specified what it supports (https://tools.ietf.org/html/rfc8259#section-6). If you’re assuming the data gets mangled by a JS system, you’re limited to integers representable by doubles, but that’s a danger point for any data format.

                                                                1. 1

                                                                  I actually like this quite a bit, thanks!

                                                                2. 1
                                                                  1. 7

                                                                    Looks fine, but it’s binary and schema-defined, so it makes very different design tradeoffs than JSON does. It’s not an alternative to JSON, it’s an alternative to protobuf, cap’n proto or flatbuffers, or maybe CBOR or msgpack. There’s a plethora of basically-okay binary transfer formats these days, probably because they prevent people from arguing as much about syntax.

                                                                    1. 4

                                                                      I won’t go into details about where, but at work we have used stateless tokens for the longest time. For us, it’s been a terrible design decision and we’re finally moving off it. Why? Decryption is CPU bound, so it doesn’t scale nearly as well as memory lookups, which is what stateful tokens represent. Moreover a lot of our decryption libraries do not seem to be particularly consistent (high variance if we assume that the distribution is somewhat normal) in their timing. This poses a problem for optimizing the tail end of our latency. At small to medium scales stateless tokens are fine, but as we took on higher scale it just didn’t work. Memory lookups are fast, consistent, and scale well.

                                                                    2. 1

                                                                      You should post this as an article! A few comments:

                                                                    3. 3

                                                                      Anything but JSON.

                                                                      Careful what you wish for…

                                                                      1. 1

                                                                        FreeBSD has had libXo for a while: https://wiki.freebsd.org/LibXo

                                                                      2. 4

                                                                        You can also legitimately give a file a name that starts with a dash, making it challenging to access or delete unless you know the trick.

                                                                        1. 3

                                                                          I remember reading a book on UNIX back in the day (1994? around then) which talked about this issue. The given solution in this professional tome was to cd up and then delete the whole directory.

                                                                          (Asking how to handle this problem was also a common question in interviews back in the day, maybe still today I don’t know.)

                                                                          1. 4

                                                                            That’s… Wrong, at best. rm ./-rf always worked, even when the tool is buggy and doesn’t support -- argument parsing termination.

                                                                            1. 3

                                                                              The man page for (GNU coreutils) rm now mentions both methods prominently. I believe you’ll get a prompt if you try it interactively in bash too.

                                                                              1. 6

                                                                                Yeah but kids these days don’t read man, they google, or at best, serverfault.

                                                                                </oldmanyellsatcloud>

                                                                                1. 14

                                                                                  No wonder they google. Have you tried reading a man page without knowing Linux inside and out? They all pretty much suck. Take the tar man-page for example. It says it’s a “short description” of tar, while being over 1000 lines long, but it fails to include ANY examples of how to actually use the tool. There’s examples on how to use different option styles (traditional and short options), a loooong list of flags and what they do in excruciating detail, a list of “usages” that don’t explain what they do and what return values tar can give.

                                                                                  I mean, imagine you need to unpack a tar.gz file, but you have never used tar before and you are somewhat new to Linux in general, but you have learned about the man command and heard you need to use tar to unzip a file (not a given really) so you dutifully write man tar in your terminal and start reading. The first line you are met with looks like this:

                                                                                  tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG…]

                                                                                  Great. This command has more flags than the UN headquarters. You look at it for a couple seconds and realise you have no idea what any of the switches mean, so you scroll a bit down:

                                                                                  tar -c [-f ARCHIVE] [OPTIONS] [FILE…]

                                                                                  Cool. This does something with an archive and a file (Wouldn’t it be helpful if it had a short description of what it does right there?). What it does is a mystery as it doesn’t say. You still have to scroll down to figure out what -c means. After scrolling for 100 lines you get to the part that lists out all the options and find -c. It means that it creates an archive. Cool. Not what we want, but now that we are here maybe we can find an option that tells us how to unpack an archive?

                                                                                  -x, –extract, –get

                                                                                  Sweet! We just found the most common usage at line 171! Now we scroll up to the top and find this usage example:

                                                                                  tar -x [-f ARCHIVE] [OPTIONS] [MEMBER…]

                                                                                  The fuck is a MEMBER? It’s in brackets, so maybe that means it’s optional? Let’s try it and see what happens. You write tar -x -f sample.tar.gz in your terminal, and hey presto! It works! Didn’t take us more than 10 minutes reading the man page and trying to understand what it means.

                                                                                  Or, if you understand how to use modern tools like Google to figure out how to do things, you write the query “unzip tar.gz file linux” into Google and the information box at the top says this:

                                                                                  For tar.gz. To unpack a tar.gz file, you can use the tar command from the shell. Here’s an example: tar -xzf rebol.tar.gz.

                                                                                  You try it out, and what do you know? It works! Took us about 10 seconds.

                                                                                  It’s no wonder that people search for solutions instead. The man files were obviously not written for user consumption (maybe for experienced sysadmins or Linux developers). In addition, this entire example assumes you know that tar can be used to extract files to begin with. If you don’t know that, then you are shit out of luck even before you open the man file. Google is your only option, and considering the experience of reading man files, no surprise people keep using Google instead of trying to read the “short description” that is the size of the fucking Silmarillion!

                                                                                  /rant

                                                                                  1. 4

                                                                                    I don’t disagree with the general sentiment here, but I think you’ve found a man page that is unusually bad. Here’s some excerpts from some random ubuntu box.

                                                                                     

                                                                                    it fails to include ANY examples of how to actually use the tool.

                                                                                    EXAMPLES
                                                                                         Create archive.tar from files foo and bar.
                                                                                               tar -cf archive.tar foo bar
                                                                                         List all files in archive.tar verbosely.
                                                                                               tar -tvf archive.tar
                                                                                         Extract all files from archive.tar.
                                                                                               tar -xf archive.tar
                                                                                    

                                                                                     

                                                                                    Cool. This does something with an archive and a file (Wouldn’t it be helpful if it had a short description of what it does right there?).

                                                                                    Mine has, comfortably within the first screenful:

                                                                                      -c, --create
                                                                                            create a new archive
                                                                                    

                                                                                     

                                                                                    Not what we want, but now that we are here maybe we can find an option that tells us how to unpack an archive?

                                                                                    Something like 20 lines below that:

                                                                                      -x, --extract, --get
                                                                                            extract files from an archive
                                                                                    

                                                                                     

                                                                                    Anyway, I don’t think man pages are intended to be good tutorials in the general case; they’re reference materials for people who already have an idea of what they’re doing. Presumably beginners were expected to learn the broad strokes through tutorials, lectures, introductory texts etc.

                                                                                    I think that split is about right for people who are or aspire to be professional sysadmins, and likely anyone else who types shell commands on a daily basis—learning one’s tools in depth pays dividends, in my experience—but if it’s the wrong approach for other groups of people, well, different learning resources can coexist. There’s no need to bash one for not being the other.

                                                                                    1. 2

                                                                                      This is a GNU-ism, you’re supposed to read the Info book: https://www.gnu.org/software/tar/manual/tar.html

                                                                                      But that also lacks a section detailing the most common invocations.

                                                                                      OpenBSD does it better: https://man.openbsd.org/tar

                                                                                      Of course, on the 2 Debian-based systems I have access to, info pages aren’t even installed… you just get the man page when you invoke info tar.

                                                                                      1. 1

                                                                                        I was just going to bring up info. I believe in many cases manpages for GNU tools are actually written by downstream distributors. For example Debian Policy says every binary should have a manpage, so packagers have to write them to comply with policy. Still more GNU manpages have notes somewhere in them that say “this manpage might be out of date cause we barely maintain it; check the info documentation.” Really irritating. Honestly I never learned how to use info because man is Good Enough™. I mean, come on. Why must GNU reinvent everything?

                                                                          2. 1

                                                                            I don’t think the author has to deny this, the difficulty of teaching doesn’t have to be the same as using. The difficulty in using, complicates the system, that then make it harder to teach – for example because of --json flags.

                                                                          1. 5

                                                                            Making it contactless defeats a whole layer of security and I don’t understand why you’d want that.

                                                                            1. 5

                                                                              I’m not sure that it does. If you are sitting at the laptop and have the device already, what is the purpose of requiring a touch? In case an attacker has the laptop, the yubikey, but no hands?

                                                                              That said, it means anyone with the laptop has access, and this is only for logged in sessions, so I wonder why you would want a lockscreen at all. But as the author notes, they pull the key out when they leave their laptop unattended.

                                                                              1. 10

                                                                                My primary use of the Yubikey right now is for SSH (and a few sites that support the old Yubi, not U2F).

                                                                                So I have ssh-agent. If I didn’t require touch for each event, someone who has compromised my workstation or any server that I am using SSH agent forwarding with could use my key without my knowledge. Even if they get root and steal my agent socket, they can’t use it to move laterally through the network unless they come to my home and touch the key.

                                                                                By requiring touch for every action I can guarantee that even though my key is available it simply cannot be used without my consent.

                                                                                1. 5

                                                                                  I agree that for an SSH it makes perfect sense to require the touch for exactly the reason you stated. I’m saying for locking a user’s laptop the touch doesn’t make much different - a lockscreen is intended to stop attackers who have short lived physical access.

                                                                                  1. 3

                                                                                    Yes, but as far as I know the “touch” option on a Yubikey is set in the firmware and is global. So if he turns off touch for this purpose, any other use of the key doesn’t require touch either. That’s concerning.

                                                                                    edit: it looks like this might be available on a per-key/action basis inside the Yubikey? That must be new… but I’d still be concerned if you ever use the challenge response for anything else.

                                                                                    1. 1

                                                                                      Ah, sure if it’s a global option and this key is reused for other actions where touch is important, I’m in agreement that this would be a dangerous setting.

                                                                                2. 4

                                                                                  You’d also want to use a password: something you know + something you have. I use a yubkey in static password mode, so that when I touch the button, it spits out the static text. I append that static text to the password I’ve memorized. That way, I gain 2FA in a way that doesn’t require the system to explicitly support the yubikey (for example, no need for the yubikey PAM module).

                                                                                  1. 2

                                                                                    I used that same method for a while :)

                                                                                3. 3

                                                                                  It really just turns it into 1-factor authentication again, but with a device that is fairly easy to steal.

                                                                                  I’m not sure if I’d want to have that as the only factor, but it’s not really “insecure”. More like having the password on a sticky note under the keyboard level of security.

                                                                                1. 2

                                                                                  Adding features does not improve a language.

                                                                                  1. 6

                                                                                    And “having a small feature set” does not improve a language inherently (perhaps it makes implementors lives easier).

                                                                                    There are things that are useful. Things that are less useful. And you should judge things based on those costs instead of establishing strong red lines. Especially when lots of these features are responses to people writing Python code in the wild requesting these kinds of changes to improve real experiences.

                                                                                    1. 2

                                                                                      And you should judge things based on those costs instead of establishing strong red lines.

                                                                                      99.9% of languages cross all red lines and give a damn all about doing some cost analysis before doing things¹, so I think tit would be nice to have at least one language that upholds some quality standards.

                                                                                      Especially when lots of these features are responses to people writing Python code in the wild requesting these kinds of changes to improve real experiences.

                                                                                      If you do language-design-by-popularity-contest, don’t be surprised if the language looks like it. :-)

                                                                                      ¹ Just have a look at the replies (including yours) having an aneurysm simply for mentioning that adding features doesn’t improve a language. If a feature improves a language, then it’s the job of the people who want to add it to prove this², not for others to argue against.

                                                                                      ² Oh and also: People who want to add a feature should also be responsible to remove an existing feature first.

                                                                                      1. 4

                                                                                        99.9% of languages cross all red lines and give a damn all about doing some cost analysis before doing things¹, so I think tit would be nice to have at least one language that upholds some quality standards.

                                                                                        See the PEPs.

                                                                                        Just have a look at the replies (including yours) having an aneurysm simply for mentioning that adding features doesn’t improve a language. If a feature improves a language, then it’s the job of the people who want to add it to prove this², not for others to argue against.

                                                                                        Again, see the PEPs for the feature inclusion. Also, there’s no need to talk down on others because they have a different opinion than you.

                                                                                        Oh and also: People who want to add a feature should also be responsible to remove an existing feature first.

                                                                                        Why do you have to remove another feature? Do you not have enough space? If so, a larger storage device is probably a better solution than arbitrarily restricting feature addition because a “feature” has to be removed first. Also, what is a “feature”? How do you define what is considered a “feature”? A method? An object? A function? A property of an object? A modification to the behaviour of an object?

                                                                                        1. -4

                                                                                          Why do you have to remove another feature? Do you not have enough space? If so, a larger storage device is probably a better solution than arbitrarily restricting feature addition because a “feature” has to be removed first. Also, what is a “feature”? How do you define what is considered a “feature”? A method? An object? A function? A property of an object? A modification to the behaviour of an object?

                                                                                          These strawmen are exactly the reason why I didn’t bother with nuance in “adding features does not improve a language” anymore.

                                                                                          People who seem to lack even the most basic understanding about these things, tend to have big opinions about which features the language needs next.

                                                                                          1. 7

                                                                                            I have occasionally jokingly suggested that when someone breaks out the Saint-Exupery quote about perfection, we should further perfect that person by taking something away – perhaps their keyboard! Which is a fun way to point out that such assertions absolutely depend on context and nuance.

                                                                                            Your assertions not only lacked nuance, they verged on straw-man arguments: for example, as another reply pointed out, the Python team do require discussion and debate including pro/con analysis prior to adding new language features, as evidenced by the PEP process and by the lengthy email discussions around many PEPs. So when you asserted your distaste for people who don’t do that, the only possible conclusions to draw are that it’s a red herring because you know Python does do this, or that it’s a misrepresentation because Python does it but you’re not acknowledging it.

                                                                                            On a deeper level, there are at least two common views about features in languages/libraries/products/etc., and those views appear to be fundamentally incommensurable. But neither view is objectively and universally correct, yet many people argue as if their view is, which is not useful.

                                                                                            1. 1

                                                                                              require discussion and debate including pro/con analysis prior to adding new language features

                                                                                              Even by your own wording, it’s not even remotely an equal fight.

                                                                                              One side is “pro”, the other side “against” – which is far removed from a process that says “we want to improve the language, let’s examine whether this can be done by removing something, keeping things the same, or adding something”.

                                                                                              Let’s not even pretend that the pro/con analysis is unbiased or factual, as long as your process treats people who don’t want to add things/remove things as “the bad guys”.

                                                                                              at least two common views

                                                                                              That explains the complete meltdown of one side as seen in this thread, I guess?

                                                                                            2. 3

                                                                                              So you’re deliberately trolling.

                                                                                              1. -4

                                                                                                No, but these hysterical reactions are exactly what I had in mind when I talked about replies with little value earlier.

                                                                                          2. 2

                                                                                            Here’s a comment where I argue against adding a new feature to Python.

                                                                                            I believe in thinking about costs and benefits when adding language features. I will admit I like shiny stuff, but I also want features that fit in with the rest of the language.

                                                                                            I also write Python on a daily basis, and I know of places where the walrus operator would have made things cleaner, without getting in the way later. I don’t think it is that important (like do: while or just a case statement would be much more helpful) and I would rather not have the walrus operator if it meant we could have kept Guido and not started a big acromonious fight about it.

                                                                                            I just fundamentally dislike the concept of “too many features are bad”. Good features are good, that’s why they’re good!

                                                                                            Now, lots of languages add features that interact badly with each other…. that’s where you’re really getting into actual messes that affect users.

                                                                                            1. 1

                                                                                              My first comment was a direct dismissal of the approach to language design you describe.

                                                                                              There is no misunderstanding or need for further explanation here.

                                                                                        2. 5

                                                                                          I might accept “adding features is not the same as improving a language”.

                                                                                          But features which allow for better code reuse (e.g. function decorators), improve expressivity (e.g. list comprehensions), or provide useful control structures (e.g. iterators and generators) can absolutely improve a language. All of my example features were added to Python after it was released, and they all improve that language.

                                                                                          1. 1

                                                                                            I think we’ll have to agree to disagree on that.

                                                                                            All of the things you have mentioned have costs associated with them, and only very rarely do the improvements rise above that.

                                                                                          2. 4

                                                                                            Lack of features leads to books of programming patterns — they’re called so because they require each reader of the code to actively pattern match blocks of code to identify them as what would just be features in another language.

                                                                                            1. 1

                                                                                              I think we can do way better, we shouldn’t let the misdeeds of 70ies’ languages cloud our judgement.

                                                                                            2. 2

                                                                                              What’s the background on this statement? Are you suggesting that if your language is composed of maximally orthogonal and flexible features then additional features are unnecessary?

                                                                                              1. 1

                                                                                                Yes.

                                                                                                Additionally, adding more features after-the-fact will always result in lower quality than if the feature was designed into the language from the start.

                                                                                                I think C#’ properties are a good example of this, Java Generics, …

                                                                                            1. 4

                                                                                              What’s your storage like?

                                                                                              I believe we’re pursuing the same goal, I’ve been building cloud-like infrastructure at home for the last ~3 months and our setups are kind of similar.

                                                                                              I run MetalLB on top of Kubernetes, Kubernetes on top of Proxmox VMs, and Proxmox on top on 3 NUCs. Storage is provided by a Ceph cluster that runs on those 3 NUCs and seamlessly connects to Proxmox and Kubernetes.

                                                                                              It’ll be nice hearing how you run yours and sharing our findings.

                                                                                              1. 2

                                                                                                May I ask why you run Kubernetes on top of Proxmox instead of bare metal? Just curious

                                                                                                1. 2

                                                                                                  Great question! The answer of which is: flexibility.

                                                                                                  Try running Wireguard on Kubernetes. Yeah, you can, but it’s an antipattern. Or if and when I want to get into Microsoft envs.

                                                                                                  Some stuff can’t run on Kubernetes, and so I didn’t want to give up that flexibility. The overhead is minimal, Proxmox VE is just KVM with a clustering engine and a web interface.

                                                                                                  1. 1

                                                                                                    Thanks!

                                                                                                2. 1

                                                                                                  I’ve been looking into doing something similar to what you are describing here and I’m curious on the storage side as well. How much storage are you able to squeeze into the NUCs doing this?

                                                                                                  1. 2

                                                                                                    Right now you can probably store up to 4-5TiB of M.2+SATA into a single NUC without breaking the bank. Times 3 if you run 3 nodes. A 3-node Ceph cluster’s replication/erasure will reduce that by ~20-40%, depending on your params.

                                                                                                    Right now, my 3 NUCs provide a Ceph cluster with 1TiB SATA SSD each, for a raw total of 3TiB. Usable storage must be around ~1.8TiB based on my configuration. I don’t need much more to be honest, and I can always add more nodes if it gets tight.

                                                                                                    My setup goes against many of Ceph’s best practices, but I’m lacking the hardware to run a perfect cluster. My replication levels are lower than should be, my network is 1GbE, etc.

                                                                                                    That said, I’m very happy with it. Haven’t had any trouble for months, it’s fast enough, provides some sort of high avail., and its interfaces connect natively to Proxmox VE and Kubernetes, among others.

                                                                                                    If you want extra resources, Mastering Ceph is great, binged through it when setting up the cluster.

                                                                                                    1. 1

                                                                                                      Mind if I ask what you paid for that hardware in total? 3 NUCs would that be around $600? Plus another few hundred for storage? Or are you sourcing used gear at substantially cheaper than that?

                                                                                                      1. 2

                                                                                                        More like ~1400€ as I maxed out ram, and SSDs are Samsung EVOs. I use those nodes not only for storage but also virtualization.

                                                                                                        :$

                                                                                                        1. 1

                                                                                                          Ah cool! Which hypervisor are you using? ~1.5 grand doesn’t feel unreasonable for a home lab with 3 physical nodes and a generous helping of storage and RAM.

                                                                                                          1. 2

                                                                                                            Proxmox VE cluster atop the 3 NUCs, 96GB RAM total, right now at ~50% saturation.

                                                                                                            1. 1

                                                                                                              I’m looking at options at the moment. If you were setting the lab up again today would you still use Proxmox VE? Good experience overall?

                                                                                                              1. 1

                                                                                                                If I had enough time, I would’ve loved to use OpenStack (haven’t used it yet, but is a skill I want to acquire) but it was blocking me for too long. Otherwise, I would use Proxmox VE again.

                                                                                                                Its design is simple enough that I can run it atop a bunch of Debian servers while running other stuff (such as Ceph).

                                                                                                                1. 1

                                                                                                                  Otherwise, I would use Proxmox VE again

                                                                                                                  Thanks for the rec!

                                                                                                                  run it atop a bunch of Debian servers

                                                                                                                  Am I reading wrong or are you saying Proxmox runs inside debian? I got the impression from the website it was its own distro.

                                                                                                                  1. 1

                                                                                                                    The distro they distribute is just Proxmox VE installed atop a pre-configured Debian.

                                                                                                                    You can actually have Debian installed first, then install Proxmox on top of it: https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Buster

                                                                                                1. 4

                                                                                                  I don’t care about Apple computers and want to filter out stories related to them, without filtering out other hardware stories.

                                                                                                  I don’t care about Amiga and want to filter out stories related to it, without filtering out other hardware stories.

                                                                                                  I don’t care about x86 CPUs and want to filter out stories related to them, without filtering out other hardware stories.

                                                                                                  I don’t care about people whining about the content being posted here and want to filter out questions related to them, without filtering out other meta posts.

                                                                                                  etc., etc

                                                                                                  Tags are not for filtering, but to categorize stories in some logical order directed by site admin, more to promote specific kinds of posts rather than let them die. I also don’t think adding yet another category is reasonable at all, there’s already too much of them.

                                                                                                  In the perfect setup IMO, the tags should indicate the kind of post itself - and it’s already done for “show”, “video”, “meta”. But I would like to see a difference between “article” (blog post, news, paper related to the particular point of time with the date explicitly stated in description) and “timeless” links like the homepage of interesting software or some howto/essay which is valid in 2002 and 2020 in the same way - for example, vim project homepage would be like this, but “why you should use vim in 2137 for the greater good” is definitely an time-related article. With this approach and a bit of sensible UX, the “timeless” links won’t be lost after a few weeks of front-page history.

                                                                                                  1. 19

                                                                                                    Tags are not for filtering

                                                                                                    Yes they are. That’s why there is a filtering function for tags. It’s even explicitly called out as one of the functions in the “About” section of the site.

                                                                                                    there’s already too much of them.

                                                                                                    I’m here because of the tag system. If there wasn’t a tag system here that I could use to filter out uninteresting things, then why would I be here instead of HN or Reddit? The same links are posted to all those places. You just can’t see them because they are drowned out in all the noise. That is what the filtering and tag system is there to prevent.

                                                                                                    If the amount of posts on Lobste.rs increased by a factor of 10, tags would be the only way to filter out what you don’t find interesting and since there’s regularly people calling for tags to filter out stuff that’s posted here, then it seems the growth is already hitting a pain point for many, so no, there are still not enough of them.

                                                                                                    1. 1

                                                                                                      If number of base tags are too many, perhaps some sort of hierarchical tag system would make sense?

                                                                                                      1. 3

                                                                                                        I’ve yet to understand the concept of there being “too many tags”. Is it because posts have many of them and it makes the titlebar of posts cluttered? Is it because it’s difficult to find the tags when you need to filter them, or if you want to look through them for some content? What is it?

                                                                                                        To me the tag system is dysfunctional because there aren’t enough tags, and when there are tags, they are too general. The “Linux” or “Windows” tags are entirely unhelpful to me as those are just way too broad to have any use. I guess a few people can get some use out of them, but I can’t. Just see this very post. As of writing, 7 people have hidden this post. I’d imagine those people would wish this kind of topic was tagged as “tag request” so they could filter them away.

                                                                                                        I’d rather have many, many more tags so that posts could actually be categorised in a helpful way and I wish the tagging system was extended a lot. I wish the filtering worked so that I could combine tags into filters. Something like “meta && hardware” would only filter out posts if both tags matched. That way I can still se meta posts and hardware posts, but posts that are tagged as both would be filtered out. This would help a lot if you care about two separate topics, but not the intersection or something like that.

                                                                                                  1. 6

                                                                                                    Honestly, I wouldn’t mind having this tag. I come here for technical content. Keyboard falls into the periphery of that, and really only relates to “how we do our work”. Even though I do have mechanical keyboards at all my workstations, I don’t really feel like this is really on-topic for Lobste.rs. Being able to filter it out would be great.

                                                                                                    1. 2

                                                                                                      Probably going to be adding more dumb triggers to the bot in the ##crustaceans IRC channel (hey, join us there if you want to talk about off topic stuff that doesn’t fit in #lobsters)

                                                                                                      Maybe look into making it detect syllables and replacing some of them. That sounds like a fun challenge.

                                                                                                      1. 3

                                                                                                        This is a bit of a simplistic model, but it’s absolutely a good intro to the topic. There are many more filters you might want (compound words for example), and enrichment (synonyms, phoenetics, spellcheck) you could do to the tokens before adding or searching for it. Boosting and reducing score based on exact or partial match.

                                                                                                        Also consider the target language. This will work well for English, but many other languages have different grammar rules that will make the strategies employed here fail.

                                                                                                        There are tonnes of other options here (no surprise considering the competition in the market), and I would encourage people to explore the problem space as you can improve everything from the matching algorithm, tokenizers and other processors in quite various and interesting ways.

                                                                                                        1. 1

                                                                                                          It is using Snowball stemmer which works for English, Spanish, Portuguese, French, German, Italian.

                                                                                                          1. 2

                                                                                                            Not with the current implementation as he specifically imports the English version.

                                                                                                            Adding to that, stemmers won’t break up compound words properly. The classic joke of “this is a flammenwerfer. It werfs flammen” is a joke about the word “flammenwerfer” which literally writes as “flamethrower” in German (note the lack of space), but a stemmer won’t break those two words up into different tokens. Many languages work like this. Many more do even more crazy stuff by compounding words and adding suffixes, prefixes, and infixes. Often many at the same time. Stemming is really just the absolute start of reducing the number of tokens down to the constituent parts. There are many more steps to this.

                                                                                                            I’m not trying to shit on his post, because it’s an excellent introduction to the topic, but I wanted to point out that there are many areas where this can be vastly improved if you wanted to tinker with this yourself.

                                                                                                        1. 29

                                                                                                          I cannot help myself but to imagine a open source ideas incubator governed by:

                                                                                                          Antirez, Linus, Mike Pall (LuaJit), Rich Hickey (Clojure)

                                                                                                          Perhaps, they would find it difficult to work together, but they all have something in common:

                                                                                                          1. They cannot be easily manipulated
                                                                                                          2. they do not want to manipulate others
                                                                                                          3. They are visionaries
                                                                                                          4. They express themselves through software (on both technical and conceptual levels)
                                                                                                          5. They work very hard, for very long time, based on a believe and passion alone
                                                                                                          6. They are not afraid to challenge ‘status quo’

                                                                                                          The combination of the above, perhaps is rare, and finding a way to explore their combined wisdoms, quirks, and talents – would be very neat and beneficial to society as a whole.

                                                                                                          If such a cooperative is successful, I would also hope that they would figure out a way to find the next generation of folks so that the process continues.

                                                                                                          1. 5

                                                                                                            I like it, but maybe sub Mike Pall with Roberto Ierusalimschy because he seems to meet all the same criteria except has a wider range of projects he’s involved in and presents lots of white papers and research around his projects. [1]

                                                                                                            No offence to Mike Pall, of course, LuaJIT is still alien software in my book and “he” still could be an anonymous group of genius computer scientists sharing a pseudonym afaik.

                                                                                                            [1] - http://www.inf.puc-rio.br/%7Eroberto/cvpub.html

                                                                                                            1. 3

                                                                                                              Why are there no women in this list?

                                                                                                              1. 47

                                                                                                                While I agree with the sentiment, I think the short question comes off as aggressive. Instead, you can make a suggestion to avoid putting all of the onus on the previous commenter.

                                                                                                                For example, “I noticed your list doesn’t have any women. What about ___ or ___? They have a proven track record on $PROJECT.”

                                                                                                                It brings attention to talented women in the industry and provides people with a jumping off point to learn about their accomplishments. Asking questions calls attention to biases, but it doesn’t always inform.

                                                                                                                1. 13

                                                                                                                  Some random posters list if 4 of their favorite open source project leaders doesn’t need to add a token woman. Asking politely would have made it harder to see how completely ridiculous this is.

                                                                                                                  1. -1

                                                                                                                    You mistakenly assumed the sentiment is to call out a user instead of pointing out the systems that have led to there not being a lot of women for them to include.

                                                                                                                    The question is about why there aren’t comparably a lot of women noted in open source and not meant to call out OP directly.

                                                                                                                    Y’all are being defensive where it isn’t needed and taking this personally instead of as a time to reflect on why open source culture is how it is and how behaviors in the current system are the problem.

                                                                                                                    Honestly, with 23 upvotes and 22 downvoting and having to share your defense, all we’ve done instead is identify the problem even more concretely than would have happened if y’all would have taken the comment for what it was and not for what it wasn’t.

                                                                                                                    For those of you labeling this as “off-topic” specifically, I would argue that it isn’t. I’m asking about a list in response to a comment about a list. The list is the topic in context of this thread.

                                                                                                                    Hopefully this comes to fruition, because it’s unfortunately too relevant here. https://lobste.rs/s/lpvcsm/proposal_for_moderation_policies_no_tone

                                                                                                                    1. 5

                                                                                                                      Y’all are being defensive where it isn’t needed and taking this personally instead of as a time to reflect on why open source culture is how it is and how behaviors in the current system are the problem.

                                                                                                                      If you wanted people to reflect on it, then posting a pointed question is not the way to go. Something similar to this would have been waaay better at getting people to think:

                                                                                                                      I’d love to see a few women contributors on that list too. Do you know any who would fit that team?

                                                                                                                      I’m not here to tone police comments because I actually agree with you that we should encourage women to join us in these endeavours, but you are not helping that cause. You are creating division by using bad wording and being more focused on being “correct”. Take this loss and let the issue die down. The trenches have already been dug here.

                                                                                                                      1. 1

                                                                                                                        If you wanted people to reflect on it, then posting a pointed question is not the way to go. Something similar to this…:

                                                                                                                        I’d love to see a few women contributors on that list too. Do you know any who would fit that team?

                                                                                                                        Your new question here has absolutely nothing to do with the one that was posted. monokrome was not looking for someone to offer up the name of a woman in tech, but to discuss the reasons why there might not be one on the list in the first place.

                                                                                                                        I’m not here to tone police comments

                                                                                                                        Seems to me that not only are you here to tone police, but also to police the content of the comment; to divert away from a meaningful and difficult discussion of under-representation (which you have no obligation to participate in), and instead re-frame it as a pedestrian question of “could someone please identify a women in tech”.

                                                                                                                        1. 1

                                                                                                                          discuss the reasons why there might not be [a female programmer] on the list in the first place.

                                                                                                                          Why should this discussion happen on lobste.rs? I thought we only allow content related to programming?

                                                                                                                      2. 3

                                                                                                                        Well, it seems that I misunderstood your comment here. I imagine that many others did too. I think that is the key issue here. Having a comment that explicitly calls out the system instead of the list would have made a difference for me. Calling out just the list makes it seem like the problem is with the person who created the list.

                                                                                                                        As for tone policing, I do believe systemic biases exist and need to be discussed. However, I think the way we discuss them is important.

                                                                                                                        I like lobsters a lot and I don’t like seeing discussions devolve into a locked in flame war. My comment was meant to provide constructive feedback and to take air away from destructive comments. My goal isn’t to prevent you from speaking, but to make it easier for your to be heard, if that makes sense.

                                                                                                                    2. 32

                                                                                                                      Cynical answer: building rep in the open source world takes a lot of time, and it’s been historically so woman-hostile that women haven’t been given a chance to build serious rep.

                                                                                                                      Hopeful answer: Jessie Frazelle, maybe? My niche is dominated by academics so I don’t know a lot of FLOSS names outside of formal methods.

                                                                                                                      1. 6

                                                                                                                        Speaking of Jessie Frazelle, I’ve recently learnt that she’s teaming up with a few other brilliant people at https://oxide.computer/, where you’ll find (among others) Bryan Cantrill and Steve Klabnik.

                                                                                                                        1. 3

                                                                                                                          Well, that’s cool :)

                                                                                                                        2. 12

                                                                                                                          Even the women who have built names for themselves in tech, are less likely to be known by men. So there’s that. I can think of a bunch of amazing people but not specifically in open source…

                                                                                                                          1. 8

                                                                                                                            Strange assumption. What are open-source projects run by women that people should know about?

                                                                                                                            1. 30

                                                                                                                              Cynical comment: Not identifying as a woman, but having “seen some things” over the years, I can’t help but think that some of the reasons we don’t find so many woman leading open source (surely there are many, though!) is because it’s dangerous to put yourself out there as a woman. How many sexual violence threats do you think a woman would receive if they were the maintainer of Redis, very opinionated, and shutdown ideas because they didn’t fit the direction she wanted to take? I bet the number is not 0.

                                                                                                                              1. 13

                                                                                                                                You-ain’t-seen-cynical-yet comment: How many death threats do you think a man receives if they’re the maintainer of Redis, very opinionated, etc? The number is very not 0. Anyone who has ever done anything significant has been on the receiving side of some harassment. Today’s effortless communication magnifies the effect, but I’m sure there were people writing “Ο Ευριπίδης τρώει σκατά” on the walls in 420 BC. The difference is whether you let it derail you. The successful ones are the ones who ignore that shit. So why do those who persevere tend to be “privileged”? A very simple psychological reason. Perceived-privilege means having no other face-saving option. If you bail out from a visible position after receiving some harassment and you say “I quit because I felt threatened as a woman” or “I quit because I felt threatened as a person of color” or whatever, there’s a fair chance you’ll be the subject of articles praising your heroism in exposing the harsh reality faced by members of $GROUP who dare to lead. Do the same thing as a straight white male, and, well, you’re a quitter. The narrative expects success from you, it expects you to keep your problems to yourself, and you’d better not have any insecurities. Underdogs are expected to battle with self-doubt; on you, it’s childish and absurd, so forge ahead or be a failure forever.

                                                                                                                                1. 9

                                                                                                                                  Or maybe it’s because those groups are often at risk in their every day life and take threats on themselves seriously due to past experience?

                                                                                                                                  1. 2

                                                                                                                                    That would be a pretty big mistake. Regardless of who you are, the supply of people willing to make threats still outnumbers the supply of people capable of carrying them out a million to one. The harm here comes from labels themselves.

                                                                                                                                    1. 16

                                                                                                                                      I think you’re arguing in good faith, so I’ll provide a good faith response. The problem isn’t one of existence but degree. I’ve been the target of internet outrage mobs and serial harassers, and both are terrifying. I lived through them, yes, but it’s absolutely awful to have someone constantly email you screeds from new, unblocked email addresses about how you’re awful and deserve to die. I’m also a straight (((white))) male and have only really gotten attacked over things I wrote, not my identity. Would I have muscled through it and continued writing if I had gotten 10x the amount of online harassment? I don’t know, maybe I would have managed, maybe it would have been too much for me. But there’s certainly some magnitude of abuse that would have gotten me to stop drawing attention to myself. Women and minorities get more abuse online, so it’s more likely to cross that line.

                                                                                                                                      Summary: everybody has tolerance level, there’s probably no significant difference in what the tolerance level is for men and women, but women get so much more abuse online it’s more likely to cross that tolerance level.

                                                                                                                                      1. 3

                                                                                                                                        Different people do have different tolerance levels; it’s easy to see that some people withstand massive abuse, and some don’t, and the differentiating factor is self-esteem, or confidence, or arrogance, however you want to interpret it. So why do the ones with that confidence tend to look alike? Freely granted, one reason is because there is injustice in the world, and a track record of success builds confidence.

                                                                                                                                        But that can’t be all either, and here is where my dark fear lies: by labeling people as disadvantaged, we disadvantage them. Psychology is a terribly powerful force. If you believe that the problems you face are the same problems shared by all human beings, trying to make something of our lives in an indifferent universe, then any successful human being can be a role model to draw strength from. If you believe that your problems are special, that only a few share your circumstances enough to understand, then you’re reliant on a role model who is “like you”. That mode of thinking used to be the province of moody teenagers, and growing past it was the sign of an adult — but now it’s just normal, and labeling strongly encourages it. All I want is a world where people tell themselves “I am a human being. I have been blessed with intelligence that can overcome any problem. I cannot ask for any more.”

                                                                                                                                        1. 1

                                                                                                                                          So, is your solution is to just ignore the problem and not talk about it? If so, I think that there has been enough proof to show that only makes the problem worse.

                                                                                                                                          1. 2

                                                                                                                                            No, just the opposite. If I just wanted to ignore problems and not talk about things, I think I could do that perfectly well on my own, without the aid of the internet. But because I have a foolish compulsion to try to make a positive difference in the world and help other human beings, you see me here. Thankfully for all involved, mostly that compulsion expresses itself as tens of thousands of hours of technical volunteering, but occasionally a bit of freelance philosophizing bubbles up. Agree with me or disagree with me, but kindly don’t misrepresent me.

                                                                                                                                  2. 5

                                                                                                                                    Less death threats than a woman receives. I’ve had multiple people threaten to murder me just because I was streaming video games on Twitch, and I’ve never had more than a dozen or so viewers. If a woman was maintaining something as big as Redis, they’d be getting more death threats than Antirez.

                                                                                                                                    Nobody should be getting death threats, but that’s just the truth.

                                                                                                                                    1. 2

                                                                                                                                      I think it’s much more likely that people quit silently all the time, whether they’re URMs or not. It just doesn’t get publicized so much, so it’s not as visible. But when people quit publicly, it’s much more visible, so it’s what we tend to focus on.

                                                                                                                                  3. 3

                                                                                                                                    I am choosing not to answer this because (1) it’s beside the point, and (2) as I said in the remark you’re replying to, nothing comes to mind. I’m not clear why you felt the need to ask for something that I already said I don’t have.

                                                                                                                                  4. 2

                                                                                                                                    Yeah, the way women are treated in open source doesn’t help the situation.

                                                                                                                                  5. 1

                                                                                                                                    I was hoping people would see it this way but it seems everybody takes it defensively instead of identifying problems. Thanks for not being one of them :)

                                                                                                                                  6. 11

                                                                                                                                    What do you hope to gain by asking such a pointed question that comes across as very aggressive?

                                                                                                                                      1. 1

                                                                                                                                        To be clear: This is not trolling or off topic. This is a reply to a post that directly mentions the comment which it was replying to, and the content that this comment represents is exactly the kind of content that the link represents. I am not trolling, but want you to be aware that this behavior is being noticed.

                                                                                                                                        The constant flagging of comments only proves that flags can’t be used to do anything like banning people, because people are too immature, defensive, and unreasonable to flag properly.

                                                                                                                                    1. 34

                                                                                                                                      And here you see why Antirez wants out.

                                                                                                                                      1. 15

                                                                                                                                        Exactly, too many people in the industry spend their time stirring up controversy. Those folk do not provide solutions and just cause people like Antirez problems and a heacache. They complain and paint people that provide tremendous benefit to the company in a bad light.

                                                                                                                                      2. 18

                                                                                                                                        Go ahead, make your nomination.

                                                                                                                                        1. 11

                                                                                                                                          Why are there no Uzbekistanis on this list?

                                                                                                                                          1. 28

                                                                                                                                            Алекса́ндра Аса́новна Элбакя́н isn’t Uzbekistani but Kazakhstani (so not part of the usual US/Europe community), but definitely matches the criteria in the list, through Sci Hub challenges the status quo in ways that - in the long term - may exceed even Linus’ contributions and is even a woman (see the question up-thread for why that matters). So, there’s my nomination.

                                                                                                                                            1. 3

                                                                                                                                              I don’t know, in the long run, if Sci Hub will be more influential than Linux. But as of 2020 it’s absolutely more influential than Redis, LuaJIT, and Clojure.

                                                                                                                                              1. 2

                                                                                                                                                Hahaha, thank you for this answer :)

                                                                                                                                              2. 5

                                                                                                                                                Uzbekistanis make up 0.4% of the world population. Women make up ~50% of it.

                                                                                                                                                1. -2

                                                                                                                                                  Women make up ~50% of it.

                                                                                                                                                  What are you implying exactly?

                                                                                                                                              3. 1

                                                                                                                                                Because Redis, Linux, LuaJit, nor Clojure were made by women.

                                                                                                                                                1. -9

                                                                                                                                                  Because none of them has come out as trans yet.

                                                                                                                                                  1. 6

                                                                                                                                                    Per my sister comment, I don’t think a short, quipy comment helps further this discussion. This comment thread is potentially sensitive and I do not think we should escalate it.

                                                                                                                                                    1. 6

                                                                                                                                                      There is nothing we as users can do. This site is just going to continue going down the shitter unless the admins/mods start enforcing rules, or replacing the terrible, terrible, upvote-comment-tree comment format with a traditional forum layout. If I was running this site, I would ban this person (and everyone who wrote a snarky reply) for 7 days, leave the comment in-tact, and prevent people from replying to it. It’s simple and gets the message across.

                                                                                                                                                      1. 2

                                                                                                                                                        Could you link to the comment you’re referring to? I can see a couple candidates and don’t want to misunderstand you by guessing.

                                                                                                                                                        Also, what specific rule would you like to see added and enforced?

                                                                                                                                                        1. 1

                                                                                                                                                          “Why are there no women in this list?” is rather passive aggressive and in no way constructive, I think it warrants a temp-ban. It’s a zero effort cheap shot. Look at the comments that spawned from it. Would be a tragedy if lobste.rs became like HN, Reddit, or, godforbid, Twitter. </2 cents>

                                                                                                                                                          1. 2

                                                                                                                                                            Not to mention that the poster’s Twitter account is suspended – that takes some effort.

                                                                                                                                                            1. 1

                                                                                                                                                              moved reply to meta thread for the sake of conversation there: https://lobste.rs/s/lpvcsm/proposal_for_moderation_policies_no_tone#c_fu0xzl

                                                                                                                                                            2. 1

                                                                                                                                                              Sorry I shouldn’t have used the word “rule”. I don’t think specific rules are strictly necessary. All I’m saying is, you’re admin, it’s your site, you have all the power and can do basically whatever you want. I feel like punishing the bad actors in a public way would fix a lot of things.

                                                                                                                                                              SomethingAwful and Facepunch had pretty good mod teams and tooling if you want something to go off of.

                                                                                                                                                            3. 1

                                                                                                                                                              Well, now we know why N64N64 isn’t a mod.

                                                                                                                                                          2. 2

                                                                                                                                                            What is your problem?

                                                                                                                                                        2. 2

                                                                                                                                                          RMS fails the second criteria? If not, why did you choose not to include him?

                                                                                                                                                          1. 25

                                                                                                                                                            I can imagine those four working well together. I cannot imagine them working well with RMS.

                                                                                                                                                            1. 1

                                                                                                                                                              This comment is especially funny when juxtaposed with https://lobste.rs/s/gigoo8/end_redis_adventure#c_tf95fm - as RMS is well known for his ‘gross’ approach to sexual advances.

                                                                                                                                                            2. 1

                                                                                                                                                              While I understand the idea, I wonder whether such a thing is in general a good idea. You know, when someone is good and successful at X, it doesn’t necessarily mean that they are also good at making others good and successful at X.

                                                                                                                                                              This is based on a complete assumption. What if these people got successful because they went their own road. I think that’s what these people have in common. Following the steps of one of them closely (which might be the main thing they can provide) might be the complete opposite.

                                                                                                                                                              Without wanting to go too far from that thought, I also see that in day to day work, that is people assuming they do the right thing based on someone else having done the same thing. While this of course might be true and is a good approach in many situations, it might not be.