1. 2

    I used to debug complex Postgres queries, which involved looking at the results of CTEs and subqueries, and it took me quite a while to realise that I could automate the process and generate all intermediate results with a tool which I eventually wrote: https://korban.net/postgres/pgdebug/

    1. 15

      IPv6 is just as far away from universal adoption…as it was three years ago.

      That seems…pretty easily demonstrably untrue? While it’s of course not a definitive, be-all-end-all adoption metric, this graph has been marching pretty steadily upward for quite a while, and is significantly higher now (~33%) than it was in 2017 (~20%).

      (And as an aside, it’s sort of interesting to note the obvious effect of the pandemic pushing the weekday troughs in that graph upward as so many people work from home.)

      1. 7

        I wouldn’t count it as “adoption” if it’s basically a hit or miss if your provider does it or not. So they do the natting for you?

        Still haven’t worked at any company (as an employee or being sent to the customer) where there was any meaningful adoption.

        My stuff is available via v4 and v6, unless I forget, because I don’t have ipv6 at home, because I simply don’t need it. When I tried it, I had problems.

        Yes, I’m 100% pessimistic about this.

        1. 13

          I adopted IPv6 around 2006 and finally removed it from all my servers this year.

          The “increase” in “adoption” is likely just more mobile traffic, and some providers a have native v6 and NAT64 and… shocker… it sucks.

          IPv4 will never go away and Jeff Huston is right: the future is NAT, always has been, always will be. The additional address space really isn’t needed, and every device doesn’t need its own dedicated IP for direct connections anyway. Your IP is not a telephone number; it’s not going to be permanent and it’s not even permanent for servers because of GEODNS anyway (or many servers behind load balancers, etc etc). IPs and ports are session identifiers, no more, no less.

          You’ll never get rid of the broken middle boxes on the Internet, so stop believing you will.

          The future is name-based addressing – separate from our archaic DNS which is too easily subverted by corporations and governments, and we will definitely be moving to a decentralized layer that runs on top of IP. We just don’t know which implementation yet. But it’s the only logical path forward.

          DNSSEC and IPv6 are failures. 20+ years and still not enough adoption. Put it in the bin and let’s move on and focus our efforts on better things that solve tomorrow’s problems.

          1. 21

            What I find so annoying about NAT is that it makes hard or impossible to send data from one machine to another, which was pretty much the point of the internet. Now you can only send data to servers. IPv6 was supposed to fix this.

            1. 8

              Now you can only send data to servers

              It’s almost as if everyone that “counts” has a server, so there’s no need for everyone to have one. This is coherent with the growing centralisation of the Internet.

              1. 18

                It just bothers me that in 2020 the easiest way to share a file is to upload to a server and send the link to someone. It’s a bit like “I have a message for you, please go to the billboard at sunshine avenue to read it.”.

                1. 4

                  There are pragmatic reasons for this. If the two machines are nearby, WiFi Direct is a better solution (though Apple’s AirDrop is the only reliable implementation I’ve seen and doesn’t work with non-Apple things). If the two machines are not near each other, they need to be both on and connected at the same time for the transfer to work. Sending to a mobile device, the receiver may prefer not to grab the file until they’re on WiFi. There are lots of reasons either endpoint may remove things. Having a server handle the delivery is more reliable. It’s more analogous to sending someone a package in a big truck that will wait outside their house until they’re home and then deliver it.

                  1. 3

                    Bittorrent and TCP are pretty reliable. You’re right about the ‘need to be connected at the same time’ though.

                    1. 2

                      Apple’s AirDrop is the only reliable implementation I’ve seen and doesn’t work with non-Apple things

                      Have you seen opendrop?

                      Seems to work fine for me, although it’s finicky to set up.

                      https://github.com/seemoo-lab/opendrop

                    2. 2

                      I think magic wormhole is easier for the tech crowd, but still requires both systems to be on at the same time.

                      1. 1

                        https://webwormhole.io/ works really well!

                    3. 7

                      This is coherent with the growing centralisation of the Internet.

                      My instinct tells me this might not be so good.

                      1. 4

                        So does mine. So does mine.

                      2. 2

                        Plus le change…

                        On the other hand, servers have never been more affordable or generally accessible: all you need is like $5 a month and the time and effort to self-educate. You can choose from a vast range of VPS providers, free software, and knowledge sources. You can run all kinds of things in premade docker containers without having much of a clue as to how they work. No, it’s not the theoretical ideal by any means, but I don’t see any occasion for hand-wringing.

                        1. 1

                          I’ve always assumed the main thing holding v6 back is the middle-men of the internet not wanting to lose their power as gatekeepers.

                        2. 6

                          Nobody in their right mind is going to use client machines without a firewall protecting them and no firewall is going to by default accept unsolicited traffic form the wider internet.

                          Which means you need some UPnP like mechanism on the gateway anyways. Not to map a port, but to open a port to a client address.

                          Btw: I’m ha huge IPv6 proponent for other reasons (mainly to not give centralized control to very few very wealthy parties due to address starvation), but the not-possible-to-open-connections argument I don’t get at all.

                          1. 8

                            Nobody in their right mind would let a gazillion services they don’t even know about run on their machines and let those services be contacted from the outside.

                            Why do (non-technical) people need a firewall to begin with? Mainly because they don’t trust the services that run on their machines to be secure. The correct solution is to remove those services, not add a firewall or NaT that requires traversing.

                            Though you were talking about UPnP, so the audience there is clearly the average non-technical Windows user, who doesn’t know how to configure their router. I have no good solution for them.

                            1. 8

                              Why do (non-technical) people need a firewall to begin with? Mainly because they don’t trust the services that run on their machines to be secure

                              Many OSes these days run services listening on all Interfaces. Yes, most of them could be rebound to localhost or the local network interface, but many don’t provide easy configurability.

                              Think stuff like portmap which is still required for NFS in many cases. Or your print spooler. Or indeed your printer’s print spooler.

                              This stuff should absolutely not be on the internet and a firewall blanket-prevents these from being exposed. You configure one firewall instead of n devices running m services.

                              1. 3

                                Crap, good point, I forgot about stuff on your local network you literally cannot configure effectively. Well, we’re back to configuring the router, then.

                            2. 1

                              If the firewall is in the gateway at home, then you can control it, and you can decide to forward ports and allow incoming connections to whatever machine behind it. If your home NAT is behind a CGNAT you don’t control, you are pretty much out of options for incoming connections.

                              IPv6 removes the need for CGNAT, fixing this issue.

                              1. 2

                                Of course but I felt like my parent poster was talking from an application perspective. And for these not much changes. An application you make and deploy on somebodies machine still won’t be able to talk to another instance of your application on another machine by default. Stuff like STUN will remain required to trick firewalls into forwarding packets.

                            3. 3

                              Yeah but this is not a fair statement. If we had no NAT this same complaint would exist and it would be “What I find so annoying about FIREWALLS is they make it hard or impossible to send data from one machine to another…”

                              But do you really believe having IPv6 would allow arbitrary direct connections between any two devices on the internet? There will still have to be some mechanism for securely negotiating the session. NAT doesn’t really add that much more of a burden. The problem is when people have terribly designed networks with double NAT. These same people likely would end up with double firewalls…

                              1. 2

                                Of course, NAT has been invented for a reason, and I’d prefer having NAT over not having NAT. But for those of us that want to play around with networks, it’s a shame that we can’t do it without paying for a server anymore.

                                1. 1

                                  I really do find it easier to make direct connections between IPv6 devices!

                                  Most of the devices I want to talk to each other are both behind an IPv4 NAT, so IPv6 allows them to contact each other directly with STUN servers.

                                  Even so, Tailscale from the post linked is even easier to setup and use than IPv6, I’m a fan.

                              2. 17

                                The “increase” in “adoption” is likely just more mobile traffic

                                Even if so, why the scare quotes? They’re network hosts speaking Internet Protocol…do they not “count” for some reason?

                                You’ll never get rid of the broken middle boxes on the Internet, so stop believing you will.

                                Equipment gets phased out over time and replaced with newer units. Devices in widespread deployment, say, 10 years ago probably wouldn’t have supported IPv6 gracefully (if at all), but guess what? A lot of that stuff’s been replaced by things that do. Sure, there will continue to be shitty middleboxes needlessly breaking things on the internet, but that happens with IPv4 already (hard to think of a better example than NAT itself, actually).

                                It’s uncharacteristic because I’m generally a pessimistic person (and certainly so when it comes to tech stuff), but I’d bet that we’ll eventually see IPv6 become the dominant protocol and v4 fade into “legacy” status.

                                1. 4

                                  I participated in the first World IPv6 Day back in 2011. We begged our datacenter customers to take IPv6. Only one did. Here’s how the conversation went with every customer:

                                  “What is IPv6?”

                                  It’s a new internet protocol

                                  “Why do I need it?”

                                  It’s the future!

                                  “Does anyone in our state have IPv6?”

                                  No, none of the residential ISPs support it or have an official rollout plan. (9 years later – still nobody in my state offers IPv6)

                                  “So why do I need it?”

                                  Some people on the internet have IPv6 and you would give them access to connect to you with IPv6 natively.

                                  “Don’t they have IPv4 access too?”

                                  Yes

                                  “So why do I need it?”

                                  edit: let’s also not forget that the BCP for addressing has changed multiple times. First, customers should get assigned a /80 for a single subnet. Then we should use /64s. Then they should get a /48 so they can have their own subnets. Then they should get a /56 because maybe /48 is too big?

                                  Remember when we couldn’t use /127 for ptp links?

                                  As discussed in [RFC7421], "the notion of a /64 boundary in the
                                  address was introduced after the initial design of IPv6, following a
                                  period when it was expected to be at /80".  This evolution of the
                                  IPv6 addressing architecture, resulting in [RFC4291], and followed
                                  with the addition of /127 prefixes for point-to-point links, clearly
                                  demonstrates the intent for future IPv6 developments to have the
                                  flexibility to change this part of the architecture when justified.
                                  
                                2. 10

                                  I adopted IPv6 around 2006 and finally removed it from all my servers this year.

                                  Wait, you had support for IPv6 and your removed it? Did leaving it working cost you?

                                  1. 3

                                    Yes it was a constant source of failures. Dual stack is bad, and people using v6 tunnels get a terrible experience. Sixxs, HE, etc should have never offered tunneling services

                                    1. 8

                                      I’m running dual stack on the edge of our production network, in the office and at my home. I have never seen any interference of one stack with another.

                                      The only problem I have seen was that some end-users had broken v6 routing and couldn’t reach our production v6 addresses, but that was quickly resolved. The reverse has also been true in the past (broken v4, working v6), so I wouldn’t count that against v6 in itself, though I do agree that it probably takes longer for the counter party to notice v6 issues than they would v4 ones.

                                      But I absolutely cannot confirm v6 to be a “constant source of failures”

                                      1. 3

                                        The only problem I have seen was that some end-users had broken v6 routing and couldn’t reach our production v6 addresses, but that was quickly resolved.

                                        This is the problem we constantly experienced in the early 2010s. Broken OSes, broken transit, broken ISPs. The customer doesn’t care what the reason is, they just want it to work reliably 100% of the time. It’s also not fun when due to Happy Eyeballs and latency changes the client can switch between v4 and v6 at random.

                                      2. 1

                                        Is there any data on what the tunnelling services are used for though? Just asking because some friends were just using them for easier access to VMs that weren’t public per se, or devices/services in a network (with the appropriate firewall rules to only allow trusted sources)

                                    2. 2

                                      This is the first time I downvoted a post so I figure I’d explain why.

                                      For one, you point to a future of more of the status quo: More NAT, IPv4. But at the same time you also claim the world is going to drop one of the biggest status quo’s of DNS for a wholly brand new name resolution service? Also, how would a decentralized networking layer be able to STUN/TURN the 20+ layers of NAT we’re potentially looking at in our near future?

                                      1. 1

                                        Oh no, we aren’t going to drop DNS, we will just not use it for the new things. Think Tor hidden services, think IPFS (both have problems in UX and design, but are good analogues). These things are not directly tied to legacy DNS; they can exist without it. Legacy DNS will exist for a very long time, but it won’t always be an important part of new tech.

                                      2. 2

                                        The future is name-based addressing – separate from our archaic DNS which is too easily subverted by corporations and governments, and we will definitely be moving to a decentralized layer that runs on top of IP. We just don’t know which implementation yet. But it’s the only logical path forward.

                                        So this would solve the IPv4 addressing problem? While I certainly agree with “every device doesn’t need its own dedicated IP”, the amount us usable IPv4 addresses is about 3.3 billion (excluding multicast, class E, rfc1918, localhost, /8s assigned to Ford etc.) which really isn’t all that much if you want to connect the entire world. It’ll be a tight fit at best.

                                        I wonder how hard it would be to start a new ISP, VPS provider, or something like that today. I would imagine it’s harder than 10 years ago; who do you ask for IP addresses?

                                        1. 1

                                          Some of the pressure on IPv6 addresses went away with SRV records. For newer protocols that baked in SRV from the start, you can run multiple (virtual) machines in a data center behind a single public IPv4 address and have the service instances run on different ports. For things like HTTP, you need a proxy because most (all?) browsers don’t look for SRV records. If you consider IP address + port to be the thing a service needs, we have a 48-bit address space, which is a bit cramped for IoT things, but ample for most server-style things.

                                      3. 5

                                        That graph scares me tbh. It looks consistent with an S-curve which flattens out well before 50%. I hope that’s wrong, and it’s just entering a linear phase, but you’d hope the exponential-ish growth phase would at least have lasted a lot longer.

                                        1. 3

                                          Perhaps there’s some poetic licence there, but 13% in 3 years isn’t exactly a blazing pace, and especially if we assume that the adoption curve is S-shaped, it’s going to take at least another couple of decades for truly universal adoption.

                                          1. 7

                                            It’s not 13%, it’s 65%. (13 percentage points.)

                                            1. 1

                                              Yup, right about two decades to get to 90% with S-curve growth. I mean, it’s not exponential growth, but it’s steady and two decades is about 2 corporate IT replacement lifecycles.

                                            2. 2

                                              That seems…pretty easily demonstrably untrue? While it’s of course not a definitive, be-all-end-all adoption metric, this graph has been marching pretty steadily upward for quite a while, and is significantly higher now (~33%) than it was in 2017 (~20%).

                                              I think that’s too simplistic of an interpretation of that chart; if you look at the “Per-Country IPv6 adoption” you see there are vast differences between countries. Some countries like India, Germany, Vietnam, United States, and some others have a fairly significant adoption of IPv6, whereas many others have essentially no adoption.

                                              It’s a really tricky situation, because it requires the entire world to cooperate. How do you convince Indonesia, Mongolia, Nigeria, and many others to use IPv6?

                                              So I’d argue that “IPv6 is just as far away from universal adoption” seems pretty accurate; once you start the adoption process it seems to take at least 10-15 years, and many countries haven’t even started yet.

                                              1. 1

                                                How do you convince Indonesia, Mongolia, Nigeria, and many others to use IPv6?

                                                By giving them too few IPv4 blocks to begin with? Unless they’re already hooked on carrier grade NAT, the scarcity of addresses could be a pretty big incentive to switch.

                                                1. 1

                                                  I’m not sure if denying an economic resource to those kind of countries is really fair; certainly in a bunch of cases it’s probably just lack of resources/money (or more pressing problems, like in Syria, Afghanistan, etc.)

                                                  I mean, we (the Western “rich”) world shoved the problem ahead of us for over 20 years, and now suddenly the often lesser developed countries actually using the least amount of addresses need to spend a lot of resources to quickly implement IPv6? Meh.

                                                  1. 2

                                                    My comment wasn’t normative, but descriptive. Many countries already starve for IPv4 addresses.

                                                    now suddenly the often lesser developed countries actually using the least amount of addresses need to spend a lot of resources to quickly implement IPv6?

                                                    If “suddenly” means they were knew it would happen like 2 decades ago, and “quickly” means they’d have over 10 years to get to it… In any case, IPv6 has already been implemented in pretty much every platform out there. It’s more a matter of deployment now. The end points are already capable. We may have some routers who still aren’t IPv6 capable, but there can’t be that many by now, even in poorer countries. I don’t see anyone spending “a lot” of resources.

                                              2. 1

                                                perhaps the author is going by the absolute number of hosts rather than percentage

                                              1. 27

                                                It’s important to distinguish between regex-based syntax highlighting which is done by most editors, and semantics based highlighting which is done by IntelliJ. IntelliJ has been stuffing important info into highlighting for a long time.

                                                • the baseline is that names are colored differently depending on what they refer to (locals vs params vs classes vs interfaces)
                                                • there are additional decorations when something happens (static things are in italics, places of implicit coercion’s/casts, (in Rust) mutable things are underlined, unsafe operations are colored red)
                                                • there are some extra contextual highlights,like highlighting all refs of identifier at carret, highlighting all exit points, recursive calls, suspend points.

                                                It’s not like we need to radically rethink anything, the tooling has been there for a long time for a certain selection of popular languages.

                                                1. 7

                                                  the tooling has been there for a long time for a certain selection of popular languages

                                                  Every one of the suggestions in the article except rainbow braces and nesting are already in daily use in c# for both Visual Studio and Rider, the two biggest c# IDEs. In both cases the color schemes used are completely configurable and can include text color, background color, font and font style. The metadata highlighting is done with colored underlines and in some cases icons in the margin.

                                                  I assume the reason they don’t have the nesting highlighting is because indentation style guidelines are well thought out in c# and that is usually enough to see how things are nested. Rainbow braces would be nice to have but configurable selected brace highlighting means it is at least possible to actively read that information if needed.

                                                  1. 9

                                                    More and more I’m realizing I’m missing out on the cutting edge of developer tooling simply because I don’t work in JVM or .NET. Time to relearn F#, I guess…

                                                    1. 2

                                                      I use IntelliJ for a primarily Perl project. There is a great plug-in for semantic Perl support that IntelliJ offered to install the first time I opened a Perl file. Requires a fast machine or lots of patience. I end up in powersave mode most of the time.

                                                      1. 1

                                                        I work with (enterprise y) JavaScript and i benefit from IntelliJ/Webstorm, so much so that I’ve bought a personal copy. I can recommend getting one of them trial licences (three probably are some) and try it for a month.

                                                        It’s not for everyone. You may dislike it, and certain things will sl annoy you to no end. But you can’t tell if you don’t try it.

                                                    2. 6

                                                      Tree-sitter for neovim looks promising as well.

                                                      1. 5

                                                        It’s true that there’s been some improvement in the IDEs, and it’s not just IntelliJ. VS Code does a lot of it as well. I can also get other types of decorations. For example, the Elm extension in VS Code gives me an “exposed” marker on functions, it shows the number of references to each function (which I can expand into a view), highlights unused imports etc.

                                                        Perhaps things are ok in terms of highlighting, and what I’d really like is the ability to have dynamic, queryable views of the source code, which is what the post alludes to as well, such as highlighting functions which are over N lines long, or get a view of all functions which use a particular type, or a view of all functions with N or more levels of nesting. Some of these things can be done with search, but only simple ones, and not very conveniently.

                                                        1. 9

                                                          I think most of these things (except dynamic part) are handled by SSR (available since 2006):

                                                          https://www.jetbrains.com/help/idea/search-templates.html#script_constraints

                                                          For dynamic part, one needs to write a custom plugin.

                                                          1. 1

                                                            Interesting! I think this might be specific to Java or some subset of languages. I haven’t seen this feature in RubyMine or WebStorm.

                                                      1. 3

                                                        These are all just variations of syntax highlighting, they all still “waste” the information channel.

                                                        If you really want to make the most of the color channel, make color syntactically defining, like in colorForth.

                                                        1. 3

                                                          I think that could possibly be one of the modes, but there are many different, potentially conflicting ways to colour a program depending on the task at hand, and I’d rather have the ability to toggle modes. I think that would be more useful than a rigid colour scheme imposed by semantics.

                                                          1. 4

                                                            All of which require a projectional editor that works in both directions. On a related note, the idea of writing code where colour is an important input strikes me as a nightmare to use, and I’ve got full-colour vision.

                                                            1. 1

                                                              Depends on the language and the UX, I guess.

                                                              1. 1

                                                                On a related note, the idea of writing code where colour is an important input strikes me as a nightmare to use, and I’ve got full-colour vision.

                                                                I think it’s safe to say that as cool as colorForth is/was, it’s never ever going to happen in a non-niche way. Though, piet is thriving…

                                                          1. 16

                                                            Most text editors (and even IDEs) have a surprising lack of semantic knowledge. Editing programs as flat text is brittle and prone to error. If we had better, language-aware transforms and querying systems built into our text editors, we’d be able to more easily build interactive tools/macros/linters rather than relying on the batch processing we use these days.

                                                            Some cool, language-aware tools that exist today (ish) are:

                                                            1. 17

                                                              The problem is that plain text is proven to carry information across thousands of years, whereas custom formats rot. I can read a paper from 1965 and understand the Fortran source in it, but it’s next to impossible to read many binary formats from the 90s without custom code.

                                                              I think that we need to focus on simplifying the analysis of languages: effect systems, and limiting global state should make it easier to analyze the semantics of syntactic structures and thus make structure and semantics easier to highlight. (I certainly don’t need syntax highlighting working in haskell, but it’s hard not to miss in C-likes).

                                                              1. 2

                                                                Well, ASCII has only been around for a few decades, so I’m not sure it’s been shown to last thousands of years yet ;)

                                                                Granted, there haven’t been any graph (for program ASTs) or table-like (for other program data) data structures that are as pervasive as ASCII or UTF-8 plaintext, and if you want to argue that it makes sense to keep the serialization format plaintext so it’s human readable (like JSON or graphviz or CSV), that’s fine. It still doesn’t prevent us from storing more rich and semantic information beyond just flat symbolic source code.

                                                                The problem with source code is it’s difficult to build a parsers for it, and there’s only one representation for code. For instance, if all source code was stored as an AST in json, think of how easy it would be for you to build custom tools to analyze and transform your code? (This is a terrible idea for other reasons, but it illustrates the idea).

                                                                1. 2

                                                                  True, I’m using a wider definition of “plain text” than just ASCII.

                                                                  You’re right about being able to deserialize plain text into more semantically interesting structures, of course. Then, though, you’re tying visualization (or, at least, editing) to a probably-limited set of tools. I think about the XML ecosystem, which fifteen years ago probably seemed unstoppable, a sure bet for further tool development… but these days the only really powerful one of which I’m aware is Oxygen, which is dated and costs $lots for business licenses.

                                                                  Other problems are possible as well, such as vulnerability to deserialization attacks, like CVE-2017-2779.

                                                                  Ultimately I think that many things could be helped by plain text structures that allow more sophisticated namespacing and structuring than the usual function/class/const options we get: first class modules, as in OCaml, for example. I think these sorts of things are coming, but it’s a slow process.

                                                              2. 10

                                                                Editing programs as flat text is brittle and prone to error.

                                                                I strongly disagree. I work on a rather large code base and nearly everyone on my team prefers to use vim or emacs. There’s something to be said for walking through a neighbourhood rather than driving through one when you want to buy a house. The vast majority of our time (99%?) is spent reading code or debugging rather than writing code. Every line of code should be thoughtful and we should ALWAYS optimize for readability. Not just the semantics of variables and objects but the design of the whole system.

                                                                Languages like java are impossible to write without tool assistance. They’re aggregating large and miserable frameworks where code refers to variables in other files through inheritance and all that other stuff. Just trying to figure out which implementation of foo() an object will call can be difficult or impossible without assistance. That sort of complexity now needs to be internalized in your limited human memory banks as you try to make sense of it all.

                                                                1. 2

                                                                  Oh, I use Vim too – I dislike IDEs for their bloat, and I also prefer languages that are more oriented towards small, compact solutions (and even have an interest in taking it to an extreme with, e.g. APL). If the entire program can be kept in a single file (or even better a single page of text), all the better. Spatial compactness is useful for understanding and debugging, and less code means less bugs.

                                                                  My original point still stands though. Having better tools doesn’t mean code quality has to suffer. The fact of the matter is that we end up having larger codebases that require more complicated code transforms or linting checks. At minimum, having a syntax aware way of doing variable or function renaming in a text editor is superior to blindly running sed over a arbitrarily[1] line-oriented character array. Even from a programmer’s perspective, I’m not convinced a purely symbolic representation of code is always superior. It’s certainly a compact and information dense way of viewing small pieces of code, but it quickly becomes overwhelming when coming to grips with larger systems. Plus, there’s only so much info you can cram into one screenful of code.

                                                                  I think, ideally, we’d have multiple ways of viewing the same code depending on the context we’re working in. For instance, when trying to jump into a new codebase to add a feature, data flow is more important than directly understanding the specific implementations of any function. It would be useful to be able to take a function, and view it in the context of a block diagram to see how it fits into the rest of the system and all code paths that lead to it. In another situation, you may want to view it from a documentation perspective that allows you to semantically tie documentation, proofs, formulas, or diagrams directly into the code, even to specific expressions (kind of like docstrings, but more structured and format rich). Or in a situation where you’re working with a protocol, rather than having an implicit finite state machine that’s only viewable from a code point of view (with a switch statement or through functions that are tail called), you could flip into a graphical view of the FSM or a tabular view of the state transitions.

                                                                  Some of the things I’ve mentioned above are somewhat possible today with external tools, but the problem is they each construct their own AST and semantic knowledge of the source (sometimes incorrectly). There’s no communication between the tools, no referential integrity (if you update the source, do you have to rebuild an index for each tool from scratch?). A standardized, semantic storage format for code would help to address some of these issues.

                                                                  [1]: I say arbitrarily here, because sometimes the line-oriented nature of sed or grep conflicts with the true expression oriented structure of the code. For instance, if a function signature is split across two lines, trying to search for all return types with grep -e '\w+ .*(.*).*{ wouldn’t work. Besides, most syntax structures are recursive which regexs are inherently limited at parsing.

                                                                  1. 4

                                                                    It would be useful to be able to take a function, and view it in the context of a block diagram to see how it fits into the rest of the system and all code paths that lead to it.

                                                                    I think it would be more useful if a function had to consider less and less the rest of the system. Otherwise you have a poor contract and high coupling. I think code and architecture need to blend together and if you need a tool to make sense of it all then you’ve failed.

                                                                    This is a perfect example of nightmarish code for me. There’s about 200 methods and maybe 6 or 7 deep on the inheritance chain. It’s barely possible to manage even with an IDE and a WPF textbook sitting on your desk. https://docs.microsoft.com/en-us/dotnet/api/system.windows.shapes.rectangle?view=netcore-3.1

                                                                2. 8

                                                                  I strongly agree with you. We’ve been hamstrung by the primitive editors for decades. This fixation on text cripples other tools like version control as well - semantic diffs would be an obvious improvement but it’s rarely available. (The usual counterarguments about the universality and accessibility of text don’t stack up to me.)

                                                                  1. 2

                                                                    The insistence on using plain text for canonical storage, API interface, and user interface is IMO the thing most holding us back (some other top contenders being the pursuit of “performance” and compilation-as-DRM).

                                                                    1. 10

                                                                      Looking at the current web, I would have to disagree with the idea that the pursuit of performance is holding anything or anyone back…

                                                                      1. 1

                                                                        If you’d seen all the node-gyp build failures I had, you might think differently. But I’m thinking more about stack busting and buffer overruns at runtime and hobbled tooling at devtime in this case.

                                                                        1. 2

                                                                          Native modules and the whole node-gyp system is horrible, but I don’t think that’s due to pursuing performance? Most of the time, packages with native code seem to just have taken the easiest path by creating node bindings for an existing library, and I don’t think node-gyp itself is bad due to a pursuit of performance…

                                                                          AFAIK, though this could be wrong, the main reason for node’s horrible native code support is that people just use the V8 C++ API directly, and Google is institutionally incapable of writing stable interfaces which other people can depend on. They constantly rename methods, rename or remove classes, move header files around, even deprecate functionality before replacements exist. Even that isn’t just due to a pursuit of performance though, but due to a fear of tech debt and a lack of care for anyone outside of Google.

                                                                  2. 2

                                                                    Comby is definitely a huge upgrade from writing regexps. There’s also Retrie for Haskell and Coccinelle + coccigrep for C. I’d really love to see a semantic search/replace/patch tool for Rust…

                                                                  1. 1

                                                                    Why not have different types of highlighting that can be toggled at any time? There are many different tasks and contexts, so the strangest thing is to think that there is one true way to highlight. At one point you might be interested in function nesting, but at another you might want to focus on exception handling, or async functions, or exported vs non-exported functions, or unused code, or many other things. And traditional syntax highlighting is an aid to navigating code, so it’s definitely useful as one of the modes.

                                                                    1. 5

                                                                      No, defects are the fault of individual humans and small groups of humans. Defects caused by combining two things that work fine in isolation but not together is the fault of the programmer that integrated them. 95% of the time it’s because they made assumptions along the lines of ‘assume postcondition A implies precondition X’ or just ignored the guarantees and requirements of the two systems.

                                                                      More generally, stuff like this…

                                                                      Just scapegoat the human and let the broader system get off scot-free. Don’t ask if the equipment was getting out of date, or if the training program is underfunded, or if the official processes were disconnected from the groundlevel reality. When all defects are the fault of the human, then we don’t have any tools to address defects besides blaming humans. And that’s completely inadequate for our purposes.

                                                                      …ignores that systems are set up by and signed off by humans. None of this stuff just spontaneously arises. Depending on random npm packages with no security guarantees or code review isn’t a system problem, it’s the fault with the person that added that dependency or the person that signed off on allowing random unreviewed dependencies.

                                                                      Making things “system problems” is just a way to shift blame from individuals to everyone because “you can’t fire EVERYONE”. But actually the people that sign off on these systems, the people that get paid HUGE amounts of money on the basis that they’re supposed to be held responsible when something goes wrong, but who somehow never are? The blame is on them. If you tell developers not to review the contents of NPM packages because you have a tight schedule and don’t have time for it then YOU AND ONLY YOU are responsible for the consequences of that decision. Not the system. Not the collective.

                                                                      If you don’t have time or resources to do your job professionally then you need to take a stand and tell you manager so. In writing. “I can’t be sure of the quality of this if you do not give me time to either review the dependencies deeply or write that code myself”. Be a professional.

                                                                      The only way the public is going to get software that works and is safe and isn’t riddled with security holes is if programmers start creating an expectation of professionalism. Nobody says ‘oh well this bridge doesn’t REALLY matter so we can just cut corners’. Software might not always have the same potentially bad consequences for physical safety (although often, increasingly often, does) but has serious consequences for emotional, psychological and privacy safety. What’s more people should be able to expect software to work, to always work, to work properly and accurately and safely. If that costs more then it costs more. I’m sure unsafe bridges would be cheap too.

                                                                      1. 20

                                                                        Having, uh, worked on, well, not bridges before, but some physical objects, I really, really hate it when reasoning by analogy is brought up, in the form of bridges or cars or whatever.

                                                                        First of all, everybody asks which corners can be cut, all the time. An unsettling amount of regulation is in place precisely in order to prevent people from cutting the wrong corners, and oftentimes precisely because someone did cut the wrong corner in the hope of getting slightly richer, but they ended up killing someone in the process. (Yay for insurance, though – they really did get slightly richer most of the time).

                                                                        Second, in other engineering disciplines (electrical, in my case, although I’ve always been an intruder in that field and haven’t really done any EE work in years now) the fact that “the system” sometimes doesn’t work is perfectly understood. Yes, it’s usually one person (or a group of persons) that makes the mistake – the efficient cause of the mistake, if you will – but in a well-lead team, that rarely happens in isolation from others, and purely as a personal failure. Most bad decisions I’ve seen happen at the intersection of:

                                                                        • Incomplete understanding of a problem’s implications among management ranks
                                                                        • Incomplete understanding of requirements, deployment constraints, usage patterns etc. among engineers
                                                                        • Lack of patience among management ranks (“I don’t need all these details, just give me, like, an executive summary” – it’s not like a complex problem magically becomes simple once the gremlins realize you’re busy)
                                                                        • Impedance mismatch at the middle-management layer

                                                                        In these cases, many mistakes really do end up being “the system’s” fault – in that, although someone’s wrong calculations or wrong prioritization really did end up causing the screw-up, no one, not even that person, can really be blamed for what they did.

                                                                        “Defensive” responses to this are absolutely common (and this article is one of them, too), at both ends of the corporate ranks. Upper management & co. insists that personal responsibility is key and that if you think something is wrong, you should speak up and improve the process – gleefully ignoring the fact that doing so usually gets you ignored (see points 1 and 3 above), and sometimes fired if you go over middle management’s head. Middle management and engineers will insist that fault rests solely with the stewards of the system – gleefully ignoring the fact that, indeed, no system is completely impervious to someone doing their jobs sloppily.

                                                                        Of course, the people at the bottom of the hierarchy don’t have any subordinates to shift the blame to, which is why the former reaction ends up getting more street cred, but that’s a whole other story…

                                                                        1. 5

                                                                          Ok, it’s the fault of individual developers. What then? What are you offering as a solution to that from a practical point of view? Empirically, appeals for professionalism and accountability clearly don’t work.

                                                                          Besides, bridges also seem to collapse with some regularity in places like the US and Italy, so I don’t know if that’s a useful counterexample and I don’t know if appealing to professionalism is going to solve that problem either.

                                                                          1. 4

                                                                            Depending on random npm packages with no security guarantees or code review isn’t a system problem, it’s the fault with the person that added that dependency or the person that signed off on allowing random unreviewed dependencies.

                                                                            Did you … did you read the thing in the link?

                                                                            1. 2

                                                                              programmers start creating an expectation of professionalism

                                                                              I observe a power imbalance here. Most programmers I know are very quick to shift the responsibility away: “It is not my job to prioritize” and “I need to ask my manager”. On the other hand, managers practically never do that: “I will clarify that” or “I will follow up on that”. It does not mean that managers actually solve more issues than programmers but it creates a perception that the managers are the doers and programmers are the whiners. If programmers never take the responsibility, they will never get the power either.

                                                                              Disclaimer: Of course, there comes a risk with taking responsibility. In some circumstances it might even be a trap.

                                                                              1. 1

                                                                                This is both a completely true and also effectively useless. As a purely practical consideration @hwayne’s approach to analysis and addressing issues has a higher likelihood of success than blaming human error.

                                                                              1. 4

                                                                                Bit irritating how Elm forces you to go into an infinite loop (fromLiteral string = fromLiteral string) instead of letting you crash with a nice error in the impossible case with the old Debug.crash. (That’s Debug.todo since Elm 0.19, and is only permitted if you compile in debug mode.)

                                                                                I suppose one might define and use

                                                                                impossible : a -> a
                                                                                impossible x = impossible x
                                                                                

                                                                                in those spots as a means of documentation.

                                                                                Somewhat relatedly, I find Elm’s insistance on not allowing “unsafe” operations to lead to obfuscation of failure cases. E.g., it’s common to have a catch-all case in your update function that just silently discards unexpected message combinations:

                                                                                update : Msg -> Model -> Model
                                                                                update msg model = case (msg, model.state) of
                                                                                    -- handle expected combinations
                                                                                    ...
                                                                                    -- ignore impossible combinations
                                                                                    _ -> model
                                                                                    -- instead of the more helpful
                                                                                    -- Debug.crash <| "unexpected message/state combination: "
                                                                                        ++ Debug.toString msg ++ ", " ++ Debug.toString model.state
                                                                                
                                                                                1. 1

                                                                                  You don’t have to discard invalid states in the catch-all clause silently though. You could still send them to an error-reporting service, for example (although not in the specific case you show - you’d have to use something other than Browser.sandbox).

                                                                                1. 1

                                                                                  This kind of sensationalized write-up, referring to typosquatting in scary terms as a “supply chain attack”, etc., is not particularly helpful, and is doubly unhelpful for being unwilling to actually suggest any solution.

                                                                                  My go-to example is the HIBP Pwned Passwords API; there are I don’t know how many packages on PyPI for interacting with it, including a bunch that are designed to hook into popular web frameworks like Django. I maintain one of them. But it’s inevitable that the names of those packages are all pretty similar, and if you’re not taking care to check that you really are getting the one you thought you were getting, you might get a different one! pwned-passwords-django, django-pwned-passwords, django-pwned-validator, and django-pwnedpasswords-validator all exist and are different legitimate packages, for example.

                                                                                  How would you suggest PyPI pick a “winner” there? First to upload? That rewards people who just land-rush every time there’s some new site or service to interact with, even if their packages are crap. Run a trial period of allowing multiple, then pick the most popular? That rewards people who can influence downloads, which again is not a measure of trustworthiness or quality. Try to impose some sort of quality metric and pick the “best” package? How would you even do that in a generic and neutral way?

                                                                                  But without doing something like the above, you can’t pre-empt typosquatting in community package repositories like RubyGems, PyPI, npm, etc. What would the author of this post want to see happen to fix this?

                                                                                  (also, I object strongly to the phrase “supply chain attack” as applied to this type of issue, because I feel it should be reserved for the case where someone manages to take over or otherwise corrupt a legitimate package)

                                                                                  1. 3

                                                                                    I guess it’s possible to prevent typosquatting by modifying the namespace – requiring the Levenshtein distance between names to be >2 or whatever. That helps with one class of errors but not with the package name examples you brought up. It also doesn’t help with the case of a patient attacker where the package performs some useful function at first but has malicious code added later.

                                                                                    A radical solution Elm went for is only allowing pure functions in packages. That way, you have to wire in all the effects explicitly, so there’s no way to sneak in cryptocurrency mining or anything else.

                                                                                    1. 1

                                                                                      This is the first I’ve heard of Elm only allowing pure functions. That’s really neat, and makes more sense the more I think about it.

                                                                                      1. 2

                                                                                        I mean, you can still ultimately trick people into adding malicious code into the application, but I think it makes the barrier higher. At least you can’t have things like a third party date picker mining cryptocurrencies and making HTTP requests completely unbeknown to you.

                                                                                    2. 1

                                                                                      The phrase “supply chain attack” applies generally to any attempt to use insecure parts of an infrastructure to damage or harm users of that infrastructure; it applies perfectly here, and isn’t at all sensational. It’s also been an accepted term for these sort of attacks — and using typosquatting to attempt to steal Bitcoin is certainly an attack — for some time.

                                                                                      There’s also no need to “pick a winner”… if you were trying to design a more robust system you’d require cryptographic signing of all packages with a verified public identity, ultimately pointing back to either an individual human or a legal entity, and you’d e ventually require some sort of escrow stake / proof of work as a natural and desirable barrier for entry. There’s a reason why Microsoft and Apple both make their distribution mechanisms pay-for-play.

                                                                                      A progressive approach would be to create a walled garden within PyPi and only allow packages into it that were so signed and which the community had voted to include and which had gone through some level of verification of trust… so requests would get in, but requestz wouldn’t unless the community thought it was a good idea for two such similar names to co-exist within the garden (hint: it’s not a good idea). Corporate and other users could then whitelist to allow only the packages in that garden, if they chose, by just configuring pip. Arguably the garden should in the end be the default configuration and someone should have to do a bit or work to allow packages from outside of it.

                                                                                      This isn’t really a new problem… ultimately every package ecosystem will need to evolve a means to distinguish between “official/trusted” packages and “community/untrusted” ones via some mechanism. OS distributions know this off the bat, the problem is that so far programming language communities have chosen to punt this problem down the road because it’s only an issue when your language achieves a certain level of ubiquity that it becomes a problem. Clearly it’s a problem for Ruby and Python.

                                                                                    1. 12

                                                                                      What I don’t get is why this type of stories about Elm is so reliably posted and upvoted, even though they’re all about the same two issues that aren’t really technical and have been discussed ad nauseam here and in other forums.

                                                                                      There are far more interesting things happening. For example, the other day a new version of elm-review came out. elm-review is a static analysis tool with rules written in Elm. Seems more relevant to Lobste.rs.

                                                                                      I don’t see many stories about Elm on here, but when one of these pops up, I know it’s going to be posted and upvoted.

                                                                                      1. 23

                                                                                        If you think they’re more relevant, then post them! There are plenty of “topic” posters here and they usually do just fine.

                                                                                        1. 22

                                                                                          I think these stories get upvoted because a lot of people here are bitter, like I am. I was a very heavy Elm user with tens of thousands of lines of code across many projects in Elm + Haskell with extensive bindings between the two. All of that effort and time spent teaching people Elm and getting it adopted by coworkers/collaborators were all trashed. We had to throw away everything we built. All because of an arbitrary decision to cripple the language.

                                                                                          In my opinion Elm is now a toy language completely unsuited for any serious development. You cannot bet your company on a language where the answer to a missing library is “wait and see if the devs will take you seriously one day”.

                                                                                          Sorry! I’m one of these people that upvotes these posts :)

                                                                                          1. -9

                                                                                            Well, you can sure hold a grudge! We’re talking about events from two years ago. The thing is, while upvoting these stories might give you and others a sense of vindication, it’s not really helping with the quality of content on Lobste.rs, in my view. There is little value in endlessly rehashing old issues that are not even technical in nature. So perhaps take that into account next time?

                                                                                            1. 17

                                                                                              This was a pretty rude reply to my very nice comment! Maybe you should take that into account next time?

                                                                                              The relationship between open source projects and developers is an ongoing discussion and obviously is of interest to everyone. As evidenced by the fact that people are reading and upvoting this.

                                                                                              1. 4

                                                                                                Aside from your lack of empathy with people who had to throw away their hard work, what I don’t get is why would you engage with Lobsters content that you personally don’t like. Not everything is for everyone, people who personally don’t like some topics here normally don’t question why it’s even here, they just keep scrolling…

                                                                                            2. 13

                                                                                              I’ve read and dismissed other examples of elm griping, but I think this one is very articulate and argues its case very well. I’m convinced on most points where I wasn’t before.

                                                                                              1. 7

                                                                                                I think people should be warned about this over and over again. It’s more beneficial to the innocent bystander to know about this weird situation that’s unique to Elm than some new release of some Elm library. People should have an idea about what they’re risking by choosing to invest in Elm.

                                                                                                1. 4

                                                                                                  I’m not using Elm at the moment (just not doing front-end), but I’d be pretty happy to upvote them if you posted interesting Elm stories here. Anyway, I agree that this one isn’t especially interesting, but it seems on-topic enough. It also didn’t scare me away from the language.

                                                                                                1. 2

                                                                                                  Blue Mars by Kim Stanley Robinson. His Mars trilogy is a monumental work of hard science fiction. It’s become one of my favourites.

                                                                                                  Also A Fine Balance by Rohinton Mistry. It’s beautifully written but distressing in its unfortunate realism.

                                                                                                  1. 1

                                                                                                    Aaah I was thinking I should pick up Blue Mars soon. Love those books, but they are heavy (in the best way)! I found I needed to breathe between reading each one…

                                                                                                    1. 2

                                                                                                      Haha, yes, they require quite a bit of work from the reader, and could potentially benefit from some editing. But on the other hand, they’re unmatched in the level of detail and scope.

                                                                                                  1. 13

                                                                                                    I already wrote a critique of parts of this article, on hacker news. I’m not entirely sure it’s going to get much visibility there (Because nobody there seems particularly interested in it), so I’ll repost it here, because I’m interested in how people respond to it:

                                                                                                    It’s probably worth the owner checking out the Lisp Machine, Oberon, and Inferon (A descendent of Plan9 where they improved over the original concept). They say Plan9 is a step in the right direction, but rather than attacking a specific aspect of Plan9, they critique how the concepts were imported into Linux, which seems inherently silly to me.

                                                                                                    It’s like critiquing a master craftman’s tools by observing how a master craftman uses his tools, and then critiquing how the apprentice uses those tools. Sure, some of that criticism of the concepts is valid, but they picked the worst implementation of those concepts to critique.

                                                                                                    One of the things mentioned in the critique is how the filesystem in question communicates the changes back to the user, and how the user is expected to know what parts of the filesystem to alter. While in the examples given, it does seem relatively obscure, the decry the fact that they had to check the manual for the position to write to.

                                                                                                    However, both of those would still be the case for the system that they talk about. Let’s talk about object orientated systems, which already exist, in limited (compared to the operating system) forms. You still have to pick up a manual to figure out what keys and functions are relevant to you. In Pharo (which is more or less the system they’re after!), you can inspect objects that exist and the methods that exist for them – however – often, similarily-named functions do different things, which also requires reading a manual. In addition, using these tools as a first-time user, I was overwhelmed by the number of functions available, most of which I could only guess at what their purpose was. Pharo integrates the manual into the system, but the manual is still there!

                                                                                                    Standardized error codes are given in structures passed back (As in Erlang) or in Exceptions, but there are problems with those too. You still have to figure out what those exceptions or errors mean, and there isn’t necessarily a standardized format for those errors. As a developer I’ve been recently been working on writing a Python api. As someone who has little experience with the intimate details of the Python language, I do not always know of the exceptions that exist that I am able to throw, I do not always know of which exceptions would be most appropriate. The same problem exists (obscure error values), but in a different form. There are existing libraries that I rely on that implement more exceptions, sometimes these aren’t documented, and even with the venerable Requests library, I have still had to crack open the objects that exist to find easier methods of passing data that the Requests library has, and uses, but does not document for external use.

                                                                                                    Let’s look at the windows hive database. That’s a database of keys for values in the operating system. As a random developer, would you be able to open it and figure out what it does? I wouldn’t. As a windows power user I often relyied on articles from howtogeek without really fully understanding what the keys were doing (Although because of my experience an a systems developer, I could guess, but only after the fact). Again, the same problem (“I know what I want to do, but I do not know how to do it”) is exposed in a different form, and the methods and practices of the Microsoft organization make that difficult hard to reach. Yet again, the same problems are there, but in a different form.

                                                                                                    I do agree that the shell should handle program arguments, a program could expose keys and values and a shell could read that and tell the user about it. I would be interested to see the problems that the Oil shell encounter in their implementation of an object-orientated shell.

                                                                                                    1. 2

                                                                                                      Understanding the meaning of symbols and navigating large sets of symbols are certainly problematic, but it’s separate from the problems of unstructured data and the redundant transformations, which is what the article is mostly focused on, I think.

                                                                                                      I also think that the first two problems (which you are talking about) could be mitigated to a large degree. They are not fundamental. Similarly to the problem of unstructured data, they are caused in large part by an unnecessary separation between symbols and their descriptions (and the descriptions of their relationships). Even here, it would probably be helpful to have a universal store that could incorporate a variety of objects along with their descriptions! The other cause is that nobody seems to have a particular incentive to provide decent descriptions. It appears to be cheaper to get an army of programmers to internalise them, breaking systems apart into a multitude of layers to mitigate the programmers’ limited capacity for memorisation.

                                                                                                      1. 1

                                                                                                        As a random developer, would you be able to open it and figure out what it does?

                                                                                                        No, but as a Windows developer you would. There’s nothing mysterious about the registry. It’s just a tool like any other.

                                                                                                        1. 4

                                                                                                          I think I meant, given a subset of the registry, would you be able to figure out what it does? Regardless, your comment assumes that the person is trained in the thing that they’re using, which is an assumption that didn’t hold for the article in question. Someone familiar with the linux /sys layout,or with GPIO ports, would already be familiar with the filesystem layout. The question is how easily can a developer figure out a subset of the system that they are not intimately familiar with.

                                                                                                      1. 15

                                                                                                        Complaints about interviewing seem rather similar to complaints about open-plan offices. Pretty much everyone agrees it sucks, but it also never seems to change 🤷‍♂️ Indeed, things seem to be getting worse, not better.

                                                                                                        My biggest objection is that you’re often expected to spend many hours or even days on some task before you even know if you have a 1%, 10%, or 90% chance of getting hired, and then you get rejected with something like “code style didn’t conform to your standards”, which suggests they just didn’t like some minor details like variable naming or whatnot.

                                                                                                        I usually just ignore companies that treats my time as some sort of infinitely expendable resource, which doesn’t make job searching easier, but does free up a whole lot of time for more fulfilling activities.

                                                                                                        1. 2

                                                                                                          Getting rid of open - plan offices seems doable. Yet, we do not know how to screen for good engineers reliably with our without wasting anyone’s time.

                                                                                                          1. 1

                                                                                                            Hire them for an extremely short contract? Bootcamp does that. They pay travel and $1000 to work for them for a week, which doesn’t seem too bad.

                                                                                                            1. 6

                                                                                                              How would that work for anybody who’s currently employed?

                                                                                                              1. 2

                                                                                                                The last time I interviewed, I was talking to about 10 companies. If the hiring process involved a short contract, they’d have been off my list.

                                                                                                                1. 2

                                                                                                                  “Hire a candidate for a week” doesn’t strike me as a solution to, “Screen people without wasting anyone’s time.” At the very least, it forces the candidate to spend a week in what amounts to an extended interview. It seems to me like it’d be far more time-consuming for the existing team as well, what with coming up with a steady stream of short projects that require little or no onboarding, working with the candidate for the week instead of whatever else they’d otherwise be working on, evaluating the candidate’s work, and so on.

                                                                                                                  I’m not arguing that it’s a bad idea in general, just that I suspect it isn’t a good way to reduce wasted time.

                                                                                                                  1. 2

                                                                                                                    The responses show that it is just hard to come up with a process that works for everyone. Maybe one needs to offer choices but that has its own complications and reduces comparability.

                                                                                                              1. 110

                                                                                                                Thanks for your efforts!

                                                                                                                After four links, a domain can’t have a majority of its stories submitted from a single user.

                                                                                                                As a datapoint, I currently can’t submit stories from my domain as I’ve submitted 14 (9 by others). I’m probably biased, but most stories have been reasonably well received so I’d consider that a loss.

                                                                                                                1. 46

                                                                                                                  A simple tweak to this rule: bumping against the ceiling makes new submissions from that domain require mod approval. If posts are consistently well-received, mods can whitelist that (UserName, Domain) pair?

                                                                                                                  1. 9

                                                                                                                    I like this idea! If this is too much moderation overhead, maybe users with sufficiently high karma could see this queue and add approvals?

                                                                                                                    1. 12

                                                                                                                      Maybe. I dunno. I just threw it out there, but concerns around mod overreach and cabals of power-users are as old as time.

                                                                                                                      Tying site privileges to karma creates all sorts of Goodhart’s-law-shaped problems.

                                                                                                                      1. 3

                                                                                                                        Yeah, but maybe the same trust system that lobsters already has would work here: namely, a mod can delegate this queue to a user they trust? It’s all highly transparent anyway so abuse could be punished?

                                                                                                                        1. 2

                                                                                                                          A hidden, secondary confidence score that is calculated based on outcomes that are subjectively chosen is where pushcx may be heading with this in due time. Putting a number to it might be a good idea.

                                                                                                                    2. 39

                                                                                                                      As a datapoint, you are not alone. I wrote:

                                                                                                                      in the meantime bumping up against this limit posts a note to moderators so if it goes wrong we’ll see problems

                                                                                                                      This definitely went wrong.

                                                                                                                      My apologies to those inconvenienced by it, there’s a lot more false positives than I recognized. We’ve had a couple suggestions on how to reduce the error rate like only looking at the last N months or skipping it if any of the domain’s stories have done especially well (better than average or median?). I especially appreciate the folks writing and tweaking queries to try to build up our understanding, and I expect there’s probably some novel angle to separate noise from signal that we’ll think of in the next few days.

                                                                                                                      1. 10

                                                                                                                        There’s a “homepage” link in the profile. Perhaps the limit could be increased for your declared domain, (possibly, only if it’s unique across users?)

                                                                                                                        1. 4

                                                                                                                          This is a good idea, but what if the user is submitting from two blogs? For example, their personal blog and the blog of a project (perhaps a project the user contributes to) that the Lobsters community might be interested in.

                                                                                                                          1. 8

                                                                                                                            We have an authored by checkmark, that might work?

                                                                                                                            1. 2

                                                                                                                              How many people are doing that? I think it may be acceptable collateral damage.

                                                                                                                              1. 1

                                                                                                                                Aren’t hats available for that purpose?

                                                                                                                                1. 2

                                                                                                                                  Hats can’t be attached to posts… yet? Also, hats are generally used more for speaking on behalf/with significant involvement for more major projects, less associating sites to users. I suppose it can be changed…

                                                                                                                                  1. 1

                                                                                                                                    To clarify, are you suggesting that hats be used as a signal for increasing the (proposed) limit as to how many times a user can submit stories from a particular domain?

                                                                                                                                    1. 2

                                                                                                                                      No, but to have people make it clear that they are posting personal or project related. A separate limit per hat would be an idea yes for the post limit.

                                                                                                                              2. 2

                                                                                                                                Perhaps rate limiting posts rather than an absolute limit (or some combination of trust - whatever that means, account lifespan, etc to generate a score/threshold coupled with rate limits).

                                                                                                                              3. 35

                                                                                                                                Yes, this rule doesn’t really make sense to me. Users who write good stories will most likely be punished in this category.

                                                                                                                                1. 25

                                                                                                                                  yes, I came to the comment section to ask specifically how to handle posting entries for our own blog posts. I enjoy blogging and this is one of the few places I share my blog posts. Don’t how to handle this now.

                                                                                                                                  1. 5

                                                                                                                                    So, it is mostly me posting my own stories as can be seen in https://lobste.rs/domain/andregarzia.com

                                                                                                                                    1. 4

                                                                                                                                      Yeah. I don’t blog about stuff as much as I should and lobsters is one of the good signal to noise places I’d wanna share with.

                                                                                                                                    2. 17

                                                                                                                                      Looking at @arp242 submissions, they look relevant and interesting, so I agree it seems to be a problem with the new algorithm. It will reduce the amount of interesting niche content - precisely what Lobste.rs should be about.

                                                                                                                                      I’m probably in the same boat as @arp242 as I submit posts from my domain. One of my submissions is a book announcement with 26 upvotes, and the other five are Elm and Postgres posts and projects, which are neither low-effort nor frequent (this is over two years). I agree with @akkartik’s comment that the timeframe needs to be taken into account too.

                                                                                                                                      I was going to suggest that the problem could be addressed by checking whether the user submitted other sites or participated in discussions, with an additional check for community approval in the form of a certain number of upvotes across submissions/comments. However, after looking at @UV’s comment history I see that they would have still gamed that, primarily because it’s still easy to get upvoted low-effort comments here.

                                                                                                                                      1. 16

                                                                                                                                        Same boat. On the other hand, maybe this will motivate me to start digging through your archives to find interesting things, because I can’t rely on you just posting them here for me ;)

                                                                                                                                        1. 11

                                                                                                                                          Yeah, it’s a hard choice. I like to think that my own stories, at least as of the past couple of years, are a reasonable fit for this community, and at my current rate of about one post per year I don’t feel like I’m spamming down the site. At the same time, we’ve all seen those account which just post blogspam article after blogspam article from the same domain.

                                                                                                                                          Maybe these measures are necessary, but I consider it a good thing that people like yourself, and drew devault, and other people who write in-depth about technology topics they’re genuinely interested in, are able to post their stories here.

                                                                                                                                          Besides, this restriction would mostly affect real users who have the community’ best interests at heart, right? If I was a marketing shill and wanted eyeballs I can show content advertising to, I could just create a new account every fourth article, right?

                                                                                                                                          1. 8

                                                                                                                                            If I was a marketing shill and wanted eyeballs I can show content advertising to, I could just create a new account every fourth article, right?

                                                                                                                                            I think we’re actually good in that case! You’d have to invite the alt account, making what you’re doing SUPER obvious. And then we’d bad the entire domain, so you’d never get links from lobsters ever again :D

                                                                                                                                            1. 3

                                                                                                                                              I sat down at my laptop after work to respond to this because, yes: I was aware of the perverse incentive, but at least it’s pretty darn obvious and it reveals bad intentions. And I was distracted from finishing this comment to investigate and confirm that, yes, this happened.

                                                                                                                                              1. 2

                                                                                                                                                Why was this user banned? The user submitted 3 things, all of which are relevant and on topic? One of the github links is pretty low quality, but again, not off topic.

                                                                                                                                                Or, maybe the things I want to see no longer align with the site…

                                                                                                                                                1. 2

                                                                                                                                                  They were a sockpuppet of vermaden, not a person. I left the three on-topic stories that he submitted as cover for a link promoting his blog.

                                                                                                                                                  1. 2

                                                                                                                                                    Thanks for the explanation!

                                                                                                                                                    So, if that’s provably the case that the account was a sock puppet, ban vermaden?

                                                                                                                                                    But, how is having multiple accounts any different than asking “joe rando” to post on my behalf, which I did today (it happened to be posted by someone I actually know, but only after I asked)?

                                                                                                                                                    I’m going to start following the hashtag on twitter “#promotemeonlobsters” and submit links that appear to be on topic, that don’t appear to be spam to me.

                                                                                                                                                    If I get enough people also do this, there will be a wide variety of potential submitters to these stories, making this silly change irrelevant. Additionally, cannot exactly ban submissions found in that stream, since I can plausibly deny I found it there, and not directly from the source by happenstance.

                                                                                                                                                    OR, you could stage same domain posters, showing them to a random sampling of users until they reach some upvote threshold (say 3?), at which point everyone can see them. While you’re at it, perhaps this should be the way all posts start out…

                                                                                                                                                    1. 2

                                                                                                                                                      I thought about banning vermaden for the sockpuppeting, but I don’t read him as a badly intentioned content marketer, I read him as overly enthusiastic about FreeBSD. And if he’s clever enough to find bugs and foolish enough to not realize I’m paying a lot of personal attention to him while he does it, I’d rather let him continue a bit to catch other bugs/misdesigns.

                                                                                                                                                      1. 1

                                                                                                                                                        I’ve reread your comment multiple times now, am taken aback, and instead of replying how I really feel about it, I’m going to :eyeroll: and leave it be.

                                                                                                                                            2. 8

                                                                                                                                              Want to second this.

                                                                                                                                              It feels like a rule that will punish personal blogs. I’ve been posting stories from my personal blog here before, I’m not sure if there are stories from my blog others posted. I think they match the content people expect here (mostly infosec related) and I don’t think that’s abuse, some of them got well received.

                                                                                                                                              If I’d post on medium etc. I wouldn’t have that problem.

                                                                                                                                              1. 5

                                                                                                                                                It could be time bounded, or tested against multiple time ranges?

                                                                                                                                                For instance, user cannot post from a domain if more than half of stories in the last 6 months are from them.

                                                                                                                                                Or combine that with the original: a user cannot post a domain if they are more than half of all time posts AND they posted more than half within the last 6 months. That way if you could be the majority of all time, but not the majority of recent posts, or vice versa, and still be allowed to post for a certain domain.

                                                                                                                                                And “the last 6 months” could be 3 months, could be 1 year, or what-have-you.

                                                                                                                                                1. 3

                                                                                                                                                  I agree. The four link thing is kinda messed up. I write essays every couple of weeks or so, all about making better tech. I’ve spent some time making sure there’s no ads, no email lists, no sales at all on these links. I can’t make them any more innocuous, and I use the comments and feedback from here to learn more and (hopefully) write better stuff.

                                                                                                                                                  It doesn’t make sense that I can’t keep doing this. Perhaps the four link rule would work better when the domains were already high traffic sites? You don’t wanna kill the mom and pop grocery stores simply because you don’t like the new WalMart moving into town.

                                                                                                                                                1. 6

                                                                                                                                                  Great to see that you travel by train when possible, but how do you justify the carbon footprint of the flying that you do? A single international flight can easily produce more emissions that a person’s annual emissions in a place like India or Bangladesh. And I’m not even talking about business class flight emissions.

                                                                                                                                                  Here is another very useful tool, a flight emissions calculator: https://www.atmosfair.de/en/offset/flight (they sell carbon offsets too, but offsets do more harm than good so they are not a way out).

                                                                                                                                                  1. 6

                                                                                                                                                    Why do offsets do more harm than good?

                                                                                                                                                    I haven’t bought last year’s TerraPass yet so I’m interested in knowing.

                                                                                                                                                    1. 2

                                                                                                                                                      Essentially, it’s an issue of perverse incentives. This sums it up quite well, I think: https://kevinanderson.info/blog/wp-content/uploads/2013/02/The-inconvenient-truth-of-carbon-offsets-Pre-edit-version-.pdf

                                                                                                                                                      As an example, here is an in-depth look at what happens with forestry offsets in practice: https://features.propublica.org/brazil-carbon-offsets/inconvenient-truth-carbon-credits-dont-work-deforestation-redd-acre-cambodia/

                                                                                                                                                      Besides, you have to consider that for a given level of warming (either 1.5C or 2C), we’ve got tiny remaining carbon budgets and very short timeframes. What we need is real, rapid emissions cuts, particularly in the developed countries. Offsets, however, encourage exactly the opposite, so they are harmful.

                                                                                                                                                      1. -1

                                                                                                                                                        Right, but those are fly-by-night operators. There are verifiable US offset projects that are definitely real.

                                                                                                                                                        The perverse incentive situation does sound credible. Fortunately, I live in a city where policy makers see increasing traffic as action to create increased public transit. Unfortunately, any such mechanism in America is hamstrung by the universal veto problem. In regions absent significant traffic problems, I suspect public transit simply will not take off. It’s possible the marginal car added to San Francisco’s streets actually makes it more likely public transit will happen.

                                                                                                                                                        The “hard to prove it sums to zero” problem applies to everything, though. For instance, will suppressing nuclear power lead to better long-term results through earlier achievements of renewable generation? Will encouraging fission result in wide-ranging mining operations that worsen our results? That’s not a productive line of reasoning. Considering third-order effects are not easy to detect, the rational strategy is to attempt to reduce emissions and buy yourself into carbon negation every year you can.

                                                                                                                                                        Looks like it’s sensible for me to buy TerraPass this year.

                                                                                                                                                        1. 0

                                                                                                                                                          Yes, I agree that some of the domestic offsets are real and more useful. However, the perverse incentive problem persists. Sure, if you’ve made all possible efforts to reduce emissions first and then bought offsets for the remainder, that’s positive. But mostly it works in a different way, I suspect: people may choose to fly around the world like the OP, or otherwise continue a high-carbon lifestyle, and justify it by buying offsets. Same thing applies to corporations. At best, it achieves nothing: the emissions do not go down.

                                                                                                                                                          I’m not sure I can agree with you that the effects of offsets are hard to assess. I think they are very clearly a tactic that allows corporations and individual people in the developed world, where reductions are most urgent, to continue doing nothing about their emissions.

                                                                                                                                                          1. -1

                                                                                                                                                            Hmm, interesting. Just observing my behaviour after realizing TerraPass exists, I have increased carbon emissions but offset it all. So long as I’m paying to be net carbon negative, and there are few demonstrable third-order effects, it would appear that my total actions are now superior to my previous car-free transit-oriented lifestyle where I didn’t buy a single offset. Would you mind sharing your model of behaviour that results in net emissions being positive (let alone equal to pre-offset behaviour)? It doesn’t seem congruent with what I’ve observed: people go carbon negative rather than have a carbon budget that they remain within by increasing emissions and increasing offsets.

                                                                                                                                                            Of course I do disagree with you on the second paragraph, but that’s a discussion for a different time. Economically, it would be optimal for me to emit more by driving to work rather than taking BART if I used the realized time to achieve sufficient value that I can outpace some number of people in developing nations. I suspect this is likely to be true, simply because my time is of sufficiently higher economic value than theirs (as is others than mine). This is the mechanism that we should hope to tap into by capping personal emissions and allowing trading of emissions. It is better for the world that I sell Bezos carbon units that he can use to fly somewhere that allows setting up a warehouse than that I use those personally.

                                                                                                                                                            Thank you for sharing what you did with me. I appreciate it.

                                                                                                                                                            1. 0

                                                                                                                                                              I don’t think it’s helpful to get into the weeds of offset arithmetic. It may be that somebody is actually planting enough trees to offset all of your emissions – but it’s not sustainable in the longer term anyway, they can’t keep planting forever, especially if your emissions are increasing at the same time!

                                                                                                                                                              We can instead look at the history and evaluate the evidence. Carbon markets (and consequently, offsets) were introduced along with the Kyoto protocol back in 1997. In the 23 years since, annual emissions have gone up 50%. About half of carbon emissions since the beginning of the industrial revolution have been produced in the last 30 years. Keeping in mind that we have finite (and small) budgets for cumulative carbon emissions, this is unequivocal evidence that carbon offsets and markets don’t work and cannot achieve their stated goal – and we’re out of time to keep fiddling with them.

                                                                                                                                                              Thank you for the discussion as well.

                                                                                                                                                              1. -1

                                                                                                                                                                I think I can accept that inherent implementation complexities (governments do not want to put their industries at relative risk, permits on historical generation reward polluters, etc.) make a worldwide cap-and-trade system not work. i.e. it’s one of those “if we could all work together” things which never works. Clearly it didn’t work and that’s pretty strong evidence on its own. I think the big difference with the SO2 thing is that the gains from cutting SO2 across the US helped the US itself whereas in the international space much of the costs are externalized.

                                                                                                                                                                On an individual level, though, I find it hard to believe that someone relying on offsets to be carbon negative is worse for climate change than someone who is carbon positive but has no offsets. That’s just arithmetic. Of course, there will come a time when achieving offsets will be prohibitively expensive. But it’s the instantaneous net emissions that count. The availability of offsets or the use of them wasn’t the problem with the Kyoto Protocol. It was the use of allowances.

                                                                                                                                                                tl;dr I buy that cap-and-trade can’t save the Earth. I don’t buy that an individual offsetting all their emissions is doing a worse thing than an individual not offsetting but reducing use.

                                                                                                                                                                1. -1

                                                                                                                                                                  Well, there are a couple of things missing from your consideration: the second-order effects and the scenario of an individual who beats both of your tl;dr options handily by both reducing emissions and offsetting. But again, the number of such individuals is drastically constrained by human psychology (another second-order effect). It seems, however, that we disagree substantially on the magnitude of second-order effects ¯_(ツ)_/¯

                                                                                                                                                    2. 2

                                                                                                                                                      how do you justify the carbon footprint of the flying that you do?

                                                                                                                                                      I don’t.

                                                                                                                                                      I’m conscious of it being harmful to the environment, but I don’t think it would be constructive for me to try to justify it with “oh, but I recycle!” or any other attempt at negation. That would be a total cop out.

                                                                                                                                                      In truth, I’m not sure what more I can reasonably do to lessen my impact on the environment. It’s been years since I’ve had a commute, so that’s a good thing. As I understand it, having a pet is more harmful to the environment than running a family car, but I’m not going to kill my pets (who live with my girlfriend’s family in Russia). I suppose I could go and protest against hippies? From what I’ve read from economists, physicists, and climate scientists, the group of people who have historically caused the most climate change are misguided climate activists, because they are the ones pressuring governments (like in Germany) to back away from investment in nuclear power.

                                                                                                                                                      I’m hopeful for the future. I believe technological advancement will enable cleaner air travel. I don’t believe that everyone will just stop flying.

                                                                                                                                                      1. 7

                                                                                                                                                        From what I’ve read from economists, physicists, and climate scientists, the group of people who have historically caused the most climate change are misguided climate activists, because they are the ones pressuring governments (like in Germany) to back away from investment in nuclear power.

                                                                                                                                                        From my understanding, the issue with nuclear power is that we just don’t have a safe place to store nuclear waste. So even though nuclear power seems cleaner in the short term, the real problem is when nuclear waste starts poisoning the environment’s water and or just generally raising the radiation level of a area beyond what should be considered normal.

                                                                                                                                                        I too have heard this argument, but the people making them have been those, who just a few years ago, were denying climate change (for ideological, political, economical, … reasons), so I’m not sure how trustworthy they are.

                                                                                                                                                        But I’m interested in the pet argument, what’s the issue there?

                                                                                                                                                        1. 1

                                                                                                                                                          There are other ways of using nuclear fuel than storing it for 100k years after you’ve used 1% of the fuel. See e.g. https://en.wikipedia.org/wiki/TerraPower . But this is usually prevented because of fears of plutonium.

                                                                                                                                                          1. 1

                                                                                                                                                            the issue with nuclear power is that we just don’t have a safe place to store nuclear waste

                                                                                                                                                            That’s true for now, but I don’t believe it’ll be true indefinitely.

                                                                                                                                                            But I’m interested in the pet argument, what’s the issue there?

                                                                                                                                                            Meat.

                                                                                                                                                            Here: https://www.youtube.com/watch?v=AkIwX0hlPzs

                                                                                                                                                            1. 0

                                                                                                                                                              That’s true for now, but I don’t believe it’ll be true indefinitely.

                                                                                                                                                              So what’s the problem with opposing nuclear power until it actually is safe, like with what @ptman mentions?

                                                                                                                                                              1. 3

                                                                                                                                                                If you oppose anything until it’s perfectly safe, you’ll do nothing. The most important arguments for fission are a) that it’s massively more efficient than any other known form of fuel-consuming energy generation (except fusion), b) it isn’t beholden to luck of the draw factors (wind, hydro, and geothermal are all great, but only if you’re blessed with nearby wind, water, or magma), and c) its pollution footprint is relatively small, dense, and containable (even if it’s highly toxic and indescribably long lasting) … if you instantaneously replaced all petrochemical combustion power generation on the planet with even today’s “unsafe” fission you’d put a massive brake on human-driven climate change and, at worse, the power generation industry would kill over the next century a tiny fraction of the people it currently kills in any given year.

                                                                                                                                                                Fission, right now, is world’s safer than any known form of chemical energy generation … opposing it is, quite simply, illogical.

                                                                                                                                                                1. 0

                                                                                                                                                                  Fission, right now, is world’s safer than any known form of chemical energy generation … opposing it is, quite simply, illogical.

                                                                                                                                                                  That ties into the argument I mentioned about: right now, but the danger is that the waste it currently produces isn’t sustainable. And considering that a solution to this problem is currently just hypothetical, I find the position of the anti-nuclear people more reasonable.

                                                                                                                                                                  1. 1

                                                                                                                                                                    There are several long term sequestration solutions for the waste, but tragically there’s a lot of ill-informed opposition and fear-mongering about them that have little to nothing to do with with rationality or reasonableness. The only reason there’s any issue with current waste production levels is that its forced into short term, on-site storage by those same tragically short-sighted biases. Per megawatt of electricity the waste generated by petrochemical combustion must be measured in tonnes and the volume in cubic kilometers … the same amount of electricity from a modern nuclear reactor generates sub-gram levels of waste and the volume is in cubic millimeters, and reactor designs available today (but not yet in production) would generate even less. Yes, that waste will be impactful to human health for much longer, but only if you’re in close proximity to it … with the fossil fuel industry you just have to be anywhere downwind. The truly goofball thing is that there is no other viable alternative for taking humans off of petrochemical combustion en masse, but we keep delaying the inevitable due, my guess, to rent-seeking and lobbying by those same petrochemical suppliers.

                                                                                                                                                                    nuclear waste starts poisoning the environment’s water and or just generally raising the radiation level of a area beyond what should be considered normal

                                                                                                                                                                    That’s a good example of misplaced fears, BTW … high-level nuclear waste isn’t generally water soluble, and it doesn’t just start raising the radiation level in an area, except extremely close to it. Like over the lifetime of an average power generating reactor the fuel spilled from the trucks servicing the site will do much more damage to the local water supply than any of the fission products.

                                                                                                                                                                2. 1

                                                                                                                                                                  Maybe I have this wrong, but typical anti-nuclear sentiment is against all kinds of nuclear technology regardless of age, isn’t it? I can understand demanding certain levels of safety and sustainability, but I don’t see that particular nuance in this area of public discourse.

                                                                                                                                                                  1. 0

                                                                                                                                                                    What do you mean by “regardless of age”?

                                                                                                                                                                    1. 2

                                                                                                                                                                      I mean I don’t often see critics of nuclear power saying “the old technology is bad, and the newer technology is much better.”

                                                                                                                                                                      All I see is “nuclear bad!”

                                                                                                                                                                      1. 0

                                                                                                                                                                        Unless I am mistaken, the “newer technologies”, such as TerraPower mentioned above aren’t ready yet. So it’s more like “current technology bad, hypothetical technologies could be better”.

                                                                                                                                                                        Also, if the argument of the people you disagree with seems to (just) be “nuclear bad!”, I would wonder how much you have really engaged with these people, beyond the “public discourse”, which is necessarily, for lack of a better phrase, “dumbed down”.

                                                                                                                                                                        1. 0

                                                                                                                                                                          I’ll state my position on the topic whenever it comes up. I wonder where you’re finding all these people who are well-read in this topic. It sounds nice!

                                                                                                                                                            2. 10

                                                                                                                                                              I sort of get what you’re trying to say, carbon reductionism is problematic. But I also think your tone in this comment comes off a bit narcissistic and naive.

                                                                                                                                                              My anecdote: I’ve spent half my career working in my hometown with a commute, and half as a remote worker in another that traveled a few times a year (for work, family, and recreation). I’ve run the numbers going through my vehicle mileage and flights for the past 10+ years, and my carbon output was multiples higher than the years I had a daily commute. It’s been making me at the least think a bit more intentionally about what I’m actually travelling for, whether I can plan in advance to combine trips, etc. There’s also carbon offsets depending on how much you believe in them. The broader question may be asking what you really are doing as a world traveler - are you actually participating in the culture and inhabiting the places you visit? Or checking off items on a bucket list? Not saying there’s a right answer here but it’s at least a framing I’m trying to have.

                                                                                                                                                              1. 5

                                                                                                                                                                These type of comments come off as deranged.

                                                                                                                                                                Live your life and don’t avoid incredible opportunities to travel the world so you can microscopically impact the demand for air travel.

                                                                                                                                                                1. 2

                                                                                                                                                                  microscopically impact the demand for air travel.

                                                                                                                                                                  What you’re really pointing to here - correctly, I think - is that we have not globally figured out how to account for negative externalities in a meaningful way.

                                                                                                                                                                  In the US, coal fired power plants have long been one of the cheapest ways to provide energy, but the air pollution from running them is estimated to kill tens of thousands every year. But we don’t account for those deaths, let alone for the illnesses suffered or the cost to clean the air, so coal remains cheap.

                                                                                                                                                                  Until those externalities are priced into the cost of fuels, individual decisionmaking will not drive people away from flights or cars or anything else.

                                                                                                                                                                  To play with: an interesting carbon tax calculator, which weighs the cost of a tax based on emissions from burning a unit of fuel.

                                                                                                                                                                2. 4

                                                                                                                                                                  But I also think your tone in this comment comes off a bit narcissistic and naive.

                                                                                                                                                                  That’s an unfortunate interpretation.

                                                                                                                                                                  I struggle to see how my comment displays narcissism. In fact, I think the common behaviour that I am decidedly not engaging in, i.e., a whole load of self-admiration for not impacting the environment in other ways, is an example of narcissism.

                                                                                                                                                                  And naïve? It was a totally loaded question. It wasn’t “have you thought about your impact?” It was “how can you justify this bad thing you are doing?” To me, the real naïveté here is believing that people will stop travelling. Climate change is of course a concern, but I don’t have tens of millions of dollars to afford a Greta Thunberg yacht to whisk me around the world to complain about people flying. The now infamous Greta line is “fantasies about infinite economic growth”, but try telling people in developing economies that they’re not allowed to have the modern conveniences most Westerners enjoy. Try telling parents in Africa that their kids should continue to die of diarrhoea. Trade (and by extension, travel) are necessary for economic growth.

                                                                                                                                                                  The broader question may be asking what you really are doing as a world traveler - are you actually participating in the culture and inhabiting the places you visit?

                                                                                                                                                                  I know what I am travelling for. No, it isn’t “bucket list” trips. And no, I don’t think “participating in the local culture” (although I do do that) has any difference in environmental impact. I certainly participate in the local economy, which is important for any country. I’m not riding elephants and “finding myself” in a pair of yoga pants. I’m renting normal apartments, living a fairly ordinary life, just in places with better weather.

                                                                                                                                                                  1. 2

                                                                                                                                                                    I think gp was spot on. You are thinking only of yourself and ignoring the reality that faces us all: our carbon allotment for having any chance of keeping warming below 1.5 degrees celsius is almost used up. Blowing past that marker spells disaster for everyone on the planet. This is not conjecture, it’s settled science. We(tech workers) have the ability to work remotely and we should use that ability for the good of humanity. Please, pick a place and stay there.

                                                                                                                                                                    1. 2

                                                                                                                                                                      Please, pick a place and stay there.

                                                                                                                                                                      How do you suggest I evade immigration laws?

                                                                                                                                                                      1. 5

                                                                                                                                                                        Lots of options there: return to your country of origin; pursue legal immigration options in the country of your choice; live in Europe and take the train between countries…

                                                                                                                                                                        1. 3

                                                                                                                                                                          I have citizenship in the UK, Poland, and Australia. Sure, I could “return” to my countries of origin, but that would involve an awful lot of flying.

                                                                                                                                                                          I’m sorry, I’m not going to give you a serious, constructive answer. I am going to continue travelling. A random person on an Internet forum is not going to carbon-shame me out of that.

                                                                                                                                                                          1. 5

                                                                                                                                                                            And this is what it comes down to, strawmen about pets aside, for you and billions of other people: self-interest, however non-essential, trumps any consideration for the collective good, or even the long-term survival of human civilisation. Kinda sad, when you think about it.

                                                                                                                                                            1. 11

                                                                                                                                                              Whether the estimate of energy consumption is accurate or not, I applaud the conscious effort to reduce carbon emissions. Even if the actual reductions are 10x less, they still look very much worthwhile. This is the kind of thinking needed across every industry. Reducing energy consumption is an important part of the equation in the transition to renewable energy within the context of tiny & dwindling remaining carbon budgets.

                                                                                                                                                              1. 23

                                                                                                                                                                For some spooky Halloween times, take a midnight stroll through Google’s graveyard!

                                                                                                                                                                There’s a lot of hidden terrors in there that time has forgotten.

                                                                                                                                                                1. 4

                                                                                                                                                                  This list is a really neat blast from the past. It’d be cool to see a category for companies that were literally killed by google (e.g. Kiko, a calendar app made just before Google Calendar came out, which Google squashed like a bug).

                                                                                                                                                                  1. 8

                                                                                                                                                                    I don’t think even Google can get away with literally killing competitors. Yet.

                                                                                                                                                                    1. 4

                                                                                                                                                                      Depends on the country and if they use third parties that distance their brand from the act. See Betchel Corp vs Bolivian citizens that wanted drinking water as an example. Maybe Coca Cola in Colombia vs union people.

                                                                                                                                                                      If anything, I’m surprised at how civil things normally are with rich companies. Probably just because they can use lobbyists and lawyers to get away with most stuff. The failures are usually a drop in their bucket of profit.

                                                                                                                                                                      1. 4

                                                                                                                                                                        Perhaps not competitors, but certainly people who get in the way of profits get killed, eg see the case of Shell in Nigeria: http://news.bbc.co.uk/2/hi/africa/8090493.stm

                                                                                                                                                                        Hundreds of activists are killed every year, we just don’t hear about it much.

                                                                                                                                                                    2. 1

                                                                                                                                                                      You joke but I recall there was (is?) a “storage graveyard” in their Chicago office filled with CDs, casette tapes, floppies, and other physical media.

                                                                                                                                                                    1. 3

                                                                                                                                                                      I’ve used Elm professionally for about a year and a half, maybe longer, and we’ve had more or less the exact same experience. I’ve also recently lived in Norway, and have used Vy (before it’s name change).

                                                                                                                                                                      It has made me more curious about more ‘advanced’ functional languages like PureScript, and I wish there was a good comparison of Elm to it (and also other languages such as ReasonML).

                                                                                                                                                                      1. 3

                                                                                                                                                                        I don’t use Elm very much but I have used a good amount of Purescript (and Typescript), and having simple JS interop is such a game changer. Really wish that it could stick around.Elm works well for a lot of UI stuff but it’s just annoying to have to “do stuff” when I have some existing JS.

                                                                                                                                                                        Though kinda ironically I think Purescript is a really good backend language. Effects systems are super valuable on server-side code but don’t actually tend to be that helpful in frontend code (beyond how they’re used for dictionaries).

                                                                                                                                                                        1. 2

                                                                                                                                                                          Are effect systems not useful for error management for in frontend code?

                                                                                                                                                                          1. 1

                                                                                                                                                                            Effects systems are super valuable on server-side code but don’t actually tend to be that helpful in frontend code (beyond how they’re used for dictionaries).

                                                                                                                                                                            Mind elaborating on this?

                                                                                                                                                                            1. 1

                                                                                                                                                                              I wrote a thing about this a couple years ago, basically the granular effects system of purescript let you track DB reading and DB writing separately, to let you establish stronger guarantees about what kind of IO is happening in a function

                                                                                                                                                                              http://rtpg.co/2016/07/20/supercharged-types.html

                                                                                                                                                                              Some other examples over the years that I would find useful:

                                                                                                                                                                              • an effect like “DB access of unknown result size”. For example a raw SQL query on a table without any sort of LIMIT could potentially return a lot of data at once, whereas in web requests you want to have consistent, fast replies (so you should opt for pagination instead)

                                                                                                                                                                              • an effect like “accesses multi-tenant data”. This will let you determine what parts of your system are scoped down to a single tenant and which parts are scoped to multi-tenant data

                                                                                                                                                                              • An effect like “makes IO requests to an external service”. You could use this to qualify your SLAs in certain parts of your system (your own system probably should be built for higher expected uptime than some random third party)

                                                                                                                                                                              • An effect like “locks this resource”. You can use this to make sure you unlock the resource at a later data. Normally this is accomplished through a simple bracket pattern but with effects systems you can opt for different styles.

                                                                                                                                                                              Because the row polymorphism doesn’t force you to stack monads you avoid the mess of writing up a bunch of transformers and unwrapping/rewrapping items to get at the innards.

                                                                                                                                                                            2. 1

                                                                                                                                                                              Since we’re a startup we had effectively 0 existing code to worry about, which I guess make it easier in that regard for us.

                                                                                                                                                                              Do you use the more ‘complex’ functional concepts like type classes?

                                                                                                                                                                              I wonder if anyone would pick Purescript over Haskell for the backend.

                                                                                                                                                                            3. 2

                                                                                                                                                                              For us, at least, the relative simplicity of Elm was a big part of being able to move existing developers over to it.

                                                                                                                                                                              There were definitely times I missed metaprogramming or other fancy features, but I think hiding a lot of ‘magic’ is intimidating (even though they’re coming from a JavaScript background, where cheaty magic is just how things get done).

                                                                                                                                                                              Our experience also aligned with this post. We didn’t yet fall into the trap of trying to use elm-git-install for sub-dependencies (maintaining first-level dependencies is time-consuming enough) but it’ll probably happen sooner or later.

                                                                                                                                                                              1. 2

                                                                                                                                                                                You’re right about the simplicity making it easy for new developers to get started and feel confident with the language.

                                                                                                                                                                                I personally feel like I’m now wanting more complex concepts (metaprogramming, type classes, ..).

                                                                                                                                                                                We too haven’t reached that point, but I could see that in a year.

                                                                                                                                                                                1. 2

                                                                                                                                                                                  I really did miss type classes. Partially specified types is an ‘ok’ workaround in some cases, but it still felt incomplete. Especially not being able to extend Num.

                                                                                                                                                                                  1. 1

                                                                                                                                                                                    What do you think about nikita-volkov/typeclasses? Useful or not really?

                                                                                                                                                                                    1. 2

                                                                                                                                                                                      Wasn’t aware of that package at the time (loved the book, BTW) - but it looks like it might clean up some of the ugliness we had around non-primitive comparable. I’ll have to see if that works out when I’m on that project next. Thanks!

                                                                                                                                                                            1. 15

                                                                                                                                                                              I’m a bit disappointed that the interviewer didn’t mention a single question regarding addiction or any ethical dimension. It’s kind of been assumed that not liking pornography is just a conservative, right-wing thing, but I don’t think that’s correct. I personally perceive it to be pushing harmful stereotypes (both as in what women should look like, or how intimacy should look like), and then there’s the problem with trafficking, and never knowing what’s actually going on behind the scenes. Chomsky says it well.

                                                                                                                                                                              Setting aside things like these, which should be enough to say something isn’t right, but knowing the digital world (where creating addictions has become a common and often even necessary business model) reading

                                                                                                                                                                              you have to be clever to innovate at the bleeding edge of the web.

                                                                                                                                                                              makes me somewhat uneasy. Especially a front end developer should have to think about these questions. They are the ones tasked with creating “seamless experiences”, ultimately, disregarding the influence it has on people’s daily and personal life’s. I don’t think the interviewer should have just glossed over this. YouTube has hateful or harmful videos, but their raison d’être isn’t hosting them. PornHub will have it a bit harder that hosting and spreading pornography isn’t a big part of what they are.

                                                                                                                                                                              From the technical perspective it’s somewhat interesting, I guess. It’s about the problems of high-demand video streaming, probably above the level of most other video sites, but still way below sites like YouTube. That’s like having an interview with a slaveholder on what kind of whips they have found to have the best quality CIA agent on what the best strategies are to manipulate a foreign election.

                                                                                                                                                                              Edit: Rewrote a few sentences to avoid confusion, and replaced my analogy with a different one.

                                                                                                                                                                              1. 13

                                                                                                                                                                                I’m a bit disappointed that the interviewer didn’t mention a single question regarding addiction or any ethical dimension.

                                                                                                                                                                                Porn has been around a really long time. I’m pretty sure there’s nothing new to be discovered or discussed almost anywhere on earth on the topic, much less here.

                                                                                                                                                                                Like, the human race has brute-forced about every part of that solution space we can. There is not a dirty thought we can have that hasn’t occurred to scores of other people at one point in history or another–of this I’m certain.

                                                                                                                                                                                1. 21

                                                                                                                                                                                  Porn has been around a really long time.

                                                                                                                                                                                  Not in the way it is now, as an endless torrent on demand. Modern porn has demonstrably changed society in ways that ancient porn did not. For example, women now believe that pubic hair is unclean and as a result of excessive pubic hair removal are getting health problems that pubic hair can prevent.

                                                                                                                                                                                  Also, just being around forever does not categorise something as innocuous or beneficial.

                                                                                                                                                                                  1. 3

                                                                                                                                                                                    Hairstyles have been coming and going in fads ever since we left the trees and discovered hair can be cut and washed. Having this apply also to pubic hair is not exactly a huge change.

                                                                                                                                                                                    1. 3

                                                                                                                                                                                      As the article notes, gynecologists disagree, but what do they know, I guess.

                                                                                                                                                                                  2. 8

                                                                                                                                                                                    Like comparing chewing coca leaves to mainlining cocaine.

                                                                                                                                                                                    1. 3

                                                                                                                                                                                      Quantity acquires a quality of its own, you know. Not to mention that quality is altogether different as well: 4K video isn’t the same as a blurry black and white photo. There’s a strange blindness to this effect in the tech industry, whether it comes to social media, endless tsunami of content on Netflix, or indeed porn. Much like Facebook’s idea that more communication is unconditionally better has backfired spectacularly, maybe it’s the same with porn. And then of course there’s also all the engineered “engagement” in all these areas. Don’t be so quick to say it’s all totally harmless.

                                                                                                                                                                                      1. 0

                                                                                                                                                                                        Well-put.

                                                                                                                                                                                      2. 6

                                                                                                                                                                                        I’m a bit disappointed that the interviewer didn’t mention a single question regarding addiction or any ethical dimension.

                                                                                                                                                                                        The audience is web developers wanting to read something interesting about web development at a big company. They also want most of them to enjoy the article. Talking about the damage they might be doing doesn’t serve either purpose. Most would’ve just clicked the little X or otherwise moved on.

                                                                                                                                                                                        There’s been a lot of good writing on that subject for anyone looking for it. The key words are easy to guess.

                                                                                                                                                                                        1. 6

                                                                                                                                                                                          You’re kinda circling back to the same point. Yes, talking about ethical implications of our jobs is hard, and uncomfortable, but it’s necessary. Of course nost people don’t want to do it, off course most people don’t want to read about it. But it’s our responsibility to talk and to read about those things. “I don’t like doing it” is not a valid excuse for not doing something it’s your responsibility to do.

                                                                                                                                                                                          That said, the comparison with slavery is a bit out of place, imo.

                                                                                                                                                                                          1. 10

                                                                                                                                                                                            You’re doing that trick many people do here where it becomes all or nothing in every post, forum, etc. The stress of introspecting on these topics make many people do it at certain times and read relaxing content at other times. They’re fine splitting it up. Dare I’d say most people prefer that based on that simply being most popular way content is done online.

                                                                                                                                                                                            Then, other people think they should be mentally engaged on these topics at all times in all articles, forums, etc due to their importance. They also falsely accuse people of not caring about social responsibilities if they don’t discuss them in every article where they might come into play. You must be in that group. Author of the original post and their audience is not. Hence, the separation of concerns that lets readers relax just focusing about web tech before optionally engaging with hard realities of life at another time in another article.

                                                                                                                                                                                          2. 2

                                                                                                                                                                                            This isn’t a “what if my open source library was used by some military”-kind of question, I think that there is a much stronger connection between the two. Front end design is related to user behaviour, and I still consider this relation to be a technical question (UI design, user protection, setting up incentives, …).

                                                                                                                                                                                            If the interviewer had asked these questions, and the interviewee had chosen not to comment, that would have been something, but the article currently just brushes it away affront by saying “ Regardless of your stance on pornography, …”.

                                                                                                                                                                                            1. 3

                                                                                                                                                                                              I’m a bit disappointed that the interviewer didn’t mention a single question regarding addiction or any ethical dimension

                                                                                                                                                                                              A tech-related, Lobsters-worthy discussion of the topic would focus on how they collected user behavior, analyzed it, measured whether they were reaching their goals, strategized for how to achieve them, and specific methods of influence with associated payoffs. It would actually be more Barnacles-like since marketing is behind a lot of that. These technical and marketing techniques are politically-neutral in that they are used by many companies to measure and advance a wide range of goals, including pornography consumption. They could be discussed free-standing with little drama if the focus was really on the technology.

                                                                                                                                                                                              You were doing the opposite. That quote is an ethical question, even says so, where you have political views about pornography consumption, you wanted theirs explored, and you might have had some goal to be achieved with that. The emotional language in the rest of your post further suggested this wasn’t about rational analysis of a technology stack. You also didn’t care what the writer or any of their readers thought about that. So, I countered representing the majority of people who just wanted to read about a web stack. A mix that either doesn’t care about ethics of porn or does with it being a depressing topic they want to handle at another time.

                                                                                                                                                                                              I was on 2nd cup of coffee when you wanted me to be thinking about lives being destroyed instead of reading peaceful and interesting things easier to wake up to. Woke up faster in a different way. Oh well. Now, I’m off this drama to find a Thursday submission in my pile.

                                                                                                                                                                                              1. 2

                                                                                                                                                                                                A tech-related, Lobsters-worthy discussion of the topic would focus on how they collected user behavior, analyzed it, measured whether they were reaching their goals, strategized for how to achieve them, and specific methods of influence with associated payoffs.

                                                                                                                                                                                                I think these kinds of things were missing from the article. I know this isn’t the place to discuss pornography, and I try not to go into it in the comments. What I just brought up was a disappointment in the style and focus of the interview, and it being one-sided.

                                                                                                                                                                                                The emotional language in the rest of your post further suggested this wasn’t about rational analysis of a technology stack.

                                                                                                                                                                                                Well I do think it’s important, so I apologize for being a tad emotional. But other than what I wrote, I don’t have anything else to contribute. I neither run nor plan to run a streaming site, so I end up not having too strong opinions on what is being used in the backend stack ^^.

                                                                                                                                                                                                A mix that either doesn’t care about ethics of porn or does with it being a depressing topic they want to handle at another time.

                                                                                                                                                                                                I understand that, that’s why I prefixed my top comment with what you quoted. I furthermore feel obligated to apologise if anyone had to go through any inconvenience thinking about the “ethics of porn” because of my comment, I guess? No but seriously, bringing up a concern like this, which I explicitly tried to link back to a technical question, should be ok.

                                                                                                                                                                                                1. 1

                                                                                                                                                                                                  “I furthermore feel obligated to apologise if anyone had to go through any inconvenience thinking about the “ethics of porn” because of my comment, I guess? No but seriously, bringing up a concern like this, which I explicitly tried to link back to a technical question, should be ok.”

                                                                                                                                                                                                  There’s quite a few people here that are OK with it. I’m not deciding that for anyone. I just had to remind you that caring people who want a break in some places exist and that you do more good by addressing the porn problem where it’s at. I appreciate you at least considering the effect on us.

                                                                                                                                                                                                  “I neither run nor plan to run a streaming site”

                                                                                                                                                                                                  The main problem is consumer side where there’s mass demand following by all types of supply and clever ways to keep people hooked. You can’t beat that since they straight-up want it. What you might do is work on profiles for porn sites with tools such as NoScript that make them usable without the revenue-generating ads. Then, lots of people push for their use. If there’s any uptake, they get a temporary hit in their wallet but maybe an offset with ad-free Premium. I’m not sure the effectiveness. I just know they’re an ad model with tools existing to attack that.

                                                                                                                                                                                                  Griping about it on technical sites won’t change anything because… most viewers aren’t on technical sites and those that are rarely changed. So, it’s just noise. Gotta work on porn laws, labor protections for those involved, ethical standards in industry itself, ad blocking, etc.

                                                                                                                                                                                          3. 6

                                                                                                                                                                                            If you would like to discuss the ethical aspects go to a different forum. I would rrecommend the community around Thaddeus Russell’s podcast for a critical and reasoned take from people that actually interact with sex workers https://www.thaddeusrussell.com/podcast/2

                                                                                                                                                                                            1. 3

                                                                                                                                                                                              I’ve mentioned it elsewhere, but I’m not here to discuss the ethical aspects, not am I in a position to be able to. My comments are related to the interviewer and his choice of questions.

                                                                                                                                                                                              1. 1

                                                                                                                                                                                                Your gave opinions, stated as scare-hints without support:

                                                                                                                                                                                                “then there’s the problem with trafficking,”

                                                                                                                                                                                                “which should be enough to say something isn’t right,”

                                                                                                                                                                                                … and then based upon the now well-built pretext that porn “isn’t right” (and is therefore ethically ‘wrong’) - you commented on what the interviewer should have done - i.e. they should have had the same opinions and conceptions as yourself - and they should have turned the interview into one about ethics.

                                                                                                                                                                                                The interview was interesting to read, because of the info about the tech. As bsima says, please take ethical discussion elsewhere.

                                                                                                                                                                                                1. 2

                                                                                                                                                                                                  As you said, I prefixed the controversial parts by saying that it was my opinion. But I don’t think that the interviewer must have shared my views. The point I was raising was that I thought it wasn’t appropriate for the interview to just ignore a quite relevant topic, since this was about PornHub specifically, not their parent company.

                                                                                                                                                                                                  IMO, a just final question like

                                                                                                                                                                                                  “What are you doing to enforce age restrictions?”

                                                                                                                                                                                                  or

                                                                                                                                                                                                  “Due to recent reports, do you think that doing something against pornography addiction among younger generations can be tackled technically or does it need more (social) effort?”

                                                                                                                                                                                                  would have been more than enough, as to just show this is being considered. I’m not a journalist, so I don’t know how these questions could be phrased better, but I hope you do get my point.

                                                                                                                                                                                                2. 1

                                                                                                                                                                                                  I’m not here to discuss the ethical aspects

                                                                                                                                                                                                  …and yet, it’s the ethical aspects that you brought up.

                                                                                                                                                                                                  1. 3

                                                                                                                                                                                                    Looking at this thread, I didn’t respond to people who started talking about the harmfulness of pornography or the lack thereof. This even though I would like to – yet I understand that it is off topic. In fact most of this sub-thread has been more about the meta-discussion.

                                                                                                                                                                                                    All I can say is that I will be more careful not be too provoke these kinds of discussions in the future. I was thinking critically a lot about the topic the last few months, so my comment might not have been as neutral as some might have wished.

                                                                                                                                                                                              2. 5

                                                                                                                                                                                                That’s like asking an interview with a slaveholder on what kind of whips they have found to have the best quality.

                                                                                                                                                                                                This is more than a little hyperbolic.

                                                                                                                                                                                                1. 4

                                                                                                                                                                                                  My analogy is that the direct consequences of technical questions are being more or less ignored, which I think is fair in both questions. Of course it’s not identical, but that’s stylistic devices for you.

                                                                                                                                                                                                2. 2

                                                                                                                                                                                                  I could come up with quite a few objections to pornography, but the chap in your video link is not only not convincing, he is also hinting that he watches porn even though he denies it. He backs up his statement “porn is degrading to women” by qualifying “just look at it” which implies that he does that enough to have an opinion.

                                                                                                                                                                                                1. 2

                                                                                                                                                                                                  I think that while there is something you can do on an individual level, and you totally should, the real change needs to come from governments and corporations. It has been shown in studies (I’d really want to put in a citation here, but of course I haven’t read the study, but only read an article on a news site about this) that even people who care about the environment are more driven by financial incentives than by environmental motives. People start with changes that have limited impact on their lives, even if those aren’t the worst for the environment.

                                                                                                                                                                                                  For example, my girlfriend is a vegetarian and fanatically separates waste. However, she still still flies a lot and drives to work, because tickets are cheap, and driving is faster, cheaper, and more comfortable than using public transport. Another example that I see in almost every supermarket is vegetarian food. Vegetarian burgers are usually more expensive than actual meat. If you think about it, it’s incredible that raising and slaughtering an animal is cheaper than mashing some vegetables together and making a burger of those [1].

                                                                                                                                                                                                  I think there are two tasks here for the government:

                                                                                                                                                                                                  1. Align motives. The best decision for the environment should also be the best decision for your wallet. For example, flying and driving is incredibly cheap if you consider how much CO2 emission they cause.
                                                                                                                                                                                                  2. Supply information. What is the impact on the environment of flying, commuting, eating meat, doing my laundries, leaving my computer on at night? I can probably cut out some of those, but I have no idea how they relate, and it’s not something I care about enough to make a study of it. I bet a lot of people spend a lot of effort on one, but do more harm by l

                                                                                                                                                                                                  [1] I think there are multiple explanations, which probably all apply to some degree:

                                                                                                                                                                                                  1. Animals get treated like shit.
                                                                                                                                                                                                  2. Meat gets subsidized in one way or another.
                                                                                                                                                                                                  3. Producers make a lot more profit on vegetarian foods.
                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                    As far as your task 2 goes, I think there’s plenty of information already, at least wrt carbon emissions - breakdowns by various categories, studies, carbon calculators with various levels of detail (I recommend searching for something specific to your country if you’d like to understand your own footprint). We’re not lacking in information at this point.

                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                      I’m not saying there’s no information available. There’s almost too much information available to easily make sense out of it. The tools I found also suck (multiple choice surveys that makes you pick between ‘I eat meat every day’ and ‘I don’t eat meat’). It would help if the government verifies and distributes the information, and backs a site/tool to help you make informed decisions. I’m sure that people with enough time and determination could make an accurate figure of their CO2 emission, the problem is that most people don’t.

                                                                                                                                                                                                      For the people with a shallow interest in the topic, there’s a lot of potentially confusing information available. For example, I want to compare my CO2 emissions (meat-eater) with the emission of a vegetarian who flies significantly more. This site says: “A kilogramme of beef protein reared on a British hill farm can generate the equivalent of 643kg of carbon dioxide. A kilogramme of lamb protein produced in the same place can generate 749kg.” (now, weirdly enough, this statement is only about proteins, but I only read this the second time, and I would have happily used this figure in a calculation). This site says “Chicken produces only 2.33 kg of C02 per kg of meat before transport and processing.”. I’m not saying any of them are wrong, but in a quick-and-dirty calculation I could have used either of them for calculating the cost of eating meat.

                                                                                                                                                                                                      The government spends a lot of money on ads telling you to vote, to lock your doors, to be nice to people, to have lights on your bicycles, to not drink prematurely, to not smoke, to wear seatbelts, etc. But I haven’t seen a single ad that gives information about emission or tells you where to find this information.

                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                        Setting aside the question of how animals are treated different on different farms, and different countries, which is an ethical question, there remains at least one other.

                                                                                                                                                                                                        How do these CO2 stats take into account the energy density of food and adjustments in human metabolism especially when eating meat?

                                                                                                                                                                                                        It might be anecdotal and I’d be surprised if not controversial, that especially low-fat vegetarians and vegans have to eat a lot more, which also affects the outcomes.

                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                          I see. Yes, that would be useful. I think I would still prefer governments to focus on reducing emissions through policies and regulation in the first instance, but perhaps even that would benefit from information campaigns. However, given how urgently large changes have to occur, it might be better to be informing people that we’re in the midst of an emergency, rather than what their specific emissions are.

                                                                                                                                                                                                          By the way: the vegetarian who flies a lot likely generates more emissions.