1. 11

    On one hand, I don’t particularly find the Linux code particularly pleasant to work on, so I probably wouldn’t be contributing in my spare time regardless.

    On the other hand, I think that this reduces the chance that I’ll send any patches in the future; I find these “welcoming” cultures make me feel less at ease, for whatever reason, which is a second strike against my involvement.

    For me, the code reviews I got from Theo were a highlight of sending in patches to OpenBSD.

    In the end, it doesn’t matter much – not everything needs to be for everybody, and the Linux community isn’t run for for me. This will bring some people in, push others out, and the world will go on.

    1. 7

      True. I’m also concerned that code quality (and therefore users) will suffer.

      1. 21

        Why? Do you truly believe that it is impossible to reject bad patches without telling someone that they should be “retroactively aborted”?

        1. -5

          Language as harsh as that is used daily in normal speech between developers. I’ve seen much worse slack channels in terms of use of language, and you wouldn’t believe the language I’ve seen used on IRC to describe bad code.

          I do indeed think that if you start censoring peoples’ language they’re going to change the way they contribute for the worse. If all you did was ban the absolute worst things like that, nobody would complain. But the reality is that’s not what will happen. Anything ‘offensive’ will be banned. Offensiveness is completely subjective.

          1. 18

            Language as harsh as that is used daily in normal speech between developers

            That’s a rash generalisation. At none of the places I’ve worked as a developer would that sort of language be acceptable.

            Offensiveness is completely subjective

            That’s also untrue. While there will be grey areas, there are some things that are objectively offensive if interpreted literally - and if they’re not meant literally, why not use another expression?

            1. 3

              I’m going to guess you’re an American, correct me if I’m wrong. EDIT: stand corrected

              The American cultural norm of ‘compliment sandwiches’ and being obsequiously polite is cancer to the ears of most people that aren’t Americans. I find it quite funny that Americans have this idea of Japanese as being very polite culturally, while Americans are insanely polite culturally compared to most other English-speaking countries.

              The typical British, Australian or Kiwi software developer swears like a trooper. It’s not uncommon, it’s not offensive. You wouldn’t do it in an email, but this is the key point: my emails are not Linus’s emails. The context is different. All his communication is by email, so naturally email carries a much lower average level of formality.

              That’s also untrue. While there will be grey areas, there are some things that are objectively offensive if interpreted literally - and if they’re not meant literally, why not use another expression?

              I don’t even know how to respond to this. Why would one only ever say things you mean literally? Speaking entirely literally is something I would expect of someone with extreme levels of Asperger’s syndrome, I believe it’s a common symptom.

              1. 9

                I’m going to guess you’re an American, correct me if I’m wrong

                The typical British, Australian or Kiwi software developer swears like a trooper

                You are wrong; I’m Australian, currently working in England, and I disagree. Regardless, swearing by itself is not something that I find offensive.

                Why would one only ever say things you mean literally?

                That’s not what I suggested. If you have a choice between a highly offensive figurative or metaphorical expression and some other expression - whether literal or also figurative - which is not highly offensive, why go for the former?

                1. 2

                  You are wrong; I’m Australian, currently working in England, and I disagree. Regardless, swearing by itself is not something that I find offensive.

                  I see

                  That’s not what I suggested.

                  I must have misinterpreted you. Sorry.

                  If you have a choice between a highly offensive figurative or metaphorical expression and some other expression - whether literal or also figurative - which is not highly offensive, why go for the former?

                  People say things that others find offensive, sometimes on purpose and sometimes not. Offensiveness is subjective. I genuinely don’t think I’ve ever been offended. Why go for one expression over another knowing that someone will get their knickers in a twist over it? Because you don’t care if someone finds it offensive? Because you enjoy it?

                  I have to admit that I actually quite enjoy knowing that someone got self-righteously offended over something I’ve said. It hasn’t happened too often, but when it does it’s just great.

                  EDIT: to be clear, there is ‘offensiveness’ that I don’t like. If someone is racist, I’m not offended, I just think that being racist is wrong and stupid and that they are wrong and stupid. I guess you could call this ‘offense’ but it’s really not the same thing.

                  1. 5

                    Why go for one expression over another knowing that someone will get their knickers in a twist over it? Because you don’t care if someone finds it offensive? Because you enjoy it?

                    I was not intending for you to provide an answer for the “why” - it was a rhetorical question. The point was that I do not think you should say something that may well offend someone, when there is a way to communicate without doing so.

                    Offensiveness is subjective. I genuinely don’t think I’ve ever been offended

                    I suspect this is why you’re having difficulty seeing the problem, and while I envy you never having experienced the feeling of being offended I can see that this could lead to lack of empathy for those who were.

                    Maybe you wouldn’t get offended by something, but that doesn’t mean it’s “not offensive” per se. I don’t agree that offensiveness is entirely subjective. Implying (or stating directly) that someone is stupid in communication to them, for example, is generally considered offensive. Statements can be intended to cause offense. There may be disagreement on specific cases, but I think in general that there would be good agreement in a survey of a random portion of the population that certain statements were offensive.

                    1. 1

                      I think the reality is that I would be closest to feeling hurt or offended by someone calling me stupid if I really had done something stupid. I’ve been called stupid when I haven’t been stupid many times, doesn’t bother me. I’ve been called stupid when I really have been stupid, and it does indeed make you feel bad.

                      I’ll acknowledge that the best way to deal with some bad code getting into the Linux kernel isn’t to make the person that wrote it feel bad.

                2. 4

                  The typical British, Australian or Kiwi software developer swears like a trooper.

                  As a kiwi, I have not had this experience at all, quite the opposite. Everyone I work with is polite and respectful. This is just my experience, but I’m very surprised by your comment.

                  it’s not offensive

                  Sure, if it’s just swearing in general (though I’d still prefer to keep it to a minimum). The problem is when it becomes personal. Your argument is that people use ‘language just as harsh is used daily’, but there’s a line between bad language and abusive language. I don’t think the latter should be acceptable in a professional environment (at least one I’d want to work in). You can’t use one to justify the other.

                  1. 2

                    The typical British, Australian or Kiwi software developer swears like a trooper. It’s not uncommon, it’s not offensive.

                    I work in software development in the UK and many of Linus’ comments would be seen as completely unprofessional in either emails or conversation - certainly far past the bar where HR would get involved. There’s a massive gap between swearing and direct personal insults.

            2. 20

              I am honestly at a loss to see who abiding to a bland CoC could lead to code quality suffering.

              Nothing in the CoC that I have read is in any way unremarkable. It’s simply normal professional behavior codified, with some additions to address the peculiarities of mostly online communications.

              1. 5

                It’s simply normal professional behavior codified.

                That ship has sailed, but I am not convinced Open Source should be held to the standards of “professional behavior”. For instance, should we stop accepting underage contributors? What about anonymous or pseudonymous contributions?

                Moreover what constitutes “professional behavior” differs wildly between countries and even companies within countries. For instance, “don’t ask don’t tell”-style policies are still the norm at some workplaces; do we want that in our communities? Or should we just accept that the average (non-Trump voter) U.S. sentiment should be the norm in Open Source?

                Regarding Linus, he does (did?) have a very strong way of reacting when people disregarded things that he considered important principles of the kernel such as “do not break userspace”. He isn’t shy to use strong language to criticize companies either :)

                Whether this has a positive or a negative effect is hard to say. It certainly antagonizes some people, and especially some potential new contributors, but at the scale of Linux should that still be the main concern of the project?

                In any case Linus knows he reacts too strongly too fast already. This is not the first time he says something like that. We should wait and judge the long-term effects in a few months or years.

                1. 12

                  Treating people professionally does not imply employment. A proprietor of a store treats a customer professionally by not insulting them, or refusing service. A teacher treats a student professionally by not verbally denigrating them, for example. A maintainer of an open source project treats bug reports professionally by attempting to reproduce them and applying a fix, even though the submitter of the issue may as well be anonymous.

                  It’s basically the 21st century formulation of the Categorical Imperative, as far as I am concerned.

              2. 14

                No one said you have to be an asshole when being firm about rejecting patches.

                1. -1

                  A lot of people will interpret anything firm as being an arsehole. If you don’t put smiley faces at the end of every sentence, some people will interpret it as you being an arsehole. If you don’t couch every negative thing you say between two positive things, people will react very aggressively.

                  1. 16

                    But saying someone should be “retroactively aborted” for some bad code?

                    1. 10

                      If you don’t put smiley faces at the end of every sentence, some people will interpret it as you being an arsehole. If you don’t couch every negative thing you say between two positive things, people will react very aggressively.

                      This sounds like a very broad generalization to me.

                  2. 22

                    I think there’s no causal link between “being nicer when responding to patches” and code quality going down. If anything I’d suspect the opposite; you get people who learn and improve rather than giving up after feeling insulted, and then continue to submit quality improvements.

                    1. 3

                      Linus Torvalds is nearly always nice when responding to patches. In 0.001% of emails he’s rude. Unfortunately he sends a lot of emails, and people cherry-pick the worst of the worst.

                      1. 20

                        His own apology and admission of a problem would indicate that the issue is significant. That “0.001%” is a made-up number, isn’t it? While I’m sure that only a small number of his emails are insulting, that small number still has - and has had - a detrimental effect on the mind-state of other developers. This is what’s come out of a discussion between Linus and a number of developers.

                        Don’t get me wrong, I like Linus generally (not that I know him personally) and I think he does a great job in general, but it’s clear that this personality problem has been a growing problem. A number of people - even quite prominent developers - have left the kernel development arena because of this kind of behaviour from Linus and others and/or issues around it.

                        I think this is a great step on Linus’ behalf, it must have been hard to make the admissions that he has and it’s a sign that things really could be better going forward.

                        1. 4

                          His own apology and admission of a problem would indicate that the issue is significant.

                          I disagree. I think the issue is massively overblown and that he’s been worn down by the endless bullshit about something that really isn’t an issue.

                          That “0.001%” is a made-up number, isn’t it?

                          If you’d like to go do sentiment analysis on every LKML email he’s sent, be my guest. I’d love to see the real numbers. But I chose the number to make a point: it’s a vanishingly small number of emails. It’s about half a dozen well known rude emails over two decades or more. They’re really not that bad taken in the context of the number of emails he sends and the context in which he sends them. He doesn’t say ‘this code is shit’ out loud to his coworker and then send a nice polite email. The LKML is the entire communication layer for all of Linux kernel development (plus the other lists of course). The context of those emails includes a lot more than what you’d normally include in emails in a normal development environment.

                          While I’m sure that only a small number of his emails are insulting, that small number still has - and has had - a detrimental effect on the mind-state of other developers. This is what’s come out of a discussion between Linus and a number of developers.

                          I mean frankly I think that if someone is going to be detrimentally affected by a few emails they are no great loss. I’ve seen a few people that say things like ‘I’d never contribute to Linux even if that were in my skill set, because they’re always rude to new people’ and then cite Linus’s emails as evidence of this. I’ve seen that sort of comment a lot. Dozens of times on /r/linux, dozens of times on /r/programming, many times on HN. It’s rubbish! The LKML isn’t obsequious: the email culture there is the traditional techy one of saying what you need to say straightforwardly rather than the traditional corporate one of layering everything in sugar to avoid sounding rude to people that expect every criticism to be wrapped in three layers of compliments.

                          The LKML is especially not rude to newcomers. Linus has been rude, in the past, sure, but only to people that are expected to know better. Long term, hardcore maintainers that have been around for years. Is it okay? No, but it’s not anything to get worked up about. It’s a really really minor issue.

                          There are way bigger issues in Linux kernel development, like the really scary amount of control and input some companies have in its development.

                          Don’t get me wrong, I like Linus generally (not that I know him personally) and I think he does a great job in general, but it’s clear that this personality problem has been a growing problem. A number of people - even quite prominent developers - have left the kernel development arena because of this kind of behaviour from Linus and others and/or issues around it.

                          They probably would have left anyway. People don’t change careers because someone said ‘retroactively aborted’ in an email once.

                  3. 8

                    funny, I almost avoided a potential security report to OpenBSD because I saw the contact is theo. I didn’t want to get flamed.

                  1. 3

                    Would zig compile time evaluation be powerful enough for something like string -> PEG parser as a library?

                    1. 1

                      The only potential roadblocks I foresee for this use case are:

                      • zig compile time code execution is much slower than it should be. It should be able to roughly match CPython’s performance, but it’s much slower and doesn’t free memory. Ironically we actually need to add a garbage collector in compile time code execution.
                      • zig compiler doesn’t yet have sophisticated caching that would make it practical to have a really complicated compile time implementation. So you’d wait for your thing to run with every build.

                      Both planned to be fixed, it’s just a matter of time.

                      1. 1

                        That’s interesting, so you have a full Zig interpreter that runs at compile-time?

                        But won’t collecting garbage make it slower? Are the compile-time programs allocating so much that they need to free memory?

                        I’m curious if any other languages have run into this problem.

                        1. 2

                          so you have a full Zig interpreter that runs at compile-time?

                          It’s a little more complicated than that. Zig AST compiles into Zig IR. Each instruction’s value is either compile-time known or not. Most instructions which have all compile-time known operands produce a compile-time known result. There are some exceptions - for example, external function calls always produce a runtime result.

                          If statements and switch statements whose condition/target value is compile-time known, the branch is chosen at compile-time. This means that zig has “implicit static if”. E.g. if you do if (false) foo(); then foo() is not even analyzed, let alone included in code generation.

                          In addition, there is the comptime expression: https://ziglang.org/documentation/master/#Compile-Time-Expressions This causes all the branches and function calls - including loops - to be compile-time evaluated.

                          But, importantly, you can mix compile-time and run-time code. Variables can be marked comptime which means that loads and stores are always done at compile time.

                          For loops and while loops can be marked inline which unrolls the loops and makes the iteration variables known at compile-time. You can see this in action for the printf implementation: https://ziglang.org/documentation/master/#Case-Study-printf-in-Zig

                          But won’t collecting garbage make it slower?

                          I can’t answer this in a clear way yet as I haven’t tried to solve it. The basic problem is the same as in e.g. Python where you could potentially have 2 compile-time values with references to each other, but not referenced from any root that is actually going to go into the executable, so they should not be in the binary.

                          In Debug builds zig has a goal of compiling fast, and willing to create a more bloated binary with worse runtime performance. In ReleaseFast builds, zig can take a few orders of magnitude longer to compile, but the performance should be optimal and bloat should be minimal. So it might be a thing where Zig does not garbage collect comptime values for Debug builds unless it starts to use too much memory, but it would certainly take the time to do this for ReleaseFast builds.

                          Are the compile-time programs allocating so much that they need to free memory?

                          I don’t personally have any use cases where that is true, but in general, I could create a program that allocates an arbitrarily large amount of memory at compile time in order to do a computation, but that value is not ultimately used in the binary, yet the memory allocated has references to each other, and so it would fool the reference counter.

                        2. 1

                          Ironically we actually need to add a garbage collector in compile time code execution.

                          Why? It seems like if you allocate and free as you would in normal Zig, this wouldn’t be a requirement.

                          1. 1

                            Thats really cool, things like regexes or sql statements could be pre-prepared at compile time with features like this.

                        1. 4

                          In CHICKEN we have had something like this for many years, in the bind egg (formerly called easyffi). I don’t really like it, to be honest. It can be very helpful for quick and dirty testing code, but a hand-written wrapper will usually result in a much better quality, more idiomatic and more high level library.

                          With hand-written wrappers you would tend to drop all the C-isms like pass by reference via pointer, explicitly passing string lengths and so on. Of course you can still use bind and wrap the resulting Scheme stubs in more idiomatic code like you would in a hand-written version. But then it doesn’t offer all that much, except more overhead.

                          It helps that the FFI in CHICKEN is very good, so writing C bindings manually isn’t that big a deal, in my experience.

                          1. 4

                            Yes. I don’t think this removes the need for writing translation code by hand, but it does remove the need to do write it entirely without the benefit of type checking – now, the compiler will complain if you accidentally forget a parameter, because you have an extern function.

                            In Myrddin, there’s no FFI – there’s just ‘extern’ prototypes and a compatible ABI.

                          1. 4

                            I’ve found that gron (https://github.com/tomnomnom/gron) is incredibly useful for gluing things to json in shell scripts.

                            1. 8

                              Self hosting with OpenSMTPd

                              1. 4

                                Obviously, if we intend to make Wayland a replacement for X, we need to duplicate this functionality.

                                Perhaps a less than popular opinion, but: No, you don’t. If you want to replace A with B, you don’t need to replicate every mistake A made. Then B wouldn’t be much else than A’, with old bugs and new.

                                Don’t get me wrong, X’s network transparency might have been useful at some point - it isn’t now.

                                1. 8

                                  Practice speaks otherwise, many people use it daily.

                                  1. 1

                                    That a lot of people use something daily doesn’t mean it is good, or needs to be replicated exactly. Running GUI programs remotely, and displaying them locally IS useful. It does not require network transparency, though.

                                    1. 1

                                      Require? Perhaps not. Makes things easier on some ways though.

                                  2. 6

                                    X’s network transparency might have been useful at some point - it isn’t now.

                                    I use it 5+ days a week - it is still highly useful to me.

                                    You’re right that fewer and fewer people know about it and use it - e.g. GTK has had a bug for many years that makes it necessary to stop Emacs after having opened a window remotely over X, and it’s not getting fixed, probably because X over network is not fashionable any more, so it isn’t prioritized.

                                    1. 2

                                      What is the advantage of X remoting over VNC / Remote Desktop?

                                      I remember using it in the past and being confused that File -> Open wasn’t finding my local files, because it looks exactly like a local application.

                                      I also remember that there were some bandwidth performance reasons. I don’t know if that is still applicable if applications use more of OpenGL and behave more like frame-buffers.

                                      1. 7

                                        Functional window management? If I resize a window to half screen, I don’t want to see only half of some remote window.

                                        1. 2

                                          Over a fast enough network, there’s no visible or functional difference between a local and remote X client. They get managed by the same wm, share the same copy/paste buffers, inherit the same X settings, and so on. Network transparency means just that: there’s no difference between local and remote X servers.

                                          1. 1

                                            It is faster, and you get just the window(s) of the application you start, integrated seamlessly in your desktop. You don’t have to worry about the other machine having a reasonable window manager setup, a similar resolution etc. etc.

                                            In the old days people making browsers, e.g. Netscape, took care to make the application X networking friendly. That has changed, and using a browser over a VDSL connection is only useful in a pinch - but running something remote like (graphical) Emacs, I prefer to do over X.

                                        2. 1

                                          I’d like to see something in-between X and RDP. Window-awareness built-in, rather than assuming a single physical monitor, and window-size (and DPI) coming from the viewer would by themselves be a big start.

                                          Edit: Ideally, pairing this with a standard format for streaming compressed textures, transforms, and compositor commands could solve a lot of problems, including the recent issue where we’re running up against physical bandwidth limitations trying to push pixels to multiple hi-def displays.

                                          1. 2

                                            FWIW I agree with you. It also so happens that something is coming soon enough .. https://github.com/letoram/arcan/wiki/Networking

                                        1. 9

                                          It landed, but I still have some follow up work to get full support for all types of snapshots. The process that does disk I/O starts with the fds preopened, and is chrooted and pledged, which makes opening the base images of the multi disk snapshots hard.

                                          1. 2

                                            Thanks for working on this.

                                            (I’m really hoping that someday I’ll be able to install Debian under vmm(4) from official install media. Currently it doesn’t detect any CD drives, and I’ve not been able to figure out why).

                                            1. 1

                                              Because Debian install media lack virtio drivers.

                                              1. 1

                                                I wonder if we could persuade them to include them?

                                                I suppose virtualbox and qemu emulate physical CD drives rather than virtio?

                                          1. 28

                                            I guess the author hasn’t worked on large code bases. Tests avoid regressions without needing to analyse the impact on the whole codebase.

                                            One of the points of tdd is in fact that it encourages small interfaces. Even in cases where the interface is not stable, having a suite of tests that captures the expected scenarios and behaviors allows developers to make changes (including during initial development) and know the impact on existing functionality.

                                            There are cases where manual testing makes more sense, but I’ve found those to be the exception rather than the rule. Generally scripts of no more than 1000 lines with a single well defined purpose. Of course those can then be integration tested, and also manually tested as a single unit.

                                            1. 14

                                              The post isn’t “don’t test,” it’s “mostly avoid unit tests.”

                                              I’m kinda inclined to agree with the author here, though I think it really depends on what sort of software you’re working on. There are projects that inevitably have lots and lots of easily unit testables interfaces. And there are projects that are inherently very stateful, making it difficult to unit test without lots of mocking. You can still do integration (or black box, or whatever) testing.

                                              I’m kinda in this boat at work, with a highly stateful system. There are a few things you could break out into a rather easily testable API that takes an input and outputs a result that you can check, but these are generally trivial, and if these parts don’t work, then the integration tests would reveal it anyway. So why maintain redundant unit tests? That’s not where the hard parts are.

                                              You could try highly stateful, highly mocked unit tests for the stateful parts but (without experience) I’ll say that it’s probably going to be high maintenance effort for poor yield. Keep changing the mocks as internals change. I’m concerned that they still wouldn’t catch the hard bugs.

                                              The hard bugs relate to transient behavior of the system. Threads being an obvious case. Flow control. Changes in system state that affect other components. IME unit tests are really bad at catching these type of bugs. And I’ve watched people struggle to write test cases for that type of bugs.

                                              I wish the system I was working on were as easy to test as sqlite, but no..

                                              1. 6

                                                The biggest advantage of unit tests for stateful systems in my experience is that it will point directly to the place in the code that is busted for the most part. integration tests tend to cover a lot of ground, but it can be hard to pinpoint what went wrong.

                                                My policy on this is always evolving, but usually I will use integration tests as my main line of defense for a brand new feature. This will cover the most ground but let me get something out there. Then, once I find issues outside of the happy path, I tend to target them with more unit-y tests.

                                                In practice, often this means that a bug in production turns into “factor out this problematic code to make it more testable”, then writing a test against it.

                                                This leaves the integration tests out of most edge case testing, but means that when other people hit corner cases they have a well documented example to work off of.

                                                If I write a specific test on an edge case, it’s more likely to be seen as intentional than if it’s just a part of an integration test.

                                                1. 4

                                                  As an SRE and distributed database engineer, I despise traditional unit tests for large stateful systems. I touched on this a lot in this talk on testing complex systems. Your biases while writing the implementation are the same as your biases when writing the tests, so don’t write tests at all. Use tools that generate tests for you, because that pushes the bias space into the realm of broad classes, which our puny minds can stumble into much more easily than enumerating interleaving spaces of multiple API calls or realistic hardware phenomena over time. You can apply this technique to anything, not just simple pure functions. This paper by John Hughes goes into plenty of specifics on how to do this, too.

                                                  We can build our systems so that these randomized tests can shit out deterministic regression tests that facilitate rapid debugging without pinning ourselves to a single point in statespace as unit / example / whatever tests do.

                                                  Unit tests and integration tests that explore a single script just create code that is immune to the test, but not necessarily reliable.

                                                  1. 3

                                                    let me start off by saying I like things like generative testing and am always looking for ways to integrate that kind of tooling into projects.

                                                    I have found that for enterprise software, where you have a pretty heterogenous system with a lot of edge cases around existing data in the system, it’s hard (in a holistic sense, not in a tooling sense) to really make cross-cutting declarations about the behaviour of the system. X will be true, but only when settings Y and Z are toggled in this way, and only during this time of day. Often times probing in the database for certain sorts of global conditions that affect things in a cross-cutting manner.

                                                    You can decouple systems to make this flow better, but often there’s intrinsic difficulties, where your best bet is to isolate X truth-ness. But when you have calculateXTruthiness: Bool -> Bool -> Bool -> Bool, the value of generative testing goes down a decent amount because it’s just a predicate! Meanwhile you do get at least a bit of value from some unit tests at least to document known correct behaviours (from a business rules perspective).

                                                    It’s all a spectrum, but it can be slim pickings in enterprise software for generative testing. Your best bet is to refactor to pull out “systemic” parts of your code to make it easier to test, even if your top layer remains messy as a consequence of reality being tricky.

                                                    Lots of time there is simply not really many overall properties to eke out of your system beyond “whatever the system is doing already” (because backwards compatibility is so important nowadays in the kinds of systems we build).

                                                    1. 2

                                                      Whatever your expectations of a thing are, you will almost always have success in violating them through a sequence of generated interactions if you built the thing with scripted unit and integration tests. If you have no expectations, then your job is done and you can look busy in other ways :P

                                              2. 10

                                                Integration tests tend to be more useful for broad regression detection. Often, the failures in a system come from mistaken assumptions about the behavior of other modules interfaces, and not from within the module itself. If I had a choice, I would prefer a handful of end to end tests over the same amount of time invested in unit tests. Or even better, a mix of integration tests to cover end to end issues, with unit tests on subtle or hairy core algorithms.

                                                It’s not a choice between unit testing and manual testing – there are other types of automated test.

                                              1. 2

                                                Binary blobs. Not particularly useful for anything beyond a demo.

                                                1. 1

                                                  Entire Facebook runs on this, so apparently they disagree: https://github.com/facebook/fboss

                                                  1. 2

                                                    I used to work on the fboss project when I was at Facebook. FBOSS runs on an internal, NDA protected version of this, but the GitHub binary dumps used to be missing a huge amount of configurability and features. A quick skim indicates that’s still the case.

                                                    My interpretation is that it’s there to enable demoware, and if you want to do anything serious, you need to talk to Broadcom to get NDAs signed.

                                                    1. 1

                                                      That’s a great information. Thanks for sharing.

                                                  2. 1

                                                    what do you mean? this is a full programmatic API for configuring bridges, ports, and other virtual network infrastructure. this is incredibly useful!

                                                  1. 1

                                                    My experience in Myrddin makes me think that you don’t actually need syntax to instantiate or specify generics. You just need a syntax for a ‘type parameter’, and let type inference unify for you. So, for example, a generic sort function in Myrddin looks like:

                                                     generic sort : (a : @t[:], cmp : (a : @t, b : @t -> std.order) -> void)
                                                    

                                                    If Go were to adopt the same sort of syntax, where @a represents a type parameter, it might look like:

                                                     func Sort(a []@t, cmp func(a @t, b @t) int) { ... }
                                                    

                                                    To invoke it, you just call it with the value:

                                                     Sort(myArray, myCmpFunc)
                                                    

                                                    There’s some design needed around how constraints work – my first attempt in Myrddin directly attached them to the type, which made a few things syntactically impossible, specifically specifying auxiliary types, but I think that’s more surmountable than trying to make explicit instantiation pretty.

                                                    1. 2

                                                      Sometimes specifying the types at the instantiation site also serves readability purposes for the next developer coming along.

                                                      1. 1

                                                        But the types for these function calls are just as strongly specified as any other function call: ‘a slice of @t’ isn’t fundamentally different from ‘a slice of int’, beyond code generation concerns.

                                                    1. 4

                                                      Its a bit of a tough choice. With the current state of things, most users would see a massive improvement from switching from ISP DNS servers that admit to collecting and selling your data and switching to cloudflare who has agreed to protect privacy.

                                                      In the end, you have to trust someone for your DNS. Mozilla could probably host it themself but they also dont have the wide spread of server locations that a CDN company has.

                                                      1. 5

                                                        While I agree that, you need to trust someone to your DNS, it shouldn’t be a specific app making that choice for you. A household or even a user with multiple devices benefits from their router caching DNS results for multiple devices, every app on every device doing this independently is foolish. If Mozilla wants to help users then they can run an informational campaign, setting a precedent for apps each using their own DNS and circumventing what users have set for themselves is the worst solution.

                                                        1. 1

                                                          It isn’t ideal that firefox is doing DNS in app but it’s the most realistic solution. They could try and get microsoft, apple and all linux distros to change to DNS over HTTPS and maybe in 5 years we might all have it or they could just do it themself and we all have it in a few months. Once firefox has started proving it works really well then OS vendors will start adding it and firefox can remove their own version or distros will patch it to use the system DoH.

                                                          1. 6

                                                            They could try and get microsoft, apple and all linux distros to change to DNS over HTTPS

                                                            I don’t WANT DNS over HTTPS. I especially don’t want DNS over HTTP/2.0. There’s a lot of value in having protocols that are easy to implement, debug, and understand at a low level, and none of those families of protocols are that.

                                                            Add TLS, maybe – it’s also a horrendous mess, but since DNSCURVE seems to be dead, it may get enough traction. Cloudflare, if they really want, can do protocol sniffing on port 443. But please, let’s not make the house of card protocol stack that is the internet even more complex.

                                                            1. 8

                                                              DNS is “easy to implement, debug, and understand”? That’s news to me.

                                                              1. 5

                                                                it’s for sure easier than when tunneled over HTTP2 > SSL > TCP, because that’s how DoH works. The payload of the data being transmitted over HTTP is actual binary DNS packets so all this does is adding complexity overhead.

                                                                I’m not a big fan of DoH because of that and also because this means that by default intranet and development sites won’t be available any more to users and developers, invalidating an age-old concept of having private DNS.

                                                                So either you now need to deploy customized browser packages, or tweak browser’s configs via group policy or equivalent functionality (if available), or expose your intranet names to public DNS which is a security downgrade from the status quo.

                                                                1. 3

                                                                  It is when you have a decent library to encode/decode DNS packets and UDP is nearly trivial to deal with compared to TCP (much less TLS).

                                                                2. 0

                                                                  Stacking protocols makes things more simple. Instead of having to understand a massive protocol that sits on its own, you now only have to understand the layer that you are interested in. I haven’t looked in to DNS but I can’t imagine it’s too simple. It’s incredibly trivial for me to experiment and develop with applications running on top of HTTP because all of the tools already exist for it and aren’t specific to DoH. You can also share software and libraries so you only need one http library for a lot of protocols instead of them all managing sending data over TCP.

                                                                  1. 6

                                                                    But the thing transmitted over HTTP is binary DNS packets. So when debugging you still need to know how DNS packets are built, but you now also have to deal with HTTP on top. Your HTTP libraries only give you a view into the HTTP part of the protocol stack but not into the DNS part, so when you need to debug that, you’re back to square one but also need your HTTP libraries

                                                                    1. 6

                                                                      And don’t forget that HTTP/2 is basically a binary version of HTTP, so now you have to do two translation steps! Also, because DoH is basically just the original DNS encoding, it only adds complexity. For instance, the spec itself points out that you have two levels of error handling: One of HTTP errors (let’s say a 502 because the server is overloaded) and one of DNS errors.

                                                                      It makes more sense to just encode DNS over TLS (without the unnecessary HTTP/2 stuff), or to completely ditch the regular DNS spec and use a different wire format based on JSON or XML over HTTP.

                                                                      1. 4

                                                                        And don’t forget that HTTP/2 is basically a binary version of HTTP

                                                                        If only it was that simple. There’s server push, multi-streaming, flow control, and a huge amount of other stuff on top of HTTP/2, which gives it a relatively huge attack surface compared to just using (potentially encrypted) UDP packets.

                                                                        1. 3

                                                                          Yeah, I forgot about all that extra stuff. It’s there (and thus can be exploited), even if it’s not strictly needed for DoH (I really like that acronym for this, BTW :P)

                                                              2. 1

                                                                it shouldn’t be a specific app making that choice for you

                                                                I think there is a disconnect here between what security researchers know to be true vs what most people / IT professionals think is true.

                                                                Security, in this case privacy and data integrity is best handled with the awareness of the application, not by trying to make it part of the network or infrastructure levels. That mostly doesn’t work.

                                                                You can’t get any reasonable security guarantees from the vast majority of local network equipment / CPE. To provide any kind of privacy the application is the right security barrier, not your local network or isp.

                                                                1. 3

                                                                  I agree that sensible defaults will increase security for the majority of users, and there is something to be said for ones browser being the single most DNS hungry app for that same majority.

                                                                  If its an option that one can simply override (which appears to be the case), then why not. It will improve things for lots of people, and those which choose to have the same type of security (dnscrypt/dnssec/future DNS improvements) on their host or router can do so.

                                                                  But I can’t help thinking its a bit of a duct tape solution to bigger issues with DNS overall as a technolgy and the privacy concerns that it represents.

                                                            1. 1

                                                              After reading this, I find myself liking MQTT more. The alternative that is being proposed sounds like an overly complicated morass.

                                                              1. 1

                                                                Notebooks make it easy to retry parts of the code you’re writing, which is very helpful if you have a bunch of steps that each take some time to compute. You can pretty easily write helpers to dump the state, and maybe pick up where you left off, but that still requires you to load the data again and define an appropriate entry point. Is there a good solution for that outside of notebooks?

                                                                1. 6

                                                                  Repls?

                                                                  1. 1

                                                                    Those don’t allow you to edit & rerun blocks of code, so that makes them less useful

                                                                1. 3

                                                                  IRC is great. It’s easy to implement a client for, simple enough to understand, and used pretty widely. It’s still the main protocol I use to keep in touch with people.

                                                                  The only thing I wish that it would get is server side history, so I could scroll back in a channel without idling or setting up a bouncer.

                                                                  1. 2

                                                                    Early this year I finally broke down and subscribed to IRCCloud. They handle all the details of staying connected so you have access to channel history. Admittedly it works out to about 14 cents per day. Well worth it, in my opinion.

                                                                    1. 1

                                                                      I’ve been keeping an eye on IRCCloud – I currently keep a ZNC server running… playing with it has been quite fun and instructive so far, but I would be OK paying 5$/month for someone taking care of it all. I’m waiting for them to open up a bouncer service so we can connect with other clients than their official IRCCloud client… apparently it’s on their roadmap (see bottom).

                                                                    2. 2

                                                                      There are people working on a revised spec called ircv3, that aims to address those issues. I haven’t been in touch with that group, so I can’t speak to their progress or success.

                                                                      1. 2

                                                                        I’m aware of ircv3, but I’m not aware of any proposal to add server side history to it – at least not one that’s gone anywhere. I’m sure someone cares about the other features, but they don’t really make a difference for me.

                                                                        Edit: And I found one: https://github.com/ircv3/ircv3-specifications/pull/292

                                                                        1. 1

                                                                          Uh, that is interesting. Thanks for sharing! I wonder if there are already any clients and servers out there.

                                                                          Also see this story: https://lobste.rs/s/zdkuil

                                                                          1. 2

                                                                            the rust irc crate aims for ircv3 support ;) (I’m trying to contribute to it (but outside of the v3 things))

                                                                            1. 1

                                                                              You mean this crate? https://crates.io/crates/irc

                                                                              1. 1

                                                                                Yup.

                                                                      1. 8

                                                                        As a European, I don’t quite get it: Americans seem to be concerned with net neutrality, meanwhile not protesting huge monopolistic corporations(the gatekeepers) removing some controversial users on their own judgement and with no way to appeal. Are individuals excluded from the net neutrality?

                                                                        1. 16

                                                                          I’m not very familiar with the legal details, but I assume the distinction is general access to the internet being considered a utility, while access to platforms being considered something like a privilege. E.g. roads shouldn’t discriminate based on destination, but that doesn’t mean the destination has to let you in.

                                                                          edit: As to why Americans don’t seem as concerned with it (which is realize I didn’t address): I think most people see it as a place, like a restaurant. You can be kicked out if you are violating policies or otherwise disrupting their business, which can include making other patrons uncomfortable. Of course there are limits which is why we have anti-discrimination laws.

                                                                          1. 1

                                                                            Well, they’re also private, for-profit companies that legally own and sell the lines. So, there’s another political angle where people might vote against the regulations under theory that government shouldn’t dictate how you run your business or use your property, esp if it cost you money. Under theory of benefiting owners and shareholders, these companies are legal entities specifically created to generate as much profit from those lines as possible. If you don’t like it, build and sell your own lines. That’s what they’d say.

                                                                            They don’t realize how hard it is to deploy an ISP on a shoe-string budget to areas where existing players already paid off the expensive part of the investment, can undercut you into bankruptcy, and (per people claiming to be ISP founders on Hacker News) will even cut competitors’ lines “accidentally” so their own customers leave them. In the last case, it’s hard to file and win a lawsuit if you just lost all your revenue and opponent has over a billion in the bank. They all just quit.

                                                                            1. 1

                                                                              Do you have the source for these claims regarding ISPs?

                                                                              1. 1

                                                                                Which ones?

                                                                                1. 2

                                                                                  …existing players … (per people claiming to be ISP founders on Hacker News) will even cut competitors’ lines “accidentally” so their own customers leave them.

                                                                                  1. 2

                                                                                    One of them described a situation with a contracted, construction crew with guy doing the digging not speaking English well. They were supposedly digging for incumbent but dug through his line. He aaid he pointed that it was clearly marked with paint or something. The operator claimed he thought that meant there wasnt a line there.

                                                                                    That’s a crew that does stuff in that area for a living not knowing what a line mark means. So, he figured they did it on purpose. He folded since he couldnt afford to sue them. Another mentioned them unplugging their lines in exchanges or something that made their service appear unreliable. Like the rest, they’d have to spend money they didnt have on lawyers who’d have to prove (a) it happened snd/or (b) it was intentional.

                                                                          2. 11

                                                                            The landmark case in the United States is throttling of Netflix by Comcast. Essentially, Comcast held Netflix customers hostage until Netflix paid (which they did).

                                                                            It’s important to understand that many providers (Comcast, AT&T), also own the channels (NBC, CNN, respectively). They have an interest in charging less for their and their partners content, and more for their competitors content, while colluding to raise prices across the board (which they have done in the past with television and telephone service).

                                                                            Collectively, they all have an interest in preventing new entrants to the market. The fear is that big players (Google, Amazon) will be able to negotiate deals (though they’d probably prefer not to), and new or free technologies (like PeerTube) will get choked out.

                                                                            Net neutrality is somewhere where the American attitude towards corporations being able to do whatever to their customers conflicts with the American attitude that new companies and services must be able to compete in the marketplace.

                                                                            You’re right to observe that individuals don’t really enter into it, except that lots of companies are pushing media campaigns to sway public opinion towards their own interests. You’re seeing those media campaigns leaking out.


                                                                            Switching to the individual perspective.

                                                                            I just don’t want to pay more for the same service. In living memory Americans have seen their gigantic monopolistic telecommunications company get broken up, and seen prices for services drop 100 fold; more or less as a direct consequence of that action.

                                                                            As other posts have noted, the ISP situation in the US is already pretty dire unless you’re a business. Internet providers charge whatever they can get away with and have done an efficient job of ensuring customers don’t have alternatives. Telephone service got regulated, but internet service did not.

                                                                            Re-reading your post after diving on this one… We’re not really concerned about the same gatekeepers. I don’t think any American would be overly upset to see players like Amazon, Facebook, Google, Twitter, and Netflix go away and I wouldn’t be surprised to see one or more of those guys implode as long as they don’t get access to too much of the infrastructure.

                                                                            1. 4

                                                                              Right-leaning US Citizen here. I’ll attempt to answer this as best as I can.

                                                                              Net neutrality is being pushed by the media because it “fights discrimination”, and they blame the “fascist, nazi right” for it’s repeal (and they’re correct, except for the “fascist, nazi” bit). But without net neutrality, the ISPs still have an incentive to provide equal service, because otherwise they’ll lose customers (for obvious reasons).

                                                                              I can’t speak to why open-source advocates are also pushing for net neutrality, because (in my opinion) the government shouldn’t be involved in how much internet costs. I do remember this article was moderately interesting, saying that the majority of root DNS servers are run by US companies. But, that doesn’t really faze me. As soon as people start censoring, that get backlash whether the media covers it or not

                                                                              Side note, the reason you don’t see the protests against the “gatekeepers” is that most of the mainstream media isn’t accurately covering the reaction of the people to the censorship. I bet you didn’t know that InfoWars was the #1 news app with 5 stars on the Apple app store within a couple of weeks of them getting banned from Facebook, etc. I don’t really have any opinion about Alex Jones (lots of people on the right don’t agree with him), but you can bet I downloaded his app when I found out he got banned.

                                                                              P.S. I assumed that InfoWars was what you were referring to when you said “removing some controversial users” P.P.S. I just checked the app store again, and it’s down to #20 in news, but still has 5 stars.

                                                                              1. 34

                                                                                But without net neutrality, the ISPs still have an incentive to provide equal service, because otherwise they’ll lose customers (for obvious reasons).

                                                                                I think this is too optimistic. I live in Chicago, the third biggest city in the country and arguably the tech hub of the midwest. In my building I get to choose between AT&T and Comcast. I’m considered lucky: most of my friends in the city get one option, period. If their ISP starts doing anything shady they don’t have an option to switch, because there’s nobody they can switch to.

                                                                                1. 16

                                                                                  I think this is too optimistic. I live in Chicago, the third biggest city in the country and arguably the tech hub of the midwest. In my building I get to choose between AT&T and Comcast. I’m considered lucky: most of my friends in the city get one option, period. If their ISP starts doing anything shady they don’t have an option to switch, because there’s nobody they can switch to.

                                                                                  It’s interesting to contrast this to New Zealand, where I live in a town of 50,000 people and have at least 5 ISPs I can choose from. I currently pay $100 NZ a month for an unlimited gigabit fibre connection, and can hit ~600 mbit from my laptop on a speed test. The NZ government has intervened heavily in the market, effectively forcing the former monopolist (Telecom) to split into separate infrastructure (Chorus) and services (Telecom) companies, and spending a lot of taxpayer money to roll out a nationwide fibre network. The ISPs compete on the infrastructure owned by Chorus. There isn’t drastic competition on prices: most plans are within $10-15 of each other, on a per month basis, but since fibre rolled out plans seem to have come down from around $135 per month to now around $100.

                                                                                  I was lucky to have decent internet through a local ISP when I lived in one of Oakland’s handful of apartment buildings, but most people wouldn’t have had that option. I think the ISP picture is a lot better in NZ. Also, net neutrality is a non-issue, as far as I know. We have it, no-one seems to be trying to take it away.

                                                                                  1. 14

                                                                                    I’m always irritated that there are policies decried in the United States as “impossible” when there are demonstrable implementations of it elsewhere.

                                                                                    I can see it being argued that the United States’s way is better or something, but there are these hyperbolic attacks on universal health care, net neutrality, workers’ rights, secure elections, etc that imply that they are simply impossible to implement when there are literally dozens of counterexamples…

                                                                                    1. 5

                                                                                      At the risk of getting far too far off topic.

                                                                                      One of the members of the board at AT&T was the CEO of an insurance company, someone sits on the boards of both Comcast/NBC and American Beverages. The head of the FCC was high up at Verizon.

                                                                                      These are some obvious, verifiable, connections based in personal interest. Not implying that it’s wrong or any of those individuals are doing anything which is wrong, you’ve just gotta take these ‘hyperbolic attacks’ with a grain of salt.

                                                                                        1. 2
                                                                                      1. 4

                                                                                        Oh yeah it’s infuriating. It helps to hit them with examples. Tell them the media doesn’t talk about them since they’re all pushing something. We all know that broad statement is true. Then, briefly tell them the problems that we’re trying to solve with some goals we’re balancing. Make sure it’s their problems and goals. Then, mention the solution that worked else where which might work here. If it might not fit everyone, point out that we can deploy it in such a way where its specifics are tailored more to each group. Even if it can’t work totally, maybe point out that it has more cost-benefit than the current situation. Emphasize that it gets us closer to the goal until someone can figure out how to close the remaining gap. Add that it might even take totally different solutions to address other issues like solving big city vs rural Internet. If it worked and has better-cost benefit, then we should totally vote for it to do better than we’re doing. Depending on audience, you can add that we can’t have (country here) doing better than us since “This is America!” to foster some competitive, patriotic spirit.

                                                                                        That’s what I’ve been doing as part of my research talking to people and bouncing messages off them. I’m not any good at mass marketing, outreach or anything. I’ve just found that method works really well. You can even be honest since the other side is more full of shit than us on a lot of these issues. I mean, them saying it can’t exist vs working implementations should be an advantage for us. Should. ;)

                                                                                        1. 3

                                                                                          Beautifully said.

                                                                                          My family’s been in this country since the Mayflower. I love it dearly.

                                                                                          Loving something means making it better and fixing its flaws, not ignoring them.

                                                                                          1. 2

                                                                                            Thanks and yes. I did think about leaving for a place maybe more like my views. That last thing you said is why I’m still here. If we fix it, America won’t be “great again:” it would be fucking awesome. If not for us, then for the young people we’re wanting to be able to experience that. That’s why I’m still here.

                                                                                    2. 5

                                                                                      arguably the tech hub of the midwest.

                                                                                      Only if you can’t find Austin on a map… ;)

                                                                                      1. 11

                                                                                        Native Texan/Austinite here. Texas is the South, Southwest, or just Texas. All the rest of y’all are just Yankees. ;)

                                                                                      2. 1

                                                                                        But if their ISP starts doing anything shady, they’ll surely get some backlash, even if they can’t switch they can complain.

                                                                                        1. 9

                                                                                          They’ve been complaining for decades. Nothing happens most of the time. The ISP’s have many lobbyists and lawyers to insulate them from that. The big ones are all doing the same abusive practices, too. So, you can’t switch to get away from it.

                                                                                          Busting up AT&T’s monopoly got results in lower costs, better service, better speeds, etc. Net neutrality got more results. I support more regulation of these companies and/or socialized investment to replace them like the gigabit for $350/mo in Chattanooga, TN. It’s 10Gbps now I think but I don’t know what price.

                                                                                          Actually, I go further due to their constant abuses and bribing politicians: Im for having a court seizetheir assets, converting them to nonprofits, and putting new management in charge. If at all possible. It would send a message to other companies that think they can do damage to consumers and mislead regulators with immunity to consequences.

                                                                                            1. 6

                                                                                              What incentive does the ISP have to change? Unless you can complain to some higher authority (FCC, perhaps) then there is no reason for the ISP to make any changes even with backlash. I’d be more incentivized to complain if there was at least some competition.

                                                                                          1. 30

                                                                                            Net neutrality is being pushed by the media because it “fights discrimination”, and they blame the “fascist, nazi right” for it’s repeal

                                                                                            Nobody says this. It’s being pushed because it prevents large corporations from locking out smaller players. The Internet is a great economic equalizer: I can start a business and put a website up and I’m just as visible and accessible as Microsoft.

                                                                                            We don’t want Microsoft to be able to pay AT&T to slow traffic to my website but not theirs. It breaks the free market by allowing collusion that can’t be easily overcome. It’s like the telephone network; I can’t go run wires to everyone’s house, but I want my customers to be able to call me. I don’t want my competitors to pay AT&T to make it harder to call me than to call them.

                                                                                            But without net neutrality, the ISPs still have an incentive to provide equal service, because otherwise they’ll lose customers (for obvious reasons).

                                                                                            That assumes people have a choice. They very often don’t. Internet service has a massively high barrier to entry, similar to a public utility. Most markets in the United States have at most two providers (both major corporations opposed to net neutrality). Very, very rarely is there a third.

                                                                                            More importantly, there are only five tier-1 networks in the United States. Five. It doesn’t matter how many local ISPs there are; without Net Neutrality, five corporations effectively control what can and can’t be transmitted. If those five decide something should be slowed down or forbidden, there is nothing I can do. Changing to a different provider won’t do a thing.

                                                                                            (And of those five, all of them donate significantly more to one major political party than the other, and the former Associate General Counsel of one of them is currently chairman of the FCC…)

                                                                                            I can’t speak to why open-source advocates are also pushing for net neutrality, because (in my opinion) the government shouldn’t be involved in how much internet costs.

                                                                                            Net neutrality says nothing about how much it costs. It just says you can’t charge different amounts based on content. It would be like television stations charging more money to Republican candidates to run ads than to Democratic candidates. They’re free to charge whatever they want; they’re not free to charge different people different amounts based on the content of the message.

                                                                                            Democracy requires communication. It does no good to say “freedom!” if the major corporations can effectively silence whoever they want. “At least it’s not the government” is not a good defense of stifling public debate.

                                                                                            And there’s a difference between a newspaper and a television/radio station/internet service. I can buy a printing press and make a newspaper and refuse to carry whatever I want. There are no practical limits to the number of printing presses in the country.

                                                                                            There is a limited electromagnetic spectrum. Not just anyone can broadcast a TV signal. There is a limit to how many cables can be run on utility polls or buried underground. Therefore, discourse carried over those media are required to operate more in the public trust than others. As they become more essential to a healthy democracy, that only becomes more important. It’s silly to say “you still have freedom of speech” if you’re blocked from television, radio, the Internet, and so on. Those are the public forums of our day. That a corporation is doing the blocking doesn’t make it any better than if the government were to do it.

                                                                                            Side note, the reason you don’t see the protests against the “gatekeepers” is that most of the mainstream media isn’t accurately covering the reaction of the people to the censorship.

                                                                                            There’s a big difference between Twitter not wanting to carry Alex Jones and net neutrality. Jones is still free to go start up a website that carries his message; with Net Neutrality not only could he be blocked from Twitter, but the network itself could make his website inaccessible.

                                                                                            There is no alternative with Net Neutrality. You can’t build your own Internet. Without mandating equal treatment of traffic, we hand the Internet over solely to the big players. Preventing monopolistic and oligarchic control of public discourse is a valid use of government power. It’s not censorship, it’s the exact opposite.

                                                                                            1. 7

                                                                                              That assumes people have a choice. They very often don’t.

                                                                                              This was also brought up by @hwayne, @caleb and @friendlysock, and is not something that occurred to me. I appreciate all who are mentioning this.

                                                                                              More importantly, there are only five tier-1 networks in the United States.

                                                                                              Wow, I did not know that. I can see that as a legitimate reason to want net neutrality. But, I also think that they’ll piss off a lot of people if they can stream CNN but not InfoWars.

                                                                                              It just says you can’t charge different amounts based on content.

                                                                                              I understood it to also mean that you also couldn’t charge customers differently because of who they are. Also, don’t things like Tor mitigate things like that?

                                                                                              “At least it’s not the government” is not a good defense of stifling public debate.

                                                                                              I completely agree. But in the US we have a free market (at least, we used to) and that means that the government is supposed to stay out of it as much as possible.

                                                                                              Preventing monopolistic and oligarchic control of public discourse is a valid use of government power.

                                                                                              I also agree. But these corporations (the tier-1 ISPs) haven’t done anything noticeable to me to limit my enjoyment of conservative content, and I’m pretty sure that they would’ve by now if they wanted to.

                                                                                              The reason I oppose net neutrality is more because I don’t think that the government should control it than any more than I think AT&T and others should.

                                                                                              not only could he be blocked from Twitter, but the network itself could make his website inaccessible.

                                                                                              But they haven’t.

                                                                                              edit: how -> who

                                                                                            2. 6

                                                                                              Even though I’m favoring net neutrality, I appreciate you braving the conservative position on this here on Lobsters. I did listen to a lot of them. What I found is most had reasonable arguments but had no idea about what ISP’s did, are doing, are themselves paying Tier 1’s, etc. Their media sources’ bias (all have bias) favoring ISP’s for some reason didn’t tell them any of it. So, even if they’d have agreed with us (maybe, maybe not), they’d have never reached those conclusions since they were missing crucial information to reflect on when choosing to regulate or not regulate.

                                                                                              An example is one telling me companies like Netflix should pay more to Comcast per GB or whatever since they used more. The guy didn’t know Comcast refuses to do that when paying Tier 1’s negotiating transit agreements instead that worked entirely different. He didn’t know AT&T refused to give telephones or data lines to rural areas even if they were willing to pay what others did. He didn’t know they could roll out gigabit today for same prices but intentionally kept his service slow to increase profit knowing he couldn’t switch for speed. He wasn’t aware of most of the abuses they were doing. He still stayed with his position since that guy in particular went heavily with his favorite, media folks. However, he didn’t like any of that stuff which his outlets never even told him about. Even if he disagrees, I think he should disagree based on an informed decision if possible since there’s plenty smart conservatives out there who might even favor net neutrality if no better alternative. I gave him a chance to do that.

                                                                                              So, I’m going to give you this comment by @lorddimwit quickly showing how they ignored the demand to maximize profit, this comment by @dotmacro showing some abuses they do with their market control, and this article that gives nice history of what free market did with each communications medium with the damage that resulted. Also note that the Internet itself was an open, free-if-you-have-a-wire system that competed with the proprietary, charge-per-use, lock-them-in-forever-if-possible systems the private sector was offering. It smashed them so hard you might have even never heard of them or forgotten a lot about them depending on your age. It also democratized more goods than about anything other than maybe transportation. Probably should stick with the principles that made that happen to keep innovation rolling. Net neutrality was one of them that was practiced informally at first then put into law as the private sector got too much power and was abusing it. We should keep doing what worked instead of the practices ISP’s want that didn’t work but will increase their profits at our expense for nothing in return. That is what they want: give us less or as little improvement in every way over time while charging us more. It’s what they’re already doing.

                                                                                              1. 2

                                                                                                I read the comments, and I read most of the freecodecamp article.

                                                                                                I like the ideal of the internet being a public utility, but I don’t really want the government to have that much control.

                                                                                                I think the real problem I have with government control of the internet, is that I don’t want the US to end up like china with large swaths of the internet completely blocked.

                                                                                                I don’t really know how to solve our current problems. But, like @jfb said elsewhere in this thread, I don’t think that net neutrality is the best possible solution.

                                                                                                1. 2

                                                                                                  Also note that the Internet itself was an open, free-if-you-have-a-wire system that competed with the proprietary, charge-per-use, lock-them-in-forever-if-possible systems the private sector was offering. It smashed them so hard you might have even never heard of them or forgotten a lot about them depending on your age.

                                                                                                  I might recognize a name, but I probably wasn’t even around yet.

                                                                                                  So, I’m going to give you…

                                                                                                  Thanks for the info, I’ll read it and possibly form a new opinion.

                                                                                                2. 5

                                                                                                  But without net neutrality, the ISPs still have an incentive to provide equal service, because otherwise they’ll lose customers (for obvious reasons).

                                                                                                  What obvious reasons? Because customers will switch providers if they don’t treat all traffic equally? That would require (a) users are able to tell if a provider prioritizes certain traffic, and (b) that there is a viable alternative to switch to. I have no confidence in either.

                                                                                                  1. 1

                                                                                                    I don’t personally care if the prioritize certain websites, but I sure as hell care if the block something.

                                                                                                    As far as I’m concerned, they can slow down Youtube by 10% for conservative channels and I wouldn’t give a damn even though I watch and enjoy some. What really bothers me is when they “erase” somebody or block people from getting to them.

                                                                                                    1. 4

                                                                                                      well you did say they have an incentive to provide “equal service” so i guess you meant something else. net neutrality supporters like me aren’t satisfied with “nobody gets blocked,” because throttling certain addresses gives big corporations more tools to control media consumption, and throttling have similar effects to blocking in the long term. i’m quite surprised that you’d be fine with your ISP slowing down content you like by 10%… that would adversely affect their popularity compared to the competitors that your ISP deems acceptable, and certain channels would go from struggling to broke and be forced to close down.

                                                                                                      1. 1

                                                                                                        Well, I have pretty fast internet, so 10% wouldn’t be terrible for me. However, I can see how some people would take issue with such a slowdown.

                                                                                                        I was using a bit an extreme example to illustrate my point. What I was trying to say was that they can’t really stop people from watching the content that they want to watch.

                                                                                                        1. 3

                                                                                                          I recall, but didn’t review, a study saying half of web site users wanted the page loaded in 2 seconds. Specific numbers aside, I’ve been reading that kind of claim from many people for a long time that a new site taking too long to load, being sluggish, etc makes them miss lots of revenue. Many will even close down. So, the provider of your favorite content being throttled for even two seconds might kill half their sales since Internet users expect everything to work instantly. Can they operate with a 50% cut in revenue? Or maybe they’re bootstrapping up a business with a few hundred or a few grand but can’t afford to pay for no artificial delays. Can they even become the content provider your liked if having to pay hundreds or thousands extra on just extra profit? I say extra profit since ISP’s already paid for networks capable of carrying it out of your monthly fee.

                                                                                                          1. 2

                                                                                                            yeah, the shaping of public media consumption would happen in cases where people don’t know what they want to watch or don’t find out about something that they would want to watch

                                                                                                            anti-democratic institutions already shape media consumption and discourse to a large extent, but giving them more tools will hurt the situation. maybe it won’t affect you or me directly, but sadly we live in a society so it will come around to us in the form of changes in the world

                                                                                                    2. 5

                                                                                                      But without net neutrality, the ISPs still have an incentive to provide equal service, because otherwise they’ll lose customers (for obvious reasons).

                                                                                                      Most customers have exceedingly limited options in their area, and they’re not going to switch houses because of their ISP. Especially in apartment complexes, you see cases where, say, Comcast has the lockdown on an entire population and there really isn’t a reasonable alternative.

                                                                                                      In a truly free market, maybe I’d agree with you, but the regulatory environment and natural monopolistic characteristics of telecomm just don’t support the case.

                                                                                                      1. 1

                                                                                                        Most customers have exceedingly limited options in their area, and they’re not going to switch houses because of their ISP.

                                                                                                        That’s a witty way of putting it.

                                                                                                        But yeah, @lorddimwit mentioned the small number of tier-1 ISPs. I didn’t realize there were so few, but I still think that net neutrality is overreaching, even if its less than I originally thought.

                                                                                                        1. 3

                                                                                                          Personally, I feel that net neutrality, such as it is, would prevent certain problems that could be better addressed in other, more fundamental ways. For instance, why does the US allow the companies that own the copper to also own the ISPs?

                                                                                                      2. 3

                                                                                                        But without net neutrality, the ISPs still have an incentive to provide equal service, because otherwise they’ll lose customers (for obvious reasons).

                                                                                                        Awkward political jabs aside, most of your statements imply that you believe customers are free to choose who they get their internet from, which is just plain incorrect. Whatever arguments you want to make against net neutrality, there is one indisputable fact that you cannot just ignore or paper over:

                                                                                                        ISPs do not operate in a free market.

                                                                                                        In the vast majority of the US, cable and telephone companies are granted local monopolies in the areas they operate. That is why they must be regulated. As the Mozilla blog said, they have both the incentive and means to abuse their customers and they’ve already been caught doing it on multiple occasions.

                                                                                                        1. 1

                                                                                                          most of your statements imply that you believe customers are free to choose who they get their internet from, which is just plain incorrect

                                                                                                          I think you’re a bit late to the party, I’ve conceded that fact already.

                                                                                                        2. 3

                                                                                                          All of that is gibberish. Net Neutrality is being pushed because it creates a more competitive marketplace. None of it has anything to do with professional liar Alex Jones.

                                                                                                          But without net neutrality, the ISPs still have an incentive to provide equal service, because otherwise they’ll lose customers (for obvious reasons).

                                                                                                          That’ s not how markets work. And it’s not how the technology or permit process for ISPs work. There is very little competition among ISPs in the US market.

                                                                                                          1. 1

                                                                                                            Hey, here’s a great example from HN of the crap they pull without net neutrality. They advertised “unlimited,” throttled it secretly, admitted it, and forced them to pay extra to get actual unlimited.

                                                                                                            @lorddimwit add this to your collection. Throttling and fake unlimited been going on long time but they couldve got people killed doing it to first responders. Id have not seen that coming just for PR reasons or avoiding local, govt regulation if nothing else.

                                                                                                            1. 1

                                                                                                              I can’t speak to why open-source advocates are also pushing for net neutrality, because (in my opinion) the government shouldn’t be involved in how much internet costs.

                                                                                                              It’s not about how much internet costs, it’s about protecting freedom of access to information, and blocking things like zero-rated traffic that encourage monopolies and discourage competition. If I pay for a certain amount of traffic, ISPs shouldn’t be allowed to turn to Google and say “want me to prioritize YouTube traffic over Netflix traffic? Pay me!”

                                                                                                              1. 1

                                                                                                                Net neutrality is being pushed by the media because it “fights discrimination”, and they blame the “fascist, nazi right” for it’s repeal (and they’re correct, except for the “fascist, nazi” bit).

                                                                                                                Where on earth did you hear that? I sure hope you’re not making it up—you’ll find this site doesn’t take too kindly to that.

                                                                                                                1. 1

                                                                                                                  I might’ve been conflating two different political issues, but I have heard “fascist” and “nazi” used to describe the entire right wing.

                                                                                                                  A quick google search for “net neutrality fascism” turned this up https://motherboard.vice.com/en_us/article/kbye4z/heres-why-net-neutrality-is-essential-in-trumps-america

                                                                                                                  “With the rise of Trump and other neo-fascist regimes around the world, net neutrality will be the cornerstone that activists use to strengthen social movements and build organized resistance,” Wong told Motherboard in a phone interview. “Knowledge is power.”

                                                                                                                  1. 2

                                                                                                                    You assume that net neutrality is a left-wing issue, which it’s not. It actually has bipartisan support. The politicians who oppose it have very little in common, aside from receiving a large sum of donations from telecom corporations.

                                                                                                                    As far as terms like “fascist” or “Nazi” are concerned—I think they have been introduced into this debate solely to ratchet up the passions. It’s not surprising that adding these terms to a search yields results that conflate the issues.

                                                                                                                    1. 2

                                                                                                                      Ill add on your first point that conservatives who are pro-market are almost always pro-competition. They expect the market will involve competition driving whats offered up, its cost down, and so on. Both the broadband mandate and net neutrality achieved that with an explosion of businesses and FOSS offering about anything one can think of.

                                                                                                                      The situation still involves 1-3 companies available for most consumers that, like a cartel, work together to not compete on lowering prices, increasing service, and so on. Net neutrality reduced some predatory behavior the cartel market was doing. They still made about $25 billion in profit between just a few companies due to anti-competitive behavior. Repealing net neutrality for anti-competitive market will have no positives for consumer but will benefit roughly 3 or so companies by letting them charge more for same or less service.

                                                                                                                      Bad for conservative’s goals of market competition and benefiting conservative voters.

                                                                                                              2. 2

                                                                                                                One part of it is that we already have net neutrality, and it’s easier to try to hang on to a regulation than to create a new one.

                                                                                                              1. 4

                                                                                                                I absolutely love that the BSDs are switching to llvm. This makes me giddy like a school child.

                                                                                                                By switching to a full llvm toolchain, the BSDs will be able to do some really nifty things that simply cannot be done in Linux. HardenedBSD, for example, is working on integrating Cross-DSO CFI in base (and, later, ports). NetBSD is looking at deeper sanitizer integration in base. From an outsider’s perspective, it seems OpenBSD is playing catch up right now, but they’ve got the talent and the manpower to do so within a reasonable period of time.

                                                                                                                It’s my dream that all the BSDs switch fully to llvm as the compiler toolchain, including llvm-ar, llvm-nm, llvm-objdump, llvm-as, etc. Doing so will allow the BSDs to do add some really nifty security enhancements. Want an enterprise OS that secures the entire ecosystem? Choose BSD.

                                                                                                                Linux simply cannot compete here. A userland that innovates in lockstep with the kernel is absolutely required to do these kinds of things. Go BSD!

                                                                                                                1. 3

                                                                                                                  You’re overstating it. Most of the mitigation development of past decade or two was for Linux. Most of the high-security solutions integrated with Linux, often virtualizing it. The most-secure systems you can get right now are separation kernels running Linux along-side critical apps. Two examples. Some of the mitigation work is also done for FreeBSD. Of that, some is done openly for wide benefit and some uses BSD license specifically to lock-down/patent/sue when commercialized. Quick pause to say thanks for you own work on the open side. :)

                                                                                                                  So, what’s best for people depends on a lot of factors from what apps they want, what they’re trying to mitigate, stance on licensing, whether they have money for proprietary solutions or custom work, time for custom work or debugging if FOSS, and so on. One is not superior to the other. That could change if any company builds a mobile/desktop/server-class processor with memory safety or CFI built checking every sensitive operation. Stuff like that exists in CompSci for both OS’s. Hardware-level security could be an instant win. Past that, all I can say is it depends.

                                                                                                                  On embedded side, Microsemi says CodeSEAL works with Linux and Windows. CoreGuard, based on SAFE architecture, currently runs FreeRTOS. The next solution needs to be at least as strong at addressing root causes.

                                                                                                                  1. 4

                                                                                                                    Thanks for making me think a bit deeper on this subject. And thanks for the kind words on my own work. :)

                                                                                                                    With a historical perspective, I agree with you. grsecurity has done a lot with regards to Linux security (and security in general). I think the entire computing industry owes a lot to grsecurity, especially those of us in infosec.

                                                                                                                    With the BSDs (except FreeBSD) having the core exploit mitigations in place (ASLR, W^X), it’s time to move on to other, more advanced mitigations. There’s only so much the kernel can do to harden userland and keep performance in check. Thus, these more advanced exploit mitigations must be implemented in the compiler. The BSDs are positioning themselves to be able to adopt and tightly integrate compiler-based exploit mitigations like CFI. Due to Linux’s fragmentation, it’s simply not possible for Linux to position itself in the same way. HardenedBSD has already surpassed Linux as far as userland exploit mitigations are concerned. This is due in part because of using llvm as the compiler toolchain.

                                                                                                                    Microsoft is making huge strides as well. However, the PE file format, which allows individual PE objects to opt-in or opt-out of the various exploit mitigations, is a glaring weakness commonly abused by attackers. All it takes is for one DLL to not be compiled with /DYNAMICBASE, and boom goes the dynamite. Recently, VLC on Windows was found not to have ASLR enabled, even though it was compiled with /DYNAMICBASE and OS-enforced ASLR enabled, due to the .reloc section being stripped. Certain design decisions made decades ago by Microsoft are still biting them in the butt.

                                                                                                                    I completely agree with you about hardware-based exploit mitigations. The CHERI project from the University of Cambridge in England is doing just that: hardware-enforced capabilities and bounds enforcement. However, it’ll probably take another 20+ years for their work to be available in silicon and an additional 20+ years for their work to be used broadly (and thus, actually usable/used). In the meantime, we need these software-based exploit mitigations.

                                                                                                                  2. 3

                                                                                                                    I absolutely love that the BSDs are switching to llvm.

                                                                                                                    What does this news story have to do with LLVM?

                                                                                                                    1. 1

                                                                                                                      UBSan (and NetBSD’s new micro-UBSan) is a sanitizer found in llvm.

                                                                                                                      1. 5

                                                                                                                        And gcc.

                                                                                                                        1. 3

                                                                                                                          Yes. So the tirade about LLVM could have been about GCC and it would make as much sense here.

                                                                                                                          1. 1

                                                                                                                            I guess I view it differently, due to newer versions of gcc being GPLv3, which limits who can adopt it. With llvm being permissively licensed, it can be adopted by a much wider audience. The GPL is driving FreeBSD to replace all GPL code in the base operating system with more permissively-licensed options.

                                                                                                                            For the base OS, gcc is dead to me.

                                                                                                                          2. 2

                                                                                                                            (Speaking from the perspective of a FreeBSD/HardenedBSD user): gcc has no real future in the BSDs. Because of licensing concerns (GPLv3), the BSDs are moving towards a permissively-licensed compiler toolchain. Newer versions of gcc do contain sanitizer frameworks, they’re not usable in the BSD base operating system.

                                                                                                                            1. 2

                                                                                                                              NetBSD base uses GPLv3 GCC and builds it with sanitizers libraries etc.

                                                                                                                              1. 1

                                                                                                                                Good to know! Thanks! Perhaps my perception is a bit skewed towards FreeBSD lines of thinking.

                                                                                                                                I know NetBSD is working on incorporating llvm. I wonder why if they use newer versions of gcc.

                                                                                                                    1. 3

                                                                                                                      I’d never heard of “snap” before, and I’m not sure I understand what it’s trying to do. Is it just a lazy way to publish closed source software on Linux? I really don’t see why I’d choose a snap over using my regular package manager.

                                                                                                                      1. 6

                                                                                                                        Yes and no. Snaps are the last of many tries to have a single, uniform package format among a lot of different Linux distributions. They can be installed on *buntu, debian, arch, fedora, opensuse, …. They also offer built-in sandbox.

                                                                                                                        You are correct that a lot of propritiatory software is using it to distribute packages because it saves some time, but that’s not the main goal of the format.

                                                                                                                        1. 2

                                                                                                                          Snaps are the last of many tries to have a single, uniform package format among a lot of different Linux distributions.

                                                                                                                          Unfortunately, there are at least three competing standards (Snap, Flatpak, AppImage). However, Flatpak seems to be supported in more distributions than Snap:

                                                                                                                          https://kamikazow.wordpress.com/2018/06/08/adoption-of-flatpak-vs-snap-2018-edition/

                                                                                                                          Regardless of what one thinks of such formats, they have already lead to interesting phenomena. Flatpak is, for instance, quite popular among pirates who use it to pack Windows games with a custom Wine configuration:

                                                                                                                          https://www.nag.co.za/2017/10/27/pirates-are-starting-to-package-windows-games-for-linux-better-than-the-developers/

                                                                                                                          Then there is the Winepak project, which packages redistributable Windows software:

                                                                                                                          https://winepak.org/

                                                                                                                        2. 3
                                                                                                                          1. 2

                                                                                                                            Think docker for desktop apps. With all of the good and the bad it implies.

                                                                                                                          1. 17

                                                                                                                            Thanks for the writeup. However, I’m not sure I share your excitement. I can boil it down to two points:

                                                                                                                            1. This reminds me of all the hoopla around the JVM as it was coming out: one language to rule them all! Distributing bytecode instead of compiled binaries! Write once, run anywhere! I see how WebAssembly improves on some of this story, but it still has a sameness to it, except it’s dubbed ‘open.’ As a user, why do I care? As a developer, why do I care? HTML 5 displacing Flash has meant that ads are more invasive and harder to block, honestly.

                                                                                                                            2. The importance placed on not diverging from the Web platform doesn’t win any points from me. I get that people dislike crappy implementations of subplatforms that just get in the way, but I also want to see serious competition to HTML/CSS when it comes to laying out UIs. As someone who likes what the web stands for so much and yet loathes the actual workings of it, it feels like things like this subtly reinforce the “everything is web development” hegemony by continuing to prop these things up in the name of compatibility.

                                                                                                                            Mind you, I’m very happy that JS can finally be displaced as the lingua franca of webapps!

                                                                                                                            1. 4

                                                                                                                              This reminds me of all the hoopla around the JVM as it was coming out: one language to rule them all! Distributing bytecode instead of compiled binaries! Write once, run anywhere! I see how WebAssembly improves on some of this story, but it still has a sameness to it, except it’s dubbed ‘open.’ As a user, why do I care? As a developer, why do I care? HTML 5 displacing Flash has meant that ads are more invasive and harder to block, honestly.

                                                                                                                              There’s a big difference between Java and WebAssembly. While you could totally imagine a bare JVM that just runs JVM bytecode, it always came with its standard lib, the TLS implementation and everything around it. And even then, the JVM needs to come with a garbage collector, which wants to take control of all memory. The teasing thing about WASM is that it only talks about portable code, but not about a portable API. It’s quite different from the JVM in the aspect that it isn’t a platform in itself.

                                                                                                                              1. 1

                                                                                                                                I’m not sure if that’s a good thing. Or a bad thing. It feels like it might affect download sizes, but other than that it doesn’t really matter.

                                                                                                                            1. 6

                                                                                                                              If material design is a political choice, what does that mean for developing Android apps in the first place?

                                                                                                                              1. 7

                                                                                                                                This is a great usability improvement. Thank you Peter Hessler :)

                                                                                                                                That said, it’s still a little bit sad that this is only just being introduced in 2018.

                                                                                                                                1. 34

                                                                                                                                  That said, it’s still a little bit sad that this is only just being introduced in 2018.

                                                                                                                                  Technically - OpenBSD has had various toolings (1, 2, 3 and others) to do this very task for quite a long time. But none of them were considered the correct approach.

                                                                                                                                  Also, this is something that’s pretty unique to OpenBSD IMO. The end result is the same as with other systems.. sure. But this is unique among the unix world.

                                                                                                                                  Q: What’s the difference?

                                                                                                                                  Glad I asked! This is entirely contained within the base system and requires no tools beyond ifconfig!

                                                                                                                                  Linux has ip, iw, networkmanager, iwconfig..(likely others)… and they are all using some weird combo of wpa_supplicant.. autogen’d text files.. and likely other things.

                                                                                                                                  Have you ever tried to manually configure wireless on linux? It’s a nightmare. Always has been.

                                                                                                                                  NetworkManager does a really good job of making it feel like there isn’t a kludge going on behind the scenes.. It does this by gluing all the various tools together so you don’t have to know about them. IMO this is what happens when you “get it done now” vs “do it right”.

                                                                                                                                  With great simplicity comes great security:

                                                                                                                                  NetworkManager@6c3174f6e0cdb3e0c61ab07eb244c1a6e033ff6e:

                                                                                                                                  github.com/AlDanial/cloc v 1.74  T=28.62 s (48.2 files/s, 45506.1 lines/s)
                                                                                                                                  --------------------------------------------------------------------------------
                                                                                                                                  Language                      files          blank        comment           code
                                                                                                                                  --------------------------------------------------------------------------------
                                                                                                                                  PO File                          66         125328         161976         457879
                                                                                                                                  C                               541          71112          66531         321839
                                                                                                                                  C/C++ Header                    528          10430          15928          34422
                                                                                                                                  XML                              59           1406           2307           6692
                                                                                                                                  make                              6            885            229           5009
                                                                                                                                  Python                           40           1189           1128           4597
                                                                                                                                  NAnt script                      65            626              0           3968
                                                                                                                                  m4                                8            237            123           1958
                                                                                                                                  Lua                              11            212            453           1314
                                                                                                                                  Bourne Shell                     21            232            238           1115
                                                                                                                                  XSLT                              5             65              3            929
                                                                                                                                  Perl                              4            166            243            480
                                                                                                                                  Bourne Again Shell               11             30             35            241
                                                                                                                                  C++                               4             62            121            178
                                                                                                                                  YAML                              4             12              6            161
                                                                                                                                  JavaScript                        1             33             21            130
                                                                                                                                  Ruby                              3             39             92            110
                                                                                                                                  Lisp                              2             15             24             23
                                                                                                                                  --------------------------------------------------------------------------------
                                                                                                                                  SUM:                           1379         212079         249458         841045
                                                                                                                                  --------------------------------------------------------------------------------
                                                                                                                                  

                                                                                                                                  VS

                                                                                                                                  ifconfig@1.368:

                                                                                                                                  github.com/AlDanial/cloc v 1.74  T=0.12 s (32.2 files/s, 58201.7 lines/s)
                                                                                                                                  -------------------------------------------------------------------------------
                                                                                                                                  Language                     files          blank        comment           code
                                                                                                                                  -------------------------------------------------------------------------------
                                                                                                                                  C                                2           1009            345           5784
                                                                                                                                  C/C++ Header                     1              7             16             58
                                                                                                                                  make                             1              3              1              6
                                                                                                                                  -------------------------------------------------------------------------------
                                                                                                                                  SUM:                             4           1019            362           5848
                                                                                                                                  -------------------------------------------------------------------------------
                                                                                                                                  

                                                                                                                                  Anyway - I guess my point is this:

                                                                                                                                  • Almost every OS achieves this goal.. sure.
                                                                                                                                  • Most have had this feature for quite some time.. agree (Including OpenBSD!).
                                                                                                                                  • None of them have it implemented as simply and well-thought-out as OpenBSD.
                                                                                                                                  1. 5

                                                                                                                                    Have you ever tried to manually configure wireless on linux? It’s a nightmare. Always has been.

                                                                                                                                    No. The Linux’s I use come with an out-of-the-box experience that makes wireless as easy as clicking a box, clicking a name, typing in the password, it works, and it reconnects when nearby. They have been like that since I bought an Ubuntu-specific Dell a long time ago. They knew it was a critical feature that needed to work easily with no effort with some doing that upon installation so parts of the install could be downloaded over WiFi. Then, they did whatever they had to do in their constraints (time/talent/available code) to get it done.

                                                                                                                                    And then I was able to use it with only breaks being wireless driver issues that had answers on Q&A sites. Although that was annoying, I didn’t have to think about something critical I shouldn’t have to think about. Great product development in action for an audience that has other things to do than screw around with half-built wireless services. That’s a complement about what I used rather than a jab at OpenBSD’s which I didn’t use. I’m merely saying quite a few of us appreciate stuff that saves us time once or many times. If common and critical, adoption can go up if it’s a solved problem with minimal intervention out of the box.

                                                                                                                                    That said, props to your project member who solved the problem with a minimally-complex solution in terms of code and dependencies. I’m sure that was hard work. I also appreciate you illustrating that for us with your comparisons. The difference is almost comical in the work people put in with very different talents, goals and constraints. And m4 isn’t gone yet. (sighs)

                                                                                                                                    1. 7

                                                                                                                                      No. The Linux’s I use come with an out-of-the-box experience that makes wireless as easy as clicking a box, clicking a name, typing in the password, it works, and it reconnects when nearby.

                                                                                                                                      And then something goes wrong in the fragile mess of misfeatures, and someone has to dig in and debug, or a new feature comes along and someone has to understand the stack of hacks to understand it, before it can be added. There’s something to be said for a system that can be understood.

                                                                                                                                      1. 4

                                                                                                                                        There is something to be said for a system to be understood. I totally agree. I also think there’s something to be said for a reliable, more-secure system that can be effortlessly used by hundreds of millions of people. A slice of them will probably do things that were worth the effort. The utilitarian in me says make it easy for them to get connected. The pragmatist also says highly-usable, effortless experience leads to more benefits in terms of contributions, donations, and/or business models. These seemingly-contradicting philosophies overlap in this case. I think end justifies the means here. One can always refactor the cruddy code later if it’s just one component in the system with a decent API.

                                                                                                                                        1. 3

                                                                                                                                          One can always refactor the cruddy code later if it’s just one component in the system with a decent API.

                                                                                                                                          The problem isn’t the code, it’s the system that it’s participating in.

                                                                                                                                          1. 2

                                                                                                                                            One can always refactor the cruddy code later if it’s just one component in the system with a decent API.

                                                                                                                                            This just leads to systemd, and more misfeatures…

                                                                                                                                            1. 3

                                                                                                                                              There’s Linux’s without systemd. Even those that had it didn’t before they got massive adoption/impact/money. So, it doesn’t naturally lead to it. Just bad, decision-making in groups controlling popular OS’s from what I can tell. Then, there’s also all the good stuff that comes with their philosophy that strict OS’s like OpenBSD haven’t achieved. The Linux server market, cloud, desktops, embedded, and Android are worth the drawbacks if assessing by benefits gained by many parties.

                                                                                                                                              Personally, I’m fine with multiple types of OS being around. I like and promote both. As usual, I’m just gonna call out anyone saying nobody can critique an option or someone else saying it’s inherently better than all alternatives. Those positions are BS. Things things are highly contextual.

                                                                                                                                      2. 1

                                                                                                                                        This is really great. I wish all other projects can do that, preferring elegancy to throwing code on the wall, but sometimes life really takes its toll and we cave and just make Frankenstein to get shit done.

                                                                                                                                        I really appreciate all the works by OpenBSD folks. Do you have any idea how other *BSD’s deal with the wireless?

                                                                                                                                        1. 1

                                                                                                                                          Do you have any idea how other *BSD’s deal with the wireless?

                                                                                                                                          I don’t - sorry :D

                                                                                                                                      3. 3

                                                                                                                                        Whats really sad is that the security of other operating systems can’t keep up despite having more man power.

                                                                                                                                        1. 2

                                                                                                                                          It’s almost like if you prioritize the stuff that truly matters, and be willing to accept a little bit of UX inconvenience, you might happen upon a formula that produces reliable software? Who would have thought?

                                                                                                                                          1. 2

                                                                                                                                            That’s what I told OpenBSD people. They kept on a poorly-marketed monolith in unsafe language without the methods from CompSci that were knocking out whole classes of errors. They kept having preventable bugs and adoption blockers. Apparently, the other OS developers have similarly, hard-to-change habits and preferences with less focus on predictable, well-documented, robust behavior.

                                                                                                                                          2. 1

                                                                                                                                            I think this is just a matter of what you think matters. There’s no sadness here. The ability to trade off security for features and vice versa is good. It lets us accept the level of risk we like.

                                                                                                                                            On the other hand, it’s really sad, for instance, that OpenBSD has had so many public security flaws compared to my kernel ;P

                                                                                                                                            1. 1

                                                                                                                                              On the other hand, it’s really sad, for instance, that OpenBSD has had so many public security flaws compared to my kernel ;P

                                                                                                                                              What’s your kernel?

                                                                                                                                              1. 2

                                                                                                                                                It’s a joke. Mine is a null kernel. It has zero code, so no features, so no security flaws. Just like OpenBSD has fewer features and fewer known security flaws than Linux, mine has fewer features but no security flaws.

                                                                                                                                                Unlike OpenBSD, mine is actually immune to Meltdown and Spectre.

                                                                                                                                                1. 1

                                                                                                                                                  Not having public flaws doesn’t mean you don’t have flaws. Could mean not enough people are even considering checking for flaws. ;)

                                                                                                                                                  1. 1

                                                                                                                                                    Oh OK lol.

                                                                                                                                            2. 0

                                                                                                                                              That said, it’s still a little bit sad that this is only just being introduced in 2018.

                                                                                                                                              Would you like to clarify what you mean by this comment? Cause right now my interpretation of it is that you feel entitled to have complicated features supported in operating systems developed by (largely unpaid) volunteers.

                                                                                                                                              1. 11

                                                                                                                                                I’m getting a bit tired of every complaint and remark being reduced to entitlement. Yes, I know that there is a lot of unjustified entitlement in the world, and it is rampant in the open source world, but I don’t feel entitled to anything in free or open source software space. As someone trying to write software in my spare time, I understand how hard it is to find spare time for any non-trivial task when it’s not your job.

                                                                                                                                                Though I am not a heavy user, I think OpenBSD is an impressive piece of software, with a lot of thought and effort put into the design and robustness of the implementation.

                                                                                                                                                I just think it’s somewhat disheartening that something this common (switching wireless networks) was not possible without manual action (rewriting a configuration file, or swapping configuration files, and restarting the network interface) every time you needed to switch or moved from home to the office.

                                                                                                                                                Whether you feel like this is me lamenting the fact that there are so few contributors to important open source projects, me lamenting the fact that it is so hard to make time to work on said project, or me being an entitled prick asking for features on software I don’t pay for (in money or in time/effort) is entirely your business.

                                                                                                                                                1. 5

                                                                                                                                                  Just for the record I didn’t think you sounded entitled. The rest of the comment thread got weirdly sanctimonious for some reason.

                                                                                                                                                  Volunteers can work on whatever they want, and anybody’s free to comment on their work. Other operating systems have had the ability to switch wifi networks now for a long time, so it’s fair to call that out. And then Peter went and did something about it which is great.

                                                                                                                                                  Previously I’ve been using http://ports.su/net/wireless for wifi switching on my obsd laptop, but will use the new built-in feature when I upgrade the machine.

                                                                                                                                                  Some of the delay for the feature may be because the OS, while very capable, doesn’t seem designed to preemptively do things on the user’s behalf. Rather the idea seems to be that the user knows what’s best and will ask the OS to do things. For instance when I dock or undock my machine from an external monitor it won’t automatically switch to using the display. I have a set of dock/undock scripts for that. I appreciate the simple “manual transmission” design of the whole thing. The new wifi feature seems to be in a similar spirit, where you rank each network’s desirability and the OS tries in that order.

                                                                                                                                                  1. 2

                                                                                                                                                    Interesting, I didn’t know about that to. I used my own bash script to juggle config files and restart the interface, but the new support in ifconfig itself is much easier.

                                                                                                                                                    I think the desire for OpenBSD to not do things without explicit user intent are certainly part of why this wasn’t added before, as well as limited use as a laptop OS until relatively recently.

                                                                                                                                                  2. 2

                                                                                                                                                    Thanks for taking the time to respond.

                                                                                                                                                    To be clear, I don’t believe you’re some sort of entitled prick – I don’t even know you. But, I do care that people aren’t berating developers with: “That’s great, but ____” comments. Let’s support each other, instead of feigning gratitude. It wasn’t clear if that’s what you were doing, hence, my request for clarification.

                                                                                                                                                    That being said, my comment was poorly worded, and implied a belief that you were on the wrong side of that. That was unfair, and I apologize.

                                                                                                                                                    I just think it’s somewhat disheartening that something this common (switching wireless networks) was not possible without manual action (rewriting a configuration file, or swapping configuration files, and restarting the network interface) every time you needed to switch or moved from home to the office.

                                                                                                                                                    Well, I’m just not going to touch this…. :eyeroll:

                                                                                                                                                    1. 1

                                                                                                                                                      I apologize if my response was a little bit snide. I’ve been reading a lot of online commentary that chunks pretty much everything into whatever people perceive as wrong with society (most commonly: racism, sexism, or millenial entitlement - I know these are real and important issues, but not everything needs to be about them). I read your remark in the context and may have been a little harsh.

                                                                                                                                                      Regarding the last segment - how WiFi switching worked before - there may have been better ways to do this, but I’m not sure they were part of the default install. When I needed this functionality on OpenBSD, I basically wrote a bash script to do these steps for me on demand, and that worked alright for me. It may not have been the best way, so my view of the OpenBSD WiFi laptop landscape prior to the work of Peter may not be entirely appropriate or accurate.

                                                                                                                                                    2. 1

                                                                                                                                                      I just think it’s somewhat disheartening that something this common (switching wireless networks) was not possible without manual action (rewriting a configuration file, or swapping configuration files, and restarting the network interface) every time you needed to switch or moved from home to the office.

                                                                                                                                                      I’m more blunt here that leaving that to be true in a world with ubiquitous WiFi was a bad idea if they wanted more adoption and donations from market segment that wanted good, out-of-the-box support for WiFi. If they didn’t want that, then it might have been a good choice to ignore it for so long to focus on other things. It all depends on what their goals were. Since we don’t know them, I’ll at least say that it was bad, neutral, or good depending on certain conditions like with anything else. The core userbase was probably OK with whatever they had, though.

                                                                                                                                                    3. 3

                                                                                                                                                      First, both free speech and hacker culture say that person can gripe about what they want. They’re sharing ideas online that someone might agree with or act on. We have a diverse audience, too.

                                                                                                                                                      Second, the project itself has developers that write cocky stuff about their system, mock the other systems, talk that one time about how they expect more people to be paying them with donations, more recently talk about doing things like a hypervisor for adoption, and so on. Any group doing any of that deserves no exception to criticism or mockery by users or potential users. It’s why I slammed them hard in critiques, only toning it down for the nice ones I met. People liking critiques of other projects or wanting adoption/donations should definitely see others’ critiques of their projects, esp if its adoption/donation blockers. I mean, Mac’s had a seemless experience called Rendevous or something in 2002. If I’m reading the thread right, that was 16 years before OpenBSD something similar they wanted to make official. That OpenBSD members are always bragging when they’re ahead of other OS’s on something is why I’m mentioning it. Equal treatment isn’t always nice.

                                                                                                                                                      “But, I do care that people aren’t berating developers with: “That’s great, but ____” comments. Let’s support each other, instead of feigning gratitude. It wasn’t clear if that’s what you were doing, hence, my request for clarification.”

                                                                                                                                                      I did want to point out that we’ve had a lots of OpenBSD-related submissions and comments with snarky remarks about what other developers or projects were doing. I at least don’t recall you trying to shut them down with counterpoints assessing their civility or positivity toward other projects (say NetBSD or Linux). Seems a little inconsistent. My memory is broken, though. So, are you going to be countering every negative remark OpenBSD developers or supporters make about projects with different goals telling them to be positive and supportive only? A general rule of yours? Or are you giving them a pass for some reason but applying the rule to critics of OpenBSD choices?

                                                                                                                                                      1. 1

                                                                                                                                                        I at least don’t recall you trying to shut them down with counterpoints assessing their civility or positivity toward other projects (say NetBSD or Linux). Seems a little inconsistent.

                                                                                                                                                        I’m not the Internet Comment Police, but you seem to think you are for some reason… Consider this particular instance “me griping about what I want.”

                                                                                                                                                        Or are you giving them a pass for some reason but applying the rule to critics of OpenBSD choices?

                                                                                                                                                        This wasn’t about OpenBSD at all. This started out as a request for clarification on the intent of an ambiguous comment that seemed entitled. There seems to be a lot of that happening today, and a lot of people defending it for whatever reason, which is even worse.

                                                                                                                                                        1. 1

                                                                                                                                                          I’m not the Internet Comment Police

                                                                                                                                                          Your comments came off that way to me between the original and follow-ups. Far as not about OpenBSD, it’s in a thread on it with someone griping it lacked something they wanted. The OpenBSD members griping about third party projects not having something they wanted to see more of typically got no comment from you. The inconsistency remains. I’m writing it off as you’re just a fan of their style of thinking on code, quality, or something.

                                                                                                                                                      2. 2

                                                                                                                                                        i think he’s sad that there haven’t been enough volunteers to make it happen sooner

                                                                                                                                                        1. 2

                                                                                                                                                          That’s certainly one possibility, but not how I took it initially, and why I asked for clarification. I’ve seen too many people over the years attempt to disguise their entitlement by saying “thanks.”

                                                                                                                                                          I’d have liked to see this comment worded as:

                                                                                                                                                          This is a great usability improvement. Thank you Peter Hessler :) It’s a shame that there isn’t a better way to bring these important usability features to OpenBSD faster. What is the best way to help make that happen? Donations to the OpenBSD Foundation? Sponsor the work directly? Something else?

                                                                                                                                                          Now, it’s also possible that the OP has ties to OpenBSD, and the comment was self-deprecating. But, one can’t infer that from the information we see without investigating who the OP is, and their affiliations…

                                                                                                                                                          1. 0

                                                                                                                                                            one can’t infer anything beyond what they said

                                                                                                                                                            1. 2

                                                                                                                                                              I’m not sure you understand what infer means. One certainly can infer meaning from a comment, based on previous actions, comments, etc..

                                                                                                                                                              My point remains: It’d be nice if the OP would clarify what they mean. My interpretation of the OP’s comment is just as likely as your interpretation. My interpretation is damaging to the morale of existing volunteer contributors to FOSS, and gives potential contributors to FOSS reasons to not contribute all together. I don’t know about you, but I want to encourage people to contribute to FOSS, as doing so moves us closer to a free and open society. And, that alone, is the reason I’m even bothering to continue responding to this thread…

                                                                                                                                                              1. 1

                                                                                                                                                                he said “it’s sad.” that’s all we know. the leap is that this means “entitlement.”

                                                                                                                                                                1. 1

                                                                                                                                                                  “It’s pretty sad that it took someone else so long to prioritize work I think is necessary.”

                                                                                                                                                                  I think it’s pretty easy to take what was written and read it this way. But maybe my glass is half empty today.

                                                                                                                                                                2. 0

                                                                                                                                                                  One can infer based on a comment, but the inference will most likely be dimwitted bullshit.

                                                                                                                                                                  Without the magic trifecta of body language, vocal intonation, and facial expression us monkeys are just shit at picking up on any extra meaning. So take the comment at face value.

                                                                                                                                                                  It expresses gratitude, it focuses on a specific recipient, and it lauds the feature. After, it regrets that it couldn’t/didn’t happen earlier.

                                                                                                                                                                  There’s no hidden meaning here, and if the commenter intended a hidden meaning he’s a dufus too, because there’s no unicode character for those. U+F089A6CDCE ZERO WIDTH SARCASTIC FUCK YOU MARK notwithstanding.

                                                                                                                                                                  At some point we all need to stop insisting that we have near-telepathic powers, especially outside of meatspace.

                                                                                                                                                                  1. 2

                                                                                                                                                                    So, what you’re saying is that I can write anything I want, and since you can’t see or hear other clues, there’s no way you can downvote (in good faith) this comment as trolling?

                                                                                                                                                                    Not sure text works that way…

                                                                                                                                                            2. 1

                                                                                                                                                              They had the solution to do it all the time, but it wasn’t invented here, so it’s bad.