1. 6

    That is a delightful writeup!

    I will caution folks that believe in the bAtTlE-tEsTeD pOwEr AnD sTaBiLiTy of the Erlang Virtual Machine that you can still blow-up a perfectly good prod server if your supervisors aren’t setup just so, and can directly cite a time where we had to compensate for this by wrapping everything in a systemd unit to keep popping it back up until we could properly solve the real problem. Even BEAM instances can use supervision trees. :)

    1. 3

      The blanket term for these technologies is usually XR in case that helps.

      1. 2

        I’m well aware–see also mixed-reality. All of those strike me as rather strained hype and marketing terms.

        (Though, in all fairness, I shudder to think at how much VR has been abused as a term.)

      1. 15

        While this is an interesting post, I’m not sure how the content here is relevant to this website.

        1. 19

          wut. It’s about configuring a variety of software and hardware components to enable streaming an avatar over the internet. That seems pretty par for the course to me…

          1. 12

            What config though? I don’t see a single line of config. I don’t see much more than a line or two on the justification for picking any of those options. Don’t get me wrong, these sorts of explorations are important, but important in the way that organizing my house is important; important but not necessarily useful to share to a programming audience. The tag chosen, “programming”, also doesn’t really apply to the content of the post which is another Yellow Flag in my mind.

            Once content like this becomes relevant, what’s stopping us from sharing personal productivity tips (explicitly called out in the rules), Twitch streaming setups, DVR setups, Usenet downloading chains, etc, etc. This feels more like “nerd lifestyle” than it does coding which I’m seeing more and more of in Lobsters in recent years.

            1. 5

              I’m interested in doing the exact same kind of vtuber-style streaming as the OP, and would definitely appreciate a technical writeup of exactly how they got their hardware+software setup working and their overall impression of the quality of it. I recall seeing other articles on @cadey ‘s blog about this sort of thing a while ago (about setups which, disappointingly, didn’t seem to work all that well). I haven’t gotten to reading the post in detail yet; I would hope that it has enough technical detail that someone else can replicate the setup. But even so I think it’s topical on the grounds of being an example of what one can in principle achieve with modern video streaming and VR tech.

              1. 4

                The hardware bit that I missed in the post and will edit in soon:

                CPU: AMD Ryzen 5 3600

                RAM: 48GB DDR4

                GPU: AMD RX6700XT

                Webcam: Logitech Logi Stream (it’s impossible to get a solid model number on this, sorry)

                VR headset: Valve Index / Oculus Quest 2

                Other tools (not mentioned in the article): Steam Controller (with OBS keybinds), Xbox Series X controller (for games), NAS to store stream recordings offline

                1. 1

                  Also, this stuff only really works on Windows. I haven’t tried running it on Linux, mostly because VSeeFace pretends to be a webcam and that doesn’t work on Linux.

              2. 3

                The “programming” tag’s description is,

                Use when every tag or no specific tag applies

                So I’ll hazard a guess it was chosen in its role as the default fallback. We don’t have a VR tag or a system setup tag, though those topics are of interest to many of us.

                1. 5

                  though those topics are of interest to many of us

                  That doesn’t matter. There are many here that are interested in personal productivity, yet it is off topic. Same with the vague definition of “business news” (anything with products, except Apple it seems).

                  This site has a set of things that are on topic, otherwise they are not. If you can’t find a fitting tag, don’t use “programming”, just don’t submit, because it is off topic.

                  1. 3

                    If you can’t find a fitting tag, don’t use “programming”, just don’t submit, because it is off topic.

                    The definition of the “programming” tag literally is “Use when every tag or no specific tag applies” though.

                    1. 4

                      If it is not about programming and you use that tag, it is very likely off-topic.

                      1. 2

                        I agree :).

                        Since there is a backlog of tags that the lobste.rs community wants (= thinks is on-topic for lobste.rs) but that haven’t been created yet, the absence of a tag isn’t a perfect heuristic for whether something is on-topic or not (otherwise nix wouldn’t have been on-topic until last month ;) ).

                        1. 4

                          For me there is a difference: I think that nix was always on-topic, since Unixy systems are on-topic. The new tag represents a specialization. It is as if we did not have a python tag here and programming was flooded with python related articles. The python tag is a specialization of programming,

                          The above article however has nothing to do with programming, so when we add a tag that captures “tech setups” the site broadens its topical landscape. That is different to me. I am not against it, but I think they are not comparable.

                    2. 2

                      I don’t think personal productivity is an equivalent point of comparison. This is specifically a technical puzzle. I think it’s surely in the spirit of the site’s topic law if not also the letter. The best evidence I can give is the vote count on this thread. There are many naysayers, but it’s still an overwhelmingly positive score.

                      1. 3

                        This is specifically a technical puzzle.

                        This site isn’t just about technical things. For example, we don’t talk about civil engineering or automotive engineering here despite both of these fields being deeply technical. From the rules: “Some rules of thumb for great stories to submit: Will this improve the reader’s next program? Will it deepen their understanding of their last program? Will it be more interesting in five or ten years?” I don’t think stories about personal setups do any of these things. Nor does discussing viaduct construction or catalytic converters.

                        The best evidence I can give is the vote count on this thread. There are many naysayers, but it’s still an overwhelmingly positive score.

                        This gets to the heart of the question. Should Lobsters be a site foremost driven by its community and only slightly driven by its rules, or should it be bound by rules with the community acting as a guide around these rules? When I joined Lobsters ~7 years ago I had finished my graduate studies a couple years back. I was looking for a site that offered me what academic conferences used to offer me. The strong topicality on Lobsters made it feel like a good fit. From what I’ve been seeing, many Lobsters who have joined over the last 3-4 or so years (N.B. this may just be recency bias and I’m not feeling motivated enough to make a Bayesian CI around my hypothesis to check, though I may at some point, so take this with a large dose of salt) seem to be more interested in creating a community than sticking to a topic. You can actually see the differences in the topics being posted and the discussions being had though. To me the topicality of Lobsters is what makes it unique, not just Yet Another Tech Forum.

                        There are many other technical sites with a focus on community. Off the top of my head, there’s HackerNews, Slashdot, Reddit, Twitter, Tildes, Yarn/twtxt, Usenet newsgroups, and the hundreds of Mastodon instances that discuss tech. What makes Lobsters unique is its strong focus on topicality. Ideally, I can come here and be guaranteed to read a story that would “improve my next program.” If I wanted a community, I could go onto any of the many other community sites that are out there. Moreover I’m definitely not a fan of building closed communities around invite only systems because they almost always lead to predictable clique dynamics (for that matter, I have pretty negative thoughts on closed general communities as a whole but this is off-topic). For me, losing the topicality of the site would probably cause me to want to leave the site, truth be told.

                      2. 2

                        lol I love that “except Apple it seems” - why is it that they can maintain such a good brand and be so hostile to open source? I just don’t get it. I’m not sure microsoft has ever been as bad as apple when it comes to FOSS but still they have somehow a bit worse optics fwict. Absurd.

                        Anyway, that was off-topic… I don’t really care about trying to find the infinitely thin line that separates “acceptable on lobste.rs” from “unacceptable on lobste.rs” … the question itself only exists because we have to coordinate this aggregate entity “lobste.rs” and while we try to be a bit decentralized with the voting and the discussing I think the definition will always be “whatever the mods think” - so right now I guess I am making a risky comment if this whole discussion ends up in some purge like has happened a couple of times (where I only arrived to see the aftermath but could have been baited into it if I had arrived sooner).

                      3. 2

                        Good desserts are interesting to many of us, but sadly off-topic. I’ve always been a bit concerned about Lobsters getting overrun with consumer product trip reports, which in some ways this is. Still a neat article though–I’m just a little torn on its topicality.

                        1. -4

                          What is your favorite dessert? I like chocolate-y things :)

                  2. 5

                    Well for what it is worth, some of the information in this article was extremely interesting and potentially useful to me in my job as a professional programmer. I agree it is niche and I can see how it might be irrelevant to 99.99% of programmers but for me, well lets just say I will look into building this functionality directly into the application I my company is building.

                    Having said that, more technical details would be useful. On the other hand I probably can’t use the exact software the author was using anyway so I will have to do my own research.

                  1. 2

                    have experience with this kind of “pro bono” mentorship, and if so do you find it rewarding?

                    Yes, and yes.

                    What channels are there for offering this kind of mentorship?

                    Afterschool STEM programs in your area (say, FIRST robotics) are always in need of folks to help out.

                    IRC, Discord, Slack, or online messageboards (lainchain, /g/ lol) can often be places to help explain the deep bits behind one-off noobie questions, and that often helps everyone. On IRC, just taking the time to ask clarifying questions when somebody needs something is rewarding. One of the cons is that you’ll see a lot of people hop on, extract value in the form of asking a question, and leave forever, which can be draining if you’re looking for a longer relationship.

                    Depending on the size of your polity, there’s probably at least one or two groups for programmers or people looking to break into the industry to hang out. Oftentimes, these groups specifically target people from currently underrepresented backgrounds in tech. A con is that you’ll probably run into other well-meaning (probably) techies who will show up in these places and will be overbearing or cringey, and that can interfere with your own efforts. In such cases, I recommend finding zen and sitting in the corner working on your own stuff, and politely and efficiently answering any questions you get posed and then returning to your own work. If you’re helpful, you’ll get a reputation for being a good resource and you won’t be getting high on your own supply when you should be focused on helping people. That approach can also be seen as pretty respectful if you aren’t a normal member of a target demographic.

                    1. 2

                      wheretrue, the hidden apex predator of the SQLite realm


                      1. 4

                        For me the meat of this essay would be this quote:

                        Cross-checking is simply asking yourself, perhaps in code, what the minimal solution looks like. Then, no matter what happens later, you know how much work you could have done to get the same result.

                        I usually like to ask “what is the stupidest and laziest way we could deliver this feature”, and then jump off from there (see Brooks’ “buukf a test plant”).

                        The thing that’s a bit scary about asking that question, especially in orgs with established “modern” devops practices or codebase with deeply entrenched architectural decisions, is that it will inevitably reveal a growing chasm between what would be the fast, simple, and legible way of doing something and the development realities of your org. It will cause SAN damage.

                        Expanding a bit, this is a function for senior engineers to really help with, since you can spot (sometimes by just trudging through a thought experiment and using your own experience as a guide) if a given solution is getting off-track.

                        1. 3

                          Um, I’m not sure that the satire tag is warranted. Maybe a tag for SAN loss would be more appropriate, if we had one?

                          1. 3

                            It’s quite satirical in tone, despite being entirely factual. That’s the best thing about it. (That and the many great quotes.)

                            1. 2

                              In my headcanon, you meant storage area network loss; Cthulu indeed.

                              Happy New Year, @friendlysock! 🥰

                            1. 9


                              Merry Christmas y’all!

                              1. 28

                                This article convinced me that Rust is overhyped.

                                But I also don’t owe it to you to cater to your delicate sensitivities and apologize for every other excited person who also writes about Rust.

                                And we don’t owe it to you to cater to your delicate sensitives and not say “wow you’re kinda creepy and arrogant about this Rust thing.”

                                Most of all, I’m not going to stop advocating for something I believe will materially improve the industry (and my job satisfaction).

                                I strongly advocate for something I believe will materially improve the industry (formal methods), but I work hard to do it in a way that’s not obnoxious. You can be enthusiastic without being a jerk!

                                1. 18

                                  The aggressive, everyone-else-is-an-idiot tone of a lot of Rust advocacy is a big turnoff to me, personally. Obviously there are jerks in every community, but this communication style seems much more common among Rust advocates than among advocates of most other popular languages.

                                  The language itself has interesting ideas. I still might choose Rust if I were working on a project involving a lot of concurrent access to mutable state. But I sure wouldn’t do it for the joy of becoming part of that community.

                                  1. 7

                                    It’s unfortunate, really, and one of the reasons it’s pretty far down my “would be cool to learn” list.

                                    1. 7

                                      As someone very interested in learning Rust, the community is actually one of the positives for me. I’ve never seen the attitudes you’re talking about, in fact the impression I have had is that the Rust community is very welcoming, friendly, and motivated. Far more commonly I see the opposite, where people somehow manage to be offended by someone’s genuine enthusiasm about the language and go out of their way to take them down a peg. It’s quite petty. That’s what I read from the article/rant and I agree with it, it’s something that has been bothering me even as someone outside the Rust community. If someone wants to make a point that their project is ‘written in Rust’, then what is it to you? Often it’s just one remark within a larger article but half the comments just zero in on it. If I get tired of anything, it’s that. It’s become more of a meme to point that out every time than the statement itself.

                                      1. 6

                                        This is the motte-and-bailey of Rust evangelism. Once you’re part of the community, it is all puppies and sunshine…but there is silence or outright denial about how the annoying the missionaries are if you have not seen the light.

                                        (We had some similar things with Node back in the day, and Java–though the author of the article didn’t mention it–was heavily shiller by Sun marketing and what these days we would call developer evangelists.)

                                        The Rust evangelion strike force has given the community a bad rep, and if you want to draw a historical analog look at the minority of obnoxious Ruby and Rails devs back in the day that made everybody think it was a community solely of brogrammers.

                                      2. 4

                                        but this communication style seems much more common among Rust advocates

                                        It saddens me to see that you believe that. My experience with the people working on rust is that they’re very open about other languages and the shortcomings that exist in rust.

                                        I would like to believe that the loud minority you can read here would do that with any language they can use to make such bold claims. (We’ve had this previously with people here ranting on “everything that’s not C”.) So based on my experience with people writing rust code in production I would ask you to ignore posts like this and make your own picture of it. And then come back and tell us what annoyed you about it, we can’t enforce the CoC on some persons blog post, but we can do so in the community channels and on github.

                                        Another problem that I’ve seen is that for every post pro rust there is one contra, some in the dismissive style we can read here (you don’t have a spec?, where is my GUI framework ?, do you know about django?, this will never mage it big, you’re just too bad to write good c). If you want some arguments against rust I’d invite you to r/rustjerk, where we can ironically make fun of the duality of rust coders, libraries and other related languages ;)

                                        1. 1

                                          The more I think about it, the more I can see how similar this is to people arguing against & for vaccination and how I’ve lately seen very aggressive attitudes on each side.

                                        2. 2

                                          I think the “everyone-else-is-an-idiot” is actually a group of people (many of whom have worked on the codebases they are talking about – e.g. Firefox and their attempts to build concurrent browsers) stating empirical evidence on previous software projects and their shortcomings and then talk about how they feel Rust reduces these failings.

                                      1. 2

                                        Clarification: they got hired to be embedded sales engineers at their existing companies, not at the cloud providers per se.

                                        Something something “devops and its consequences have been a disaster for the human race” something something.

                                        1. 1

                                          Yeah it depends on what you mean by “sys admin” – the original quote actually used the term (grumpy) “system engineer”, although the article was about “sys admin” (see response by caius)

                                          The term “sys admin” seems to have been replaced by “DevOps” and “SRE” in my mind, although in other areas of the industry it might be different.

                                          I have seen people use “system engineer” as a synonym for “DevOps” as well.

                                          Google used to only have “SRE” (a term I believe they invented and other companies copied), but several years ago they split the job titles into SRE-SWE and SRE-SysAdmin.

                                        1. 4

                                          Install gentoo, year of the Linux desktop.

                                          (I mean, if we’re memeing, might as well dust off some good ones….)

                                          1. 1

                                            Is there not a “batteries included” Node framework like Rails yet? I haven’t had the need to look for one but the Rails pattern has been popular in other languages I’ve used (Like CakePHP, for example). My experiences with Node have been good, but almost entirely been “small script that calls AWS” or “single function execution in AWS Lambda.”, or “small Express application that generated PDFs”.

                                            1. 4

                                              I don’t think any languages have had breakout all-in-one Rails-style fullstack frameworks since Django. Basically since Sinatra came out (2007!), everything has been Flask or Express-like routers that connect together little pieces. Maybe it’s time for another megaframework to come out, but I sort of doubt it. I think the market has spoken and people want to be able to connect together small pieces instead of getting something omakase.

                                              1. 7

                                                Pheonix is closer to the “batteries included” mentality IMO

                                                1. 4

                                                  I think the market has spoken and people want to be able to connect together small pieces instead of getting something omakase.

                                                  JavaScript, and npm in particular, have chosen this as their ethos: lots of little moving parts tied together manually. Think of the typical node_modules directory with 1000+ packages for a “hello world” app. Java has been the same way.

                                                  The Ruby/Rails ethos has always been more human-focused: we’ll trade RAM/CPU and fine grained control for a developer experience that is fast and easy. Omakase.

                                                  I agree with you: the JS ecosystem will never see a megaframework in widespread use because it goes against the ethos of the community.

                                                  1. 4

                                                    Phoenix in Elixir and most certainly Laravel in PHP both come to mind.

                                                    1. 1

                                                      I think the market has spoken and people want to be able to connect together small pieces instead of getting something omakase.

                                                      I don’t agree - it’s not a market-driven opinion so much as it’s REALLY REALLY hard to both provide a good omakase-style framework AND get the necessary adoption within an ecosystem to reach rails-like status. It’s not that people don’t want it, as evidenced by the continued success of Rails. There’s luck involved in being in the right place at the right time providing the right developer experience - it’s hard to capture that purposefully, and that’s why we don’t see a lot of it. I might be able to twist my perspective into defining that as a market justification, but it’s not because it’s what PEOPLE want, it’s how the market incentives align.

                                                      1. 1

                                                        I think the market has spoken and people want to be able to connect together small pieces instead of getting something omakase.

                                                        I hope so, but given the number of one-page rails apps and rails-like frameworks always popping up (there are several for PHP, several for Haskell, etc) I’m not so confident.

                                                      2. 2

                                                        Is there not a “batteries included” Node framework like Rails yet?

                                                        I’m surprised the author did not address this as well. There are definitely full stack frameworks like Next.js and Alelph for React and Nuxt.js for Vue. Then there are also various DBaaS providers like Supabase and Fauna that can take the place of the back-end of a traditional Rails app. I’m sure I’m missing others. I admit I’ve only tinkered with these batteries-included options myself. I’m not sure what it would be like to use them in production.

                                                        If the author had reason for dismissing them, I would like to know what it was. Otherwise the comparison is not particularly useful.

                                                      1. 2

                                                        We don’t have the Alan Kay / Free Software / Hypercard dream of everybody having control over their own computer because integrating with disparate APIs is really fucking hard and takes a lot of work to do.

                                                        I know that the author works in formal methods, not cloud engineering or package management, so it’s understandable that they might not have the experience of integrating lots of APIs. However, it is relatively easy, as long as the API is well-documented and easy to examine. The reason that I don’t have control over the computers which I own is because of firmware; chips from Intel, nVidia, Broadcom, and other corporations are not fully under my control, undermining my ownership.

                                                        1. 11

                                                          However, it is relatively easy, as long as the API is well-documented and easy to examine.

                                                          “Other than that, Ms. Lincoln, how was the play?”

                                                          1. 3

                                                            Consider GPU drivers. Some GPUs have public documentation for their low-level API; most do not. When that documentation exists, people can write Free Software to drive their GPUs. I have written a GPU driver based on datasheets provided by the GPU vendor. This is relatively easy, compared to reverse-engineering the GPU.

                                                          2. 3

                                                            It may or may not be “hard,” but it is certainly time consuming and requires skilled training.

                                                            1. 2

                                                              The reason that I don’t have control over the computers which I own is because of firmware; chips from Intel, nVidia, Broadcom, and other corporations are not fully under my control, undermining my ownership.

                                                              I don’t think firmware is what stands in the way primarily even for most programmers, nevermind for the general population. The biggest obstacle is a priest class of programmers who think that users simply don’t care to have their computers act as they wish or that the only way a computer can be instructed is by learning languages in detail etc etc

                                                              1. 1

                                                                Yes it’s relatively easy for a professional software engineer to do as the productive part of their work. For someone trying to accomplish something else completely it’s probably super confusing.

                                                                1. 1

                                                                  To take you and @carlmjohnson seriously, I’m going to give an analogy.

                                                                  Suppose a community of welders is dependent on some gas. This gas is only produced by a proprietary mining company. The company exploits the welding community, only sharing gas preferentially with welders who choose to donate labor to the company. This leads to welders seeking out alternative sources of gas, trying to set up their own mines and refineries, but the company’s network effects and legal backing are insurmountable.

                                                                  Now, one day an apologist for the company publishes the claim, “we don’t have the Free Welding dream of everybody having control over their own welding workspace because welding two pieces of metal together with a join is really fucking hard and takes a lot of work to do.” Several other welders agree, pointing out that it takes a lot of labor to make a good join weld.

                                                                  But isn’t it the case that welding requires practice and skill? Yes. It is also the case that any welder can join-weld (indeed, many define the word “weld” in terms of joining), though. By taking the apologist seriously, we might increase the number of welders, democratizing the welding practice and inviting many people to come learn the craft. However, if we are still limited by the company which produces the gas, then this only creates more competition for an artificially-limited resource.

                                                                  Indeed, it is the case that the company controlling the gas is always the bottleneck, Here’s where the analogy breaks down; while we cannot simply make copies of full tanks of argon, we can make copies of datasheets and source code. The marginal cost to Intel, nVidia, Broadcom, or other chip manufacturers is negligible, especially since they have to sink the bulk of the cost up-front in order to bring up software on the chips in the first place!

                                                                  1. 3

                                                                    I don’t see what proprietariness has to do with it. Integrating a bunch of disparate open source apis is almost as hard.

                                                                    By contrast, having everything tie in to a single language, paradigm, and environment makes things easier. This is how small talk was designed; I believe it’s part of what seduces Common Lisp weenies; and frankly I believe that vibrant ecosystems with a similar point of view across the ecosystem explain a large part of the success of Python and Java.

                                                                    1. 1

                                                                      What’s easier to integrate:

                                                                      • Postgres or Oracle?
                                                                      • Kubernetes or VMWare?
                                                                      • Prometheus or Datadog?
                                                                      • AMD/ATI GPUs or nVidia GPUs?

                                                                      It is not “almost as hard”. They are such distinct tasks that they are often listed as separate bullet points on CVs; I list Kubernetes expertise but not VMWare, and it’s not because Kubernetes is easy, but because VMWare is hard even compared to Kubernetes.

                                                              1. 36

                                                                Like why would you even need to do that in the user-supplied part of the format string? What would this even accomplish other than being a great way to get a shell whenever you wanted?

                                                                Here’s how it happened, I think.

                                                                This should already be the state of the world and it is amazingly horrible for us to have the people that make the things that make our software work at all starve and beg for donations.

                                                                A lot of this is self-inflicted. In no particular order and with limited coherence:

                                                                Creators suck at capturing the value they create, and even more at recognizing it. We write software to scratch itches or play with a new idea, and often identify its value as “oh a fellow creator might find this handy or neat” instead of “oh somebody could sell this to a niche market and make gorillions of dollars”. When we give this software away, we are surprised that we don’t capture that value. We tried patch that hole with Libre Software…

                                                                …but OG Libre Software assumed that most users were also creators, not rentiers. The idea was that you’d share your code with your friends/class allies and they’d be able to make use of it and share it with you, and so value got sequestered in the commons of software and helped everyone over time. As time has gone on, due to mistakes made by the developer community, we let rentiers take over the commons in exchange for a paycheck and this value stopped being sequestered where we could all use it. We could’ve probably drawn a line in the sand…

                                                                …except most developers–especially web developers and especially new developers–don’t understand why licensing is a big deal. GNU/FSF (who more people recognize right now probably from “stallman man bad” than from, you know, making Linux possible) didn’t just accidentally come up with the word salad of the GPL; there is in fact an important application of copyleft and in fact an important attempt to coerce companies into contributing back into the commons/benefitting our class allies/fellow creators. Without this coercion, rentiers will nearly always make use of software without giving anything back. If we had limited the amount of “open sources”/BSD/MIT-licensed software, this might’ve been okay, except…

                                                                people keep releasing BSD/MIT-licensed software. I don’t want to be super hard-nosed about this, but it isn’t hard to make the argument that at best this is training non-creators that software has no value (because they don’t have to pay for it) and at worst it’s basically crossing the picket lines and buddyfucking everyone else trying to make a living at this. This might happen a little bit until people get educated…

                                                                …except that a lot of developers (myself included) use this as a way of smuggling IP out of and into employers/rentiers. If we had pushed back against assignments of invention, work for hire, NDAs, and so forth, I think it’d be a lot easier to hold the line on this. As it is, though, if you ever develop anything neat at an employer (especially in a market without moonlighting protections) your best bet is to try to get them to open-source it as BSD/MIT so you can use it yourself for your own business purposes (or get hired elsewhere to maintain/update a private fork, which would violate the GPL). And when it isn’t developers doing this to ourselves…

                                                                …it is rentiers using Open Source software as a weapon against other rentiers and individuals. There is strategic value in greasing the common development paths for competitors along the ways you want, in advertising your engineering culture, in spreading your tooling in a way that makes it super easy to switch to a paid plan, and overall in preventing the formation of engineering talent that you might have to compete with or for (because the next generation of engineers just use your library and there is little pressure to learn it themselves). It’s easy to figure out some of the driving commercial interests that push Open Source instead of Libre Software, and yet in spite of all of this…

                                                                people who care about Libre Software almost always reject the market system we all work within. Like, if there was a compelling economic case for Libre Software, if folks hadn’t spent decades being armchair revolutionaries and making Libre Software the crazy uncle that nobody really wants to deal with, if folks hadn’t made working with them so unattractive to fellow creators that they’d rather deal with rentiers…well, maybe we wouldn’t be in this position. One of the most effective versions of GPL-but-pay-me is the licensing scheme Carmack used for the early Quake engines: released them as GPL, but you could pay to get a private license and consulting. A whole bunch of companies did that, a whole bunch of software got shipped that way, and everything worked out. If Libre folks could come down out of their ivory tower and engage similarly, we might expect it to be more of a factor in the marketplace.


                                                                All this to say…I don’t think “Open Source” is broken.

                                                                I think:

                                                                • Writing software for free is a sucker’s bet if you don’t have a glucose guardian. Treat it as charity and don’t be surprised if you never get it back.
                                                                • Open Source was created by ESR and others to get more companies to share code and be willing to share code. This has succeeded.
                                                                • Libre Software was created by RMS and others to sequester value into the commons for creators. This has partially, if not entirely, failed.
                                                                • We have failed to socialize the importance of caring for the commons to the next generation of developers.
                                                                • By letting extremists attach unrelated anti-market/radical views to the discourse we have scared off rational self-interested actors from normalizing Libre Software and instead have promoted the rise of rentier-friendly Open Source. Remember, RMS was fine getting paid to write software and fine selling said software.
                                                                • We have collectively been lazy in letting other people do the work for us when writing software or setting community priorities.

                                                                I’ve got other hot takes, but that’s enough for now. I’m happy that @cadey wrote about it, though I disagree with the take.

                                                                1. 5

                                                                  Thank you for breaking it down with such nuance. <3

                                                                  1. 4

                                                                    maintain/update a private fork, which would violate the GPL

                                                                    Could you point out where this is stated in the GPL? I’m having trouble find this clause.

                                                                    1. 4

                                                                      If you never distribute it, a private fork doesn’t even require source disclosure to anyone under GPL.

                                                                      1. 5

                                                                        And that again is one of the places the Libre folks kinda dropped the ball, only to partially pick it up with the AGPL: what does “distribute” mean in the era of thin clients and web apps?

                                                                        1. 2

                                                                          Well, that’s exactly what is addressed by AGPL, and why some smart SaaS developers are using it nowadays. E.g., https://reacher.email/

                                                                    2. 3

                                                                      I think the FSF also completely dropped the ball when it came to this stuff. Like, a big part of the reason clang exists is that gcc was bad for modularity and hacking on research stuff, and a big reason for that was that RMS didn’t want to make it too extensible in case people used that for proprietary things.

                                                                    1. 5

                                                                      Recently there was a massive vulnerability found in a critical Java ecosystem package.

                                                                      No. This library is not critically by any stretch of the word. What’s wrong is this mentality of bringing in a library for such a silly reason as whatever the motivation is for using log4j.

                                                                      It’s such a silly library that almost by design has to degrade into this kind of fiascos as it tries to do something “smarter” than the aleged problem it poses itself to solve. Concatenating/interpolating text and sending it to the output is something that every single language has solved since what? 40-50 years?

                                                                      1. 16

                                                                        Consider Chesterton’s Fence. These libraries don’t come into existence for no reason.

                                                                        1. 5

                                                                          What is the reason then?

                                                                          I am not sure if you red the contents of the link you posted: “If you don’t see the use of it, I certainly won’t let you clear it away.” About a security feature no less. I don’t think there is more ironic and clear (and a bit funny, I dare to say) way an analogy could fail. No offense. I mean, it actually happens the exact opposite of the outcome of that tale.

                                                                          1. 12

                                                                            I wish my company used something as good as log4j for our main products. I regularly have to deal with complex systems that break in all sorts of exciting and new ways, often involving something like 20-50 programs working together, using a couple different frameworks. At any given time, logs may go into: systemd, stdout/stderr, two different log systems managed by the framework we’ve developed, or wherever else the programmer thought was a good idea when they wrote it six years ago (it hasn’t been touched since because, idiosyncratic as it may be, it does work well).

                                                                            You can obviously say “this is dumb and your software sucks” and you are correct, but even if I could wave a magic wand and make it as simple as it should be, it would probably still be 5-10 programs and a large amount of system orchestration, reliability tooling and monitoring/reporting stuff. Potentially spread across multiple different computers, all of which are critical parts of the system. Because sometimes the world is actually just complicated and you can’t reduce it all down to a mathematically ideal proof.

                                                                            As for the analogy, it’s about having to make sure you understand why a decision was made before trying to change it. If you don’t understand why someone would want to use log4j or something like it, then how are you qualified to say “you shouldn’t need it”? I have a pretty good idea of why my job’s software is the way it is, which is why I’m now part of the team leading the charge to make it better.

                                                                            1. 2

                                                                              I have used it in maybe half a dozen to a dozen ocasions in my professional life and every single one of them it was there for reasons other than solving a specific problem. Such as “we use it in this company”, “it came with the framework”, “we chose this log library” and so on.

                                                                              Your example does sound like one of them. I don’t mean this in a condescending way: why is a prefix per application on all log entries not a valid solution? What exactly does log4j offer in that case?

                                                                              1. 2

                                                                                A logging library makes it easy to standardize logging and log configuration. Maybe you start out logging noisy debug output to stderr, but later your operation grows and you want error logs from all your services to be collected in a central place, but keep around debugging or info logs locally. You don’t have to change all your programs to make this work, and the configuration is the same for all, which makes ops’ lives easier.

                                                                                Also, if you’re writing a reusable library, using a logging library makes it easier for programs depending on your library to direct logs to their preferred locations. This works best when there’s a standardized logging library shared by all dependencies, because you only need to configure it once.

                                                                                1. 1

                                                                                  Making your own such library that does all those things you mention is trivial with neglectible effort.

                                                                                  I don’t think I need to explain the reason why I would do it everyday instead of pulling a dependency like log4j. But judging by the tone of the online discussions about this incident, I think most people actively refuse to learn something even from an unfortunate event like this one.

                                                                                  Just an anedoct for laughs if not anything else: a few years ago, a nodejs team in my workplace got reinforced with a developer from another team. A 50+ year old developer that had zero exposure to JavaScript. His only remark after the first workday was: “but if we work like this, each small thing pulls half the internet as a dependency, we have no clue of what our own program does, anything could happen.” Sure enough, not even a week had passed, the whole left-pad fiasco unfolds.

                                                                                  1. 1

                                                                                    Sure, you make an excellent point. Unfortunately, making and debugging your own library just for logging when there are already several ready-made ones available is a losing proposition in most businesses.

                                                                                    We need some way to gauge code quality besides popularity. And not just code quality but also something like team culture, because like I said elsewhere, a library might be perfectly fine today but grow an insane feature like the one behind this vulnerability tomorrow. If the team doesn’t have good guidelines on what’s desirable and what isn’t, it won’t know when to push back against feature requests.

                                                                        2. 13

                                                                          Hi, former Java developer here. We made good use of log4j, but not this newer variant. It’s maybe helpful to understand what’s different between the two. You’ll notice the feature creep of log4j2 is what introduced this security hole.

                                                                          Concatenating/interpolating text and sending it to the output is something that every single language has solved since what

                                                                          You are correct here, but you also I think miss the big picture. Things that modern logging is expected to do:

                                                                          • Use one or more backends for logging (not just sending strings to a file descriptor)
                                                                          • Have easy ways of changing the logging level without recompiling the application
                                                                          • Have easy ways of organizing output by subsystem, time, etc.
                                                                          • Have different formatting options (pure text, structured line-delimited JSON, whatever)
                                                                          • Have some degree of robustness/atomicity in concurrent environments

                                                                          Starting out on a project, you’re absolutely correct that basic string interpolation and printf() or whatever is probably good enough; but, many of us have experience of needing more advanced features quickly enough that we’re happy just starting with a sane library.

                                                                          Now, whether or not this should be built into the language is a whole additional question.

                                                                          1. 4

                                                                            No. This library is not critically by any stretch of the word. What’s wrong is this mentality of bringing in a library for such a silly reason as whatever the motivation is for using log4j.

                                                                            String concatenation is not what this library is for, it is for log routing, log management, easy support for different formats, transports , changing of log levels at runtime or via config changes etc.

                                                                            I have build a lightweight tracing system on top of log4j at my previous job to make logs be traceable across services. It really is a toolbox for managing logs in complex environments, not concatenating strings.

                                                                            There is a logging library build into the JDK commonly referred to as jul (== java.util.logging) that is fine for concatenating strings.

                                                                            1. 6

                                                                              Exactly. The problem is not opensource, the problem is that the society doesn’t allow the time to “learn” and “think” anymore. As soon as you have a problem, however tiny, let’s google it and either copy/paste from stackoverflow or install a mysterious package that seems to solve the problem.

                                                                              Once you have the “install a package” hammer, everything looks like “let’s find a package to do it” nail.

                                                                              Java and Javascript communities are probably the worst offenders were this mentality is the more prevalent.

                                                                              So the title “open source is broken” is form someone who clearly doesn’t understand what “open source” is.

                                                                              I would say: “commercial programming is broken” -> as everything which is done at scale commercially or “java programming is broken” -> as it always has been, it’s by design.

                                                                              1. 9

                                                                                Wow, you really have absolutely no idea what you are talking about. The apache logging project has been around for 20ish years and it is not some “mysterious package” that people find on stackoverflow. It is a well established logging framework. Just because you don’t have certain requirements does not mean people who have them don’t “think” or “learn”. Please keep your hubris to yourself.

                                                                            1. 22

                                                                              I’m unsure if Peter has the spare time, or if it’s just the bare minimum to keep the site up and not go up in troll-flames. There was a we need a new moderator-post some time ago but as far as I know there are no nee moderators.

                                                                              It might not be unwillingness, but rather a lack of time. Pure speculation of course, but that’s the first thing that comes to my mind.

                                                                              1. 16

                                                                                We had a pretty responsive moderator back when @alynpost was around, but that is no longer the case. We had a remarkably interesting precedent of community-advised autocracy under @jcs and later @pushcx–that’s probably the most interesting/endearing part of Lobsters to me, and one that I think has mostly passed (much to my dismay). According to the mod log, we have been operating with only one mod for at least a few months.

                                                                                @pushcx has made oblique references (if my reading was correct) to some non-Lobsters circumstances drawing attention away (which is quite fine, since there is in fact a life outside the red site). Regrettably, the structure of governance for Lobsters is not robust when that happens.

                                                                                I have various critiques on how we get here, but I think it is sufficient to state that: Lobsters functions best with a very involved community, people focusing on tech instead of other things, and processes/mods engaged on a daily basis; but, I do not believe that we are currently in that operating regime.

                                                                                Sorry to all of the folks who’ve put such effort into writing up good tagging proposals. :(

                                                                                1. 17


                                                                                  1. 9

                                                                                    <3 we’re doing our best, and I do believe the site will be around for many years to come

                                                                                  2. 16

                                                                                    Yeah, I agree that the site does need attention from mods to be its best, and there isn’t as much of that to go around lately. With that said, I do think very highly of Lobste.rs users, and I think all y’all should give yourselves credit. The quality of discussions has largely remained high even during periods when mods have been busy elsewhere, and I think that’s the result of everyone’s hard work, not just the few of us with authority.

                                                                                    My overall philosophy on things like this (but please understand that this is my personal view, not the view of the site) is that top-down moderation can only ever scale so far - but that’s okay, because when everyone in the community is committed to making it the best it can be, and feels empowered to gently guide things back on-track, that scales to any size.

                                                                                    1. 3

                                                                                      I can see how you’d get this impression from the mod log, but I’m certainly not alone. The mod channel on IRC also includes the chat mods (@355e3b and @aleph). We’re in different time zones on different schedules, so there’s pretty much always a running discussion as we talk through issues.

                                                                                  1. 4

                                                                                    I won’t make any claims about docker, but Nix is a solid replacement for docker-compose.

                                                                                    1. 5

                                                                                      At work I’m using Nix to build container images, which I’m trying to get fully reproducible, and that would have been a herculean task without Nix. I don’t think we’ll need Docker at all.

                                                                                      1. 4

                                                                                        That’s a great application for Nix! Making Dockerfiles reproducible is a nightmare and most folks don’t even try.

                                                                                        I hope you can write this up sometime!

                                                                                    1. 19

                                                                                      While I agree with the reasoning in the article and think the approach suggested makes sense, I also think it misses the wider picture and is only likely to result in small gains. The real issue with modern tech is not technical it is political, and there is not technical solution to this problem.

                                                                                      The solution proposed here may get adopted and result in marginal gains if and only if some corporate executives decide it could make their company more profitable.

                                                                                      The real issue with tech as I see it is the participation of for profit corporations. The goals of for profit corporations are not aligned with those of the human race in general, or individual humans in particular, unless those humans are shareholders. They put non-technical people in charge of development projects because those people have the capital everyone needs to get the job done. They prefer opaque proprietary protocols and interfaces because it enables them to entrap their users and gives them a chance to build monopolies. The create broken by design systems like DRM to protect profits. They turn a blind eye to bad behaviour like spam, clickbaiting, trolling and scamming whenever these are sources of profit for them. They hide their source from scrutiny which might otherwise discourage bad behaviour and discover security issues. They work programmers too hard for too long hours, while browbeating them and breaking their spirit until they no longer take pride in their work. Their focus is always short term. Worst of all, they discourage the population at large from understanding how their devices work, preferring instead to dumb all human interfaces down and make people dependant on ‘tech support’. Their interest is not in building a good base of software for enabling human beings to live full and happy lives with everyday technology, their goal is to siphon resources out of society and use it to grow out of control and ultimately take over everything. Like a malignant tumour.

                                                                                      I know a lot of programmers don’t like talking about this aspect of things but I think it is important. It may seem off topic but if your read the three introductory paragraphs of the article again I think you will see that what I am talking about is probably a major factor in the problems the author is trying to solve.

                                                                                      1. 24

                                                                                        We see the same problems in open source projects, free software, and government tech. I bet if you peeked into Soviet software companies you’d see the same problems, too. Blaming capitalism is the lazy way out.

                                                                                        1. 17

                                                                                          This is too conflationary of a dismissal. Look again at the list of problems:

                                                                                          • Non-technical leaders giving top-down orders
                                                                                          • Building and publishing proprietary interfaces
                                                                                          • Designing DRM
                                                                                          • Giving reputation to bad actors as long as it is profitable
                                                                                          • Building private code repositories and refusing to share knowledge
                                                                                          • Forcing programmers to work long hours
                                                                                          • Blocking right-to-repair and right-of-first-sale

                                                                                          Your reply is that this also happens in the open-source world, which is a corporate bastardization of Free Software; and that it happened in the USSR, a time and place where a government pretended to be “communist” but still had shops, jobs, wages, and a wealthy upper class. Yes, I imagine that these capitalist and corporatist patterns are recurring in many contexts. No, it is wrong to lump them all together with Free Software.

                                                                                          1. 17

                                                                                            Looking at the list of problems:

                                                                                            • Not in the article.
                                                                                            • Not in the article.
                                                                                            • Not in the article.
                                                                                            • Not in the article.
                                                                                            • Not in the article.
                                                                                            • Arguable?
                                                                                            • Not in the article.

                                                                                            That’s why it’s the lazy way out. It doesn’t engage with the article at all. You just have to say “it’s capitalism’s fault” and watch the upvotes roll in.

                                                                                            1. 12

                                                                                              Just because anti-capitalist/corporate sentiment is popular doesn’t make it lazy or disingenuous. Putting the argument in a cultural/political context is a perfectly valid way of engaging with it. Pointing out that they come up with their own examples that are not in the article, as if that’s a bad thing, is a weird way to make a counterargument, given that the article is concerned with “ways we keep screwing up tech.” Giving corporations too much control over its direction seems like a pretty big way we’ve screwed up tech so far.

                                                                                              1. 6

                                                                                                Software development suffers during demand imbalance. In a market situation with fierce life or death competition, people work insane hours and abandon practice just to get things out the door. In markets where companies make money/survive no matter what they do, practice (and code) atrophy. No one cares. The latter case has effects that are remarkably similar among government projects, non-profits, and large institutions like banks and insurance companies with little competition.

                                                                                                You can blame Capitalism, but the truth is people and projects need purpose and incentive; just not too much. There’s a sweet spot. It is like having a good exercise routine. Without it you atrophy; with too much, you destroy yourself.

                                                                                                1. 2

                                                                                                  I largely agree with that point. And I’d be naive to argue that capitalism alone is the cause of all problems in the tech industry, which is why I didn’t. At the same time, I think that capitalism, at least as it exists in the United States today, offers pretty bad incentives for teams and individuals most of the time. Professionals in the computing field have it better than most in that they have large monetary incentives. But above about $75K, as Kahneman and Deaton found, more income has little effect on one’s evaluation of own’s own life. Beyond that, you still have the problem that the interests of working people, including programmers, mostly don’t align with oligarchs’ interests. I’m not alone in the experience that even at a substantial salary, it’s pretty hard to feel incentivized to deliver value, ultimately, to those who own vastly more wealth. Not what I would call a sweet spot.

                                                                                                  1. 5

                                                                                                    It would probably be good for you to talk to programmers in Sweden (if you haven’t). Less capitalistic, much more socialist. A lot of big employers and relatively fewer startups. They have problems too. And that’s the thing. All systems have problems. It’s just a matter of tradeoffs. It’s nice that there’s enough diversity in the world to be able to see them.

                                                                                              2. 8

                                                                                                (You should know that I wrote and deleted about seven paragraphs while attempting to engage with the article seriously, including this one.)

                                                                                                Let’s take the article’s concluding suggestion seriously; let’s have a top-ten list of ways that “the technology industry” is “screwing up creating tech”. I would put at number one, at the very top: The technology industry’s primary mode of software creation is providing services for profit, and this damages the entire ecosystem. What ten behaviors would you put above this one? The only two contenders I can think of are closely related: Building patent pools and using work-for-hire provisions to take copyrights from employees.

                                                                                                It’s not capitalism’s fault that self-described “experts” are having trouble giving useful advice.

                                                                                                1. 3

                                                                                                  Is there an “industry” that doesn’t exist for profit?

                                                                                                  I think needless churn, overcomplication, harmful treatment of developers, harmful treatment of users, and wasteful use of energy are all ways the industry screws up tech…but then again, so too does libre software!

                                                                                                  And unlike industry, there isn’t even an evolutionary pressure you can hijack to keep it honest.

                                                                                                  1. 3

                                                                                                    Beavers do not terraform for profit. The bulk of free culture is not profit-driven either.

                                                                                                    Note carefully that you substituted the original list of seven problems which are all created by profit-seeking behavior with your own list of five issues which are not. Yours are also relatively vague to the point of equivocation. I’ll give a couple examples to illustrate what I mean.

                                                                                                    For example, where you say “harmful treatment of users”, I said “giving reputation to bad actors as long as it is profitable” and the original comment said “spam, clickbaiting, trolling and scamming”; and I do not know of examples in the FLOSS world which are comparable to for-profit spamming or other basic fraud, to say nothing of electoral interference or genocide, although I’m open to learning about atrocities committed in the furtherance of Free Software.

                                                                                                    For another example, where you say “harmful treatment of developers”, I said “forcing programmers to work long hours” and they said “[for-profit corporations] work programmers too hard for too long hours, while browbeating them and breaking their spirit until they no longer take pride in their work”; you have removed the employer-employee relationship which was the direct cause of the harmful treatment. After all, without such a relationship, there is no force in the Free Software world which compels labor from people. I’ll admit that it’s possible to be yelled at by Linus, but the only time that happened to me was when I was part of a team that was performing a corporation-led restructuring of a kernel subsystem in order to appease a still-unknown client.

                                                                                                    1. 5

                                                                                                      You asked for a top-ten list, I gave five; don’t bait-and-switch.

                                                                                                      Each of those examples I gave can and does happen under both a for-profit model and under a libre-hippy-doing-it-for-free model.

                                                                                                2. 7

                                                                                                  Not in the article.

                                                                                                  “But once I started working with teams-of-teams, process, and changing large groups of people, things did not work the way I expected.” “I found myself repeating the same things over and over again and getting the same substandard results.” “ came to realize that these were honest efforts to get more traction.” “I got worse at learning new stuff” “tired of watching my friends repeating the same things over and over again, snatching at this or that new shiny in an effort to stay relevant”

                                                                                                  It is fine that you disagree with my interpretation of how the article describes the problem. Maybe I completely misunderstood what the author was referring to. Perhaps you could enlighten me and provide the correct interpretation. I look forward to your response.

                                                                                              3. 9

                                                                                                Solely blaming capitalism certainly won’t address all problems with software development, but I do think there’s a case to be made that the profit motive is just as good a tool for producing pathological states as innovation. DRM is a prime example.

                                                                                                1. 12

                                                                                                  The original post had nothing to with DRM, putting nontechnical people in charge, hiding source code, working long hours, or dumbed down human interfaces. Dunkhan didn’t engage at all with the actual article, he just said it was all because of “for profit corporations” and listed unrelated claims.

                                                                                                  You could argue that profit motive is a good tool for producing pathological states; he didn’t.

                                                                                                2. 7

                                                                                                  I mean, open source in the large is dominated by corporate interests, so this isn’t much of a gotcha. Just ignoring capitalism as a fundamental factor seems like the significantly lazier option.

                                                                                                  1. 11

                                                                                                    I never blamed capitalism. Adam Smith, and most respected capitalist economists that followed have all said that monopoly formation is to be avoided at all costs and if not correctly controlled will completely undermine any benefits of a capitalist system. If you go through the behaviour I called out, almost every example is either the result of, or an effort to achieve a monopoly. It would be more accurate to say I am defending capitalism against those corporations who are ruining it. If you want an -ism that I am blaming, I think the closest analogy to what they are doing is some kind of feudalism. Lets call it corporate neofeudalism.

                                                                                                    The main tool we have for combating this behaviour also comes directly from the same canon of capitalist thinkers. Namely, antitrust laws. All we need to do is expand them, make them harsher, and then ruthlessly enforce them. There is no need for new and creative solutions to this problem, it is an old problem and has been solved already.

                                                                                                    1. 4

                                                                                                      IMO when somebody says “the problems with software are that it’s being done for profit” there’s no need to talk with them about software any more. They’re not interested in fixing software, and if that’s all you feel like talking about right here and right now there’s no useful outcome in engaging with them.

                                                                                                      1. 1

                                                                                                        No one said that.

                                                                                                        If you want to put words in other people’s mouths and then dismiss their opinions based on those words go right ahead, but it does not reflect well on you. The fact that you see any attack on corporations as an attack on profit making of all kinds also concerns me a great deal. Did you take the Citizens United ruling so seriously that you really believe corporations are people, or are you just getting paid to defend their interests on the web?

                                                                                                  1. 8

                                                                                                    One nice thing about “don’t do this” lists is that they indirectly acknowledge that there are many equally acceptable roads to success, and sweating over one in particular is often counterproductive.

                                                                                                    1. 17

                                                                                                      Not sure where DHH is coming from here.

                                                                                                      Is it his faux hacker-bro persona, “I’m with you in the trenches” schtick? Is it the dude that races endurance cars on his days off? Is it the businessman who decided that “politics” was off-topic and lost 1/3 of his employees?

                                                                                                      Borderline off-topic and flagged as such.

                                                                                                      1. 13

                                                                                                        Are you more focused on the messenger than the message?

                                                                                                        1. 14

                                                                                                          If you can extract any message from this ill-formed rant, please let us know what it is.

                                                                                                          If this had been written by anyone other than DHH it would have been laughed out of the room.

                                                                                                          1. 9

                                                                                                            The message I took away was that we should treat the programming profession as the serious field that it is, and not let ourselves diminish the skills we’ve learned by resorting to snide comments about how we all copy and paste.

                                                                                                            1. 14

                                                                                                              Yes, that would be important if anyone outside programming humor subreddits and DHH’s fevered imagination acted that way.

                                                                                                              1. 6

                                                                                                                I’ve seen and heard senior engineers say this, so people definitely use the phrase outside of the limited scope you listed.

                                                                                                                I don’t necessarily agree with DHH’s analysis that it’s a real problem, but it’s interesting to consider.

                                                                                                              2. 2

                                                                                                                I don’t see a problem with both being true. At the beginning you copy to learn from examples. The higher you go, the more you copy things that either save you time or come from areas you don’t deal with all the time. It doesn’t make programming not serious. It’s a relatively unique thing we’re able to do in our field. I’m a senior engineer and I copy things all the time. Some are actually more accessible through SO than otherwise (I’ll go back to the question about getting the current username in c# every few weeks for example - and it’s completely fine) It’s great we can do that and as long as you understand what you’re copying, I don’t care if you write the whole app that way - this will only get more common/legitimate now with copilot.

                                                                                                              3. 4

                                                                                                                I didn’t really have any difficulty in parsing out (what I believe to be) his point:

                                                                                                                • At some point in time the majority of vocational programming switched over to this weird “it’s okay to talk about how much you suck” culture…
                                                                                                                • …This change was probably an attempt to reduce gatekeeping and imposter syndrome
                                                                                                                • Everybody does indeed start out by sucking
                                                                                                                • …but people in this career need to attempt to reduce their amount of suckage…
                                                                                                                • …and it’s even okay to say “I accept that I will suck at X so that I can double-down on Y”…
                                                                                                                • …but it’s not okay to give up any pretense of improving or to normalize such a behavior (for whatever well-intentioned reason)
                                                                                                                • People who have succeeded in reducing their suckage need to stop acting like they still suck at the same level as a novice

                                                                                                                Other than the initial assertion of “hey, this is a widespread phenomena in our culture”–and poor organization on DHH’s part–this all seems like something any of us should be able to say “okay, yeah, I buy it”. Even if the original assertion isn’t true, the rest of this is still a laudable take.

                                                                                                                1. 5

                                                                                                                  The message I’m getting is “I alienated a huge swath of my company, they left, I went on right wing media to talk about how I’m actually not mad about how I drove a bunch of people to quit, and it’s also everyone else’s fault that we aren’t getting many qualified applicants.”

                                                                                                                2. 6

                                                                                                                  A message does not have meaning without a context. Assuming a context with an anonymous programmer author, the message has far less meaning than that which can be interpreted with the addition of this specific well-known author into the interpretive context. This message is simply a different message without knowledge of this well-known author who wrote it. There’s no use asking whether this message should actually be a different message. It’s not the situation at-hand.