1. 1

    Python’s biggest problem for me has been having to ship around my requirements.txt everywhere. Fortunately it is so simple to write I bias to it everywhere.

    1. 13

      Some of those problems sound at least an order of magnitude harder than I’d expect in an interview unless it’s a specialized role and you were asked to prepare. Anyway, a positive bit of advice is that if you still want to do this, go try out interviewing.io. You’ll get concrete feedback on what they expect.

      By the way, one tiny piece of information about the world (offered with no judgment, b64 decode if you desire the advice, leave alone otherwise):

      VGhlIHdvcnN0IGFjY2VwdGFibGUgcmVzcG9uc2UgdG8gZmFjaW5nIGEgY2hhbGxlbmdlIHlvdSdyZSBub3QgZmFtaWxpYXIgd2l0aCBpcyAiT2gsIEkndmUgbmV2ZXIgd29ya2VkIG9uIHNvbWV0aGluZyBsaWtlIHRoYXQgYmVmb3JlLiBMZXQgbWUgZ2l2ZSBpdCBhIHNob3QiLiBUaGUgYmVzdCB1bmFjY2VwdGFibGUgcmVzcG9uc2UgaXMgIkkndmUgbmV2ZXIgd29ybGQgb24gc29tZXRoaW5nIGxpa2UgdGhhdCIu

      1. 6

        one tiny piece of information about the world (offered with no judgment, b64 decode if you desire the advice, leave alone otherwise)…

        what’s the best acceptable answer ?

        1. 7

          “The best solution I’ve come across when working on something similar…”, Solve the problem while displaying experience, skill and phenomenal personality. Extra points for making them laugh. You could tell them you don’t know and attempt a solution - that’s the safer route, or you could lie and pretend cough be brilliant, like the unicorns they’re expecting and solve it perfectly.

        2. 4

          I think your advice is spot on. I’ve heard that interviewers will often look for the way you approach a problem you’ve never seen before instead of your solution. You’re usually allowed to ask for help or explain the way you would attack the problem if you knew a specific piece of information that you’re currently forgetting. The interviewer probably doesn’t want to work with someone who says “I don’t have any experience in that” and lets their brain shut down right then and there.

          1. 1

            The issue I have is that in a lot of interviews that’s not stated up front. So now I’m stuck in this spot of, do I ask and say I don’t know, and be downgraded or ignored because I “didn’t know it”? Or will I be downgraded because I didn’t ask when they were expecting me to. State up front what you want from me. Don’t leave it ambiguous.

        1. 1

          Software Engineering is great engineering. No other field can cut as close to the bone as is necessary here.

          1. 2

            Good software engineering exists it’s just used to make sure cruise missiles hit their target. Why there is so much shitty software engineering is incredibly easy to answer; it’s because the industry is filled with libertarians who believe if the industry were regulated it would “curb innovation” and do no good except cut into their precious profits. That mentality is why the firm the DNC paid got away with making a cheap voting application without any public security oversight.

            1. 6

              I’m slowly coming around to the need for software engineer licensing. If the Iowa Democratic party had hired an unlicensed engineer to design some bleachers for a campaign rally, and those bleachers collapsed, the designer and the people who hired him would be liable for the resulting injuries. You can’t just hire some bozo off the street to design a structure and expect a court to accept that. Except in software, it is perfectly normal to hire some bozo off the street and hope for the best.

              1. 1

                In your system, would I need an engineering license to:

                • Use redstone circuitry in Minecraft?
                • Build a personal database to keep track of recipes I like to cook?
                • Build my own personal website?
                • Build a website for my own business?
                • Write an Excel spreadsheet with some macros in it, to use at my business?
                • Write a script that automatically checks me in for my flight at 24 hours before departure so I get a good boarding group?
                • Fix a relative’s computer?
                • Set up and configure a Pi-hole?
                • Set up and configure a home media server?

                etc., all of which are or could be construed to be some form of software and/or IT engineering, and likely would be so construed by some troublesome/nosy person if a licensing scheme were imposed.

                Meanwhile:

                Except in software, it is perfectly normal to hire some bozo off the street and hope for the best.

                I have been agitating for many years for better interviewing and hiring practices in our industry, and I am always rebutted by people who insist that their companies, and seemingly all companies, use rigorous high-quality interview processes which require demonstrations of relevant knowledge and skills and ensure that they “only hire the best”.

                Meanwhile, even if we could implement a theoretically ideal licensing scheme, it would mostly be about adherence to principles and practices which have been shown to produce reliable, functional software. But there are no such principles or practices. Everything from choice of tools to choice of design to choice of project styles is, at best, anecdotal and/or subjective. So a license to practice “software engineering” would be meaningless, since it would be an endorsement that someone is competent to perform a task for which we have no reliable measure of competence or performance.

                1. 1

                  What a strange straw man.

                  1. 2

                    It’s not a straw man. You’re proposing licensing of software engineers working on ‘critical infrastructure’.

                    Care to define that?

                    You could lump everything from work on home Raspberry Pi servers (which may become compromised, and form part of DDOS botnets targeting core infra) to Excel spreadsheets driving core LOB apps. One I helped migrate to .NET, back in 2010 or so, was responsible for detecting fuel leaks in underground fuel systems. Should I have been licensed to work on that, as well as my home Pi server? If one, why not the other? The scope for carnage is similar, at least in the aggregate.

                    Would your proposal require that contributors to key open source software like GPSD be licensed, too? If so, who do you propose administers that?

                2. 1

                  It really can help. Of course licensing doesn’t completely eliminate failure, but I don’t think anyone can contest it’s a step forward wherever it’s instituted.

                  1. 3

                    I absolutely will contest that.

                    There are numerous examples of licensing regimes being abused to shut down competition or even by governments themselves. Consider this infamous case; the guy in that case was advocating for changes to red-light timing and camera enforcement, and the state of Oregon tried to hit him with penalties for practicing engineering without a license (and, amusingly, he actually was an engineer, just not one specifically licensed by Oregon).

                    And any sort of requirement of licensing for “software engineering” would pretty much inevitably either A) have to be so broad you’d need professional licensing to make a personal website, or B) if it avoids that problem, so narrowly-construed that it wouldn’t do what you actually want it to do.

                    1. -1

                      Do you have a link which isn’t paywalled? I cannot read what you posted unless I decide I want to help pay for Jeff Bezos’ personal propaganda outlet.

                      Anyways, without being able to actually read the article, it really seems like a ridiculous strawman to say that because the local Oregonian government did something stupid there shouldn’t be any procedure with which to verify that the people who inspect bridges and traffic systems to make sure they don’t kill you and your loved ones actually know what they’re doing and are trustworthy. As I’ve already said above, I consider it not a perfect solution, but a step forward, with no licensure and subsequently no greater developed alternative to licensure present being a step back. This is just as true as your silly argument about licensure requirements for software engineering, when there are clearly many pre-existing standards of knowledge for areas such as security, reliability, and privacy in software development, but because requirements for licensure may not be perfect we should just give up and not even attempt making a step forward.

                      1. 1

                        I cannot read what you posted unless I decide I want to help pay for Jeff Bezos’ personal propaganda outlet.

                        Since I do not know which news outlets, or even which search engines, you might find politically acceptable or unpalatable, I will simply give you a search query – the name “Mats Järlström” – and allow you to perform a search on your preferred platform, for results on sites you feel comfortable reading.

                        it really seems like a ridiculous strawman to say that because the local Oregonian government did something stupid there shouldn’t be any procedure with which to verify that the people who inspect bridges and traffic systems to make sure they don’t kill you and your loved ones actually know what they’re doing and are trustworthy.

                        Despite your repeated use of the word “strawman” to describe people in this thread, I note that what you’ve said here does not characterize what I said in the comment you were replying to. So while it may, charitably speaking, be a counterargument to something someone said somewhere, it does not engage with what I said, and as such I am unable to productively respond further.

                        1. 2

                          Despite your repeated use of the word “strawman” to describe people

                          “People” is interesting wording to use here considering I’ve only reacted to your posts with this phrase. You directly argued against “licensing regimes” without proposing anything at all except getting upset that the government is doing things you don’t like, what do you think that looks like besides “we should not have a system to verify people who give final judgement on critical infrastructure are trustworthy”?

                        2. 1
                      2. 1

                        but I don’t think anyone can contest it’s a step forward wherever it’s instituted

                        Yes they can, and do. From https://spectator.org/licensing-is-a-racket/:

                        It will always be easy for lawmakers to join in combination with business cartels so long as the costs are diffuse, and borne by customers and future competitors. The cost is measured in lost opportunity, which doesn’t get a vote. The scale of those lost opportunities, however, is enormous — some 2.85 million jobs a year, according to this report.

                        Here in Victoria, the electrician licensing system was recently abused to shut down the “occupier’s license”, that allowed home owners to be certified to perform minor wiring changes in their own houses, after studying and taking an exam.

                        1. 1

                          I was personally talking/thinking about engineering licensure, not twirling copper wires together in a good enough way that you don’t get electrocuted or burn a house down (for which obviously there should be licensure). In any case, an anecdote is an anecdote is an anecdote. And It’d be ridiculous to point at an anecdote like that and say “there shouldn’t be licensure to make sure the guy twirling your copper wires together is smart enough so that he doesn’t endanger himself, kill you, and destroy everything you own”

                          1. 1

                            Perhaps I wasn’t clear.

                            You said: “I don’t think anyone can contest it’s a step forward wherever it’s instituted”.

                            I provided a) an example of someone contesting it, and b) an example from my own personal experience where a licensing system had been abused to shut down the licensure option for home-owners. That is, a licensing system had been abused as a form of protectionism favouring licensed electricians.

                    2. 4

                      This comment reminds me of the fact that time drift introduced because Patriot missile systems run on 24-bit floating point meant that they let a Scud through during Gulf War I that killed 28 folks.

                      1. 2

                        Christ. Do you have a link to a good writeup?

                          1. 2

                            Good succinct technical report on it, thanks.

                      2. 4

                        We have an industry on track to double the number of programmers in the next 5 years (a growth rate which has been pretty consistent for 50 years). Given that sustained rate of growth, it is a mathematical fact that 75% of programmers have been doing it fewer than 10 years.

                        The resultant training gap is huge - the vast majority of developers have near-zero exposure to the tools that would give them a fighting chance of doing a good job.

                        Even if teaching those tools were prioritized highly, there simply aren’t enough people familiar with them to do the teaching, and new entrants are not learning them.

                        Regulation would do many good things for the industry. Getting rid of shitty software is not even close to being one of them.

                        1. 2

                          Yeah, it’s really sad how few standardized paths there are for mentorship. The development of junior programmers out of college (many of which barely know how to use Git) is completely at the mercy of the firms that hire them, which can in some lucky cases land a developer in the presence of someone truly interested in helping them develop and grow, but it’s absolutely not the common one.

                        2. 3

                          About that good engineering that goes into cruise missiles:

                          https://groups.google.com/forum/message/raw?msg=comp.lang.ada/E9bNCvDQ12k/1tezW24ZxdAJ

                          1. 3

                            I would like to point out that leaking memory where it doesn’t matter != bad engineering. Good engineering involves navigating the problem space and finding the solution through that space which reliably arrives at the correct destination. Good engineering requires funding befitting the complexity of that problem space, and military contracting is exceedingly well funded.

                            1. 2

                              This was mostly tongue-in-cheek, I like the story but do actually think it’s a memorable example of pragmatic engineering. I think it does also highlight that there are cost/benefit trade-offs to be found even in places we think of as having strict requirements though.

                              1. 2

                                And if you’re being brutally pragmatic: how many soldiers’ lives would be saved by getting it into production sooner, rather than later having fixed the drift?

                          2. 2

                            Except that the “Libertarians” in this case were paid and managed by the DNC. Trying to assign culpability to people based on their political philosophy is shitty trolling at best, and in this case also incorrect.

                            1. 6

                              The DNC doesn’t run the Iowa caucus and it didn’t comission the app. The Iowa Democratic party does.

                              1. 2

                                Sorry, I thought there was a hierarchy there that didn’t exist. (Pathetic excuse: I’m not American). But my point still stands, that criticising “Libertarian” developers for an underfunded, rushed project funded by Democrats is wrong in several ways.

                                1. 4

                                  The claim wasn’t that the developers of the app were libertarians.

                                  The claim was that developers, by and large fight against any attempt to regulate software development, resulting in a situation where anyone can take on jobs well beyond their ability to deliver.

                                  1. 1

                                    Okay, that’s a reasonable interpretation.

                                    But I’d argue that it’s still wrong to characterise the resistance to regulation as Libertarian[1]; the vast majority of developers aren’t Libertarian, and neither are the majority of lobbyists or the politicians they’re lobbying.

                                    I think the majority of developers simply (and wisely) don’t want their industry regulated more than it already is, and the majority of lobbyists are just crooked opportunistic bastards (ohai TurboTax).

                                    Edited to add: [1] In the sense that most people calling for progressive taxation aren’t Marxists.

                              2. 2

                                You’re really splitting hairs about names for different free market ideologies when the firm paid was very obviously a glorified voting Startup which wouldn’t exist were the industry better managed.

                                1. 1

                                  I was irritated by what I saw as an attempt to blame a problem that really boils down to shitty leadership[1] on a political philosophy. In particular, one to which I (largely) subscribe ;)

                                  Can you clarify what you mean by ‘better managed’?

                                  I mean, yes, I agree that an awful lot of startups exist solely because of a) malinvestment by VCs, b) bubbles, c) attempts to basically defraud investors by encouraging them to sink money into snake oil.

                                  Who do you think should manage the software industry, and how?

                                  [1] You can’t con an honest man; you can’t realistically expect to get two good mobile apps for the time and money the Democrats spent.

                                  1. 2

                                    I understood why you were irritated, but you cannot deny the fact that libertarian ideology is categorically opposed to governmental intrusion into markets, and you cannot pretend that the prevailing ideologies that software developers follow (the most popular from my American perspective being varying forms of free-market liberalism, which ime is the prevailing ideology of the DNC and also the umbrella under which libertarianism falls) don’t have an impact on what laws are lobbied for and blessed by us to regulate the development of software and how people may be held liable for mismanagement.

                                    And I don’t think anyone would argue that cases such as these are problems of mismanagement, I believe we’re both in agreement on this, just as @pnathan wrote above,

                                    if you hire 4 people (3 super junior) and underpay them, with an accelerated budget, you should not expect to succeed. this is known. we the industry are not bad at this. we are not paid to do it right, and most of us really care about paying the rent.

                                    I believe the far more valuable question to ask is not only why this happens (your answers being bad investment, bubbles, fraud), but why it’s been completely unmitigated. The prevailing solution over the last several decades has already been the liberal answer, which is to allow the markets to self-regulate themselves so that these issues may self-resolve, albeit at the cost of peoples livelihoods being thrown into precarity and the public building distrust and contempt for the software industry as a whole. In my honest opinion I think that this “solution” sucks.

                                    In terms of what I would desire but we’re maybe at least a decade out from being a realistic political possibility? I believe that for the software the public uses at large, there should be legislature allocating funding for international organizations of software engineers to work on blessed open source projects, and legally obligating computing platforms to provide support to run that software, such as by relaxing DRM or providing the necessary code for their platform or device’s firmware to that organization. For software already provided by private firms to run for the public (including consumer operating systems, search engines, social networks, and of course, caucus voting applications), an international licensing system should be introduced by an organized body of software engineers to push for blessing by state legislation, with a protocol not too different from pre-existing engineering licensure, such that the licensed engineers of a project performing code reviews and such must approve released and provisioned versions of their projects, taking on liability for those projects saying that they do not violate security, privacy, and reliability standards blessed by the body which builds the protocol for licensure, and effected into into law by local legislation. This body would also ideally provide mentorship programs such that junior engineers may be encouraged into more responsible practices and better understanding of their toolkit.

                                    Honestly, there’s an unlimited number of possible schemes and the above may be flawed in little ways here and there, and may require a long term of lobbying and organizing to achieve (notwithstanding sabotage by corporations who may not find such a plan not to be in their interest), but I’d honestly be happy with literally any sort of step forward in building a framework of rules and liabilities for software development that meets a decent enough criteria.

                              3. 1

                                it’s because the industry is filled with libertarians who believe if the industry were regulated it would “curb innovation” and do no good except cut into their precious profits.

                                This seems, well, wrong. Do you have any more information to support this claim?

                              1. 10

                                Interesting. The chain of reasoning is that managing infrastructure requires good infrastructure tooling and that most good tooling is internal, and therefore if you don’t have internal tooling you’re going to have a hard time managing infrastructure.

                                That’s a big company mindset. You can just not manage infrastructure if you’re a startup. Current startup wisdom is that you focus on what differentiates you and buy the rest because time and agility are crucial.

                                1. 1

                                  Recording my screen as I write a program. Then reviewing the footage and seeing how I could have written the program faster.

                                  Is there software that allows you to live-stream programming but blurs out API-key-shaped stuff?

                                  1. 3

                                    There’s a VS Code plugin called Cloak that does this. I haven’t used it though.

                                    1. 1

                                      Note that there’s no need to stream the video for this exercise.

                                      That said, you could write a little script for your editor or terminal, I suppose. Probably easier to just manually pause/unpause the stream, tho.

                                      1. 2

                                        Right. That was more a thought inspired by the article than a comment on the article itself.

                                        The problem is, of course, that I might accidentally reveal keys.

                                        1. 2

                                          You can make OBS capture only a specific window. I choose a small Xephyr (i.e. nested X session) window so I know exactly what people will see and what they won’t.

                                          I have seen people with special plugins which blocks/blurs windows except for ones which are whitelisted.

                                          Other people have hotkeys which swap the stream to a static image.

                                    1. 24

                                      They’re ordered but considered equal with different orders, unlike an OrderedDict which is an interesting property.

                                      1. 15

                                        It would be crazy not to. Adding guaranteed ordering is purely adding a property (backwards compatible). But changing equality would be removing a property, which is backwards breaking. The migration path would be obnoxious as hell. Glad they didn’t.

                                        1. 3

                                          Indeed. It is sensible. The first question I asked myself after seeing this headline was “Why OrderedDict anymore?” and it turns out this was a thing I instantly discovered. Of course the docs for OrderedDict do include more than that as a difference:

                                          • The regular dict was designed to be very good at mapping operations. Tracking insertion order was secondary.
                                          • The OrderedDict was designed to be good at reordering operations. Space efficiency, iteration speed, and the performance of update operations were secondary.
                                          • Algorithmically, OrderedDict can handle frequent reordering operations better than dict. This makes it suitable for tracking recent accesses (for example in an LRU cache).
                                          • The equality operation for OrderedDict checks for matching order.
                                          • The popitem() method of OrderedDict has a different signature. It accepts an optional argument to specify which item is popped.
                                          • OrderedDict has a move_to_end() method to efficiently reposition an element to an endpoint.
                                        2. 1

                                          So, A == B implies f(A) == f(B) goes out of the window for one of the fundamental data structures just like that, then.

                                        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. 2

                                                        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. 1

                                                            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. 4

                                                                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. 22

                                                      It doesn’t seem like there’s any need for the concept of “risk premium” to explain that labor market prices are influenced by the presence of high-paying companies. If there are high bidders for something, prices will naturally go up.

                                                      1. 6

                                                        One could draw a reasonable analogy to the Baumol effect. i.e. so long as there are sufficiently large Googles and Apples who can extract a sufficiently large multiple of employee compensation as productive value, employee compensation will rise at other firms that see no increased productivity. All consistent with what you’re talking about, but just interesting to see analogously.

                                                        1. 1

                                                          It’s surprising to me that the Baumol effect was seen as surprising. If you have a simple model of companies bidding for employees, of course companies paying more would raise the prices. It would be weird to believe the opposite - that wages track productivity in a particular firm. Why limit it to just one firm when, clearly, all companies are bidding for all workers? This cross-sector allocation of both workers and capital seem like pretty standard economics to me.

                                                        2. 2

                                                          The more interesting thing about FAANG is how they were simultaneously bidding for high pay and fixing labor prices at one point.

                                                          1. 3

                                                            That was AANG like the Airbender, perhaps. Facebook famously decided not to play. Though if I recall, it may not even have been that. Apple/Google/Intel I thought.

                                                            1. 1

                                                              Thanks for the correction.

                                                        1. 3

                                                          That looks like the lane-departure warning symbol and the lane-assist on my Subaru Forester. I keep that on all the time and it’s really good at occasionally beeping me a warning (sometimes false positives) and usually just bumping me back into a lane. Honestly quite like the feature. I think it does help train compliance.

                                                          As a note about the reaction the author got from his friends.

                                                          Interestingly, though, having driven on CA-1, it’s clear that most drivers do not drive at a velocity necessary to always keep the vehicle entirely on their side of the road. This is a plain observation you can replicate by counting the number of cars you see clipping the lane boundary. Drive from SF to LA mostly on CA-1 and you will probably achieve 90%+ of each car you see clipping the boundary at least once (assuming you don’t just immediately overtake everyone so they don’t have time to show you). You’ll observe a similar effect with watching for people rolling stop-signs in SF.

                                                          However, on every CA-related subreddit on Reddit, it would appear that most people claim to be safe drivers who never violate road rules. So either:

                                                          1. There is a hardcore but tiny cadre of strong rule-followers in California who never err who are strongly over-represented on the Internet

                                                          2. These people aren’t being honest with themselves or us - perhaps intentionally, perhaps not.

                                                          It is interesting to also note that on every thread on Reddit about a driver making an error, you’ll see loads of people talk about how California drivers are terrible and rarely follow rules but on every thread about a cyclist making an error, you’ll see loads of people talk about how cyclists don’t follow rules unlike drivers, who mostly follow rules. Essentially, I wouldn’t trust the information from that direction. I suspect the sensors or storage are faulty and reporting incorrect historic data.

                                                          1. 1

                                                            You will ensure that all the binary versions of your tools report a revision/version only to find that either:

                                                            • One of your dependencies transitively is pointed at a mobile ref (master, or some branch) and reports that instead of the git rev-parsed version

                                                            • The ref in production doesn’t exist anywhere in the source tree

                                                            1. 4

                                                              I confess to always putting the following in every run.sh bash script. Despite the obvious simplification available, it’s always in there as-is.

                                                              # From https://stackoverflow.com/a/246128/3858681
                                                              DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
                                                              cd "${DIR}"
                                                              

                                                              From this StackOverflow answer

                                                              1. 5

                                                                BTW this reminded me that I added readlink to Oil specifically to reduce this boilerplate. But I honestly forgot about it until now!

                                                                https://github.com/oilshell/oil/issues/96

                                                                The shorter version with readlink is:

                                                                DIR=$(dirname $(readlink -f $0))
                                                                cd "$DIR"
                                                                

                                                                But readlink -f isn’t on OS X, which is the reason for all the cd / BASH_SOURCE stuff. And I used to use that myself too.

                                                                So maybe Oil needs a shortcut for $(dirname $(readlink -f $0)). It already has all the logic for it.

                                                                Filed issue here: https://github.com/oilshell/oil/issues/587

                                                                1. 1

                                                                  GNU coreutils also have realpath which I use on my Mac all the time when I’m at the command-line and I need to get an absolute path for something else (like a COPY table FROM into DataGrip for my local postgresql).

                                                                  ~ ➜ /tmp/example/of/cows/script.sh
                                                                  /private/tmp/example/of/cows
                                                                  ~ ➜ cd /tmp/example
                                                                  example ➜ ./of/cows/script.sh
                                                                  /private/tmp/example/of/cows
                                                                  example ➜ cat ./of/cows/script.sh
                                                                  #!/usr/bin/env bash
                                                                  
                                                                  dirname $(realpath $0)
                                                                  

                                                                  It is a bit overweight for this because it canonicalizes and all that which you really don’t need to get to the directory.

                                                                  1. 2

                                                                    If you want to handle pathological cases like commands with spaces in the name or commands named --help you’ll need something more quotes and --, something like DIR="$(dirname "$(realpath -- "$0")")".

                                                                    Example (indentation added for readability): https://paste.stevelosh.com/5517e2b981a88dee24b7ae99dfca0c3974c38d15

                                                                    1. 2

                                                                      If you know you always have coreutils, then you can simplify all the BASH_SOURCE stuff to just

                                                                      DIR=$(dirname $(readlink -f $0))

                                                                      It does the same thing as the longer incantation.

                                                                      I’m not sure if realpath is the same as readlink -f. If it is, then it can be even simpler with $(dirname $(realpath $0)). But I forget.

                                                                      I got used to use the cd trick` because I didn’t have coreutils on OS X.


                                                                      edit: or maybe it’s DIR=$(dirname $(readlink -f ${BASH_SOURCE[0]})). All this stuff is gross and hard to remember :)

                                                                      1. 2

                                                                        Note that readlink isn’t POSIX, and I believe that -f isn’t supported on all platforms with readlink either (I forgot which, I just remember running in to problems or having them reported and avoiding it since).

                                                                        1. 1

                                                                          It’s like you said, I’m on a Mac (which doesn’t have -f) and deploy to Linux on Docker so I just keep it the way it works everywhere out of mental simplicity. It is true that I install coreutils everywhere though like some sort of slob throwing his clothes around the bedroom but the seduction of just copying standard incantation guaranteed to work everywhere (since I use bash everywhere) is just overpowering.

                                                                      2. 2

                                                                        realpath is also on BSD, but it’s not on all Linux systems. I believe it’s missing by default on either Ubuntu, CentOS, or both (you can still install it, of course, and some Linux systems do have it by default).

                                                                  1. 2

                                                                    So is there really no higher level semantic markup that compiles to TeX? That seems like the obvious solution here.

                                                                    You can reuse the pretty-printing while also giving other tools a chance.

                                                                    1. 3

                                                                      Racket’s Scribble documentation system can be used in this way. Scribble can compile to TeX or HTML (and generally it’s possible to add other backends). The article is primarily about math notation, which Scribble doesn’t really do well (at least not out of the box). But Scribble does understand the structure of Racket code, and automatically generates hyperlinks in code samples. It is fully programmable (with a sane programming language, unlike LaTeX), and you can do things like literate programming with it. Someone motivated could definitely write a module that lets you write math in a reasonable manner that can be manipulated in a structured way (including compiled or interpreted) and also typeset by generating the appropriate TeX.

                                                                      1. 1

                                                                        the link seems to point to this lobste.rs thread, what Scribble article did you mean to reference? thx

                                                                        1. 3

                                                                          Huh, I must have messed up my copy/paste without noticing. I meant to reference the scribble docs: https://docs.racket-lang.org/scribble/index.html

                                                                      2. 1

                                                                        Pandoc allows you to convert other things to TeX but I haven’t given it a shot on anything really.

                                                                        1. 1

                                                                          Pandoc works well. The only slight friction is that if you need to embed custom LaTeX in the document then there’s no particularly nice way that I’ve found of still having the document produce good HTML (and vice-versa if you need to embed custom HTML for the HTML view).

                                                                        1. 0

                                                                          I come from the Windows world (where IIS is the only web server that matters) so the idea of having to use a (reverse) proxy to (easely) support HTTPS is ludicrous to me.

                                                                          1. 4

                                                                            IIS fills the same place as nginx in this design.

                                                                            1. 2

                                                                              You don’t have to, but it is convenient.

                                                                              1. 2

                                                                                It’s really easy. Here’s a trivial nginx conf to enable that:

                                                                                server {
                                                                                        server_name api.myhost.com;
                                                                                        listen 80;
                                                                                
                                                                                        location / {
                                                                                                include proxy_params;
                                                                                                proxy_pass http://localhost:5000/;
                                                                                        }
                                                                                
                                                                                       # Certbot will put in SSL for you
                                                                                }
                                                                                

                                                                                And then you can easily get SNI-based multiple hosts on the same ‘node’ if you’d like. This lets you easily handle SSL stuff and still have whatever web-server you want bound to the local host:port to actually do the action. You can also do all the fun URL rewrite stuff up there if you’d like.

                                                                              1. 12

                                                                                For me it’s:

                                                                                • Simple to use dependency system

                                                                                • Modern language features

                                                                                • Cool ecosystem of libraries

                                                                                • Easy to use type system

                                                                                The memory stuff is fine since it helps not make mistakes but it’s not the big selling point for me.

                                                                                1. 24

                                                                                  The way I remember it back in the day, open source was a flat community — if you used an open source library, you were working with everyone else who was using it. There was often a “core team” or “committers” who did some gatekeeping, but they were respected by everyone else for volunteering that effort, and it might even be a rotating position so the effort was shared amongst the users. Users were expected to understand and contribute to the code.

                                                                                  Maybe it’s just part of the ongoing movement of the whole industry where “programming” increasingly means “wiring together libraries I don’t understand”, but the modern attitude toward open source seems to be it’s a magical endless supply of code that is assumed to work, even though there are no mechanisms to ensure that it does work except for popularity.

                                                                                  And rather than maintenance being a shared burden, maintainers now seem to be regarded by some as “auteurs” with absolute autonomy. People are arguing there’s no social contract at all. That isn’t how it was supposed to work.

                                                                                  1. 21

                                                                                    It’s because back in the day open source wasn’t Open Source, it was Free Software. Free Software licensing kinda made sure that the users would give back, and scared away a lot of Corporate Consumers. Open Source adopted the ‘Business-Friendly’ philosophy of encouraging Corporate Consumers to use without having to give back. IMHO this is one of the repercussions of that approach–getting users who treat your software purely as a consumer relationship, as if they paid for it simply by using it, and have the right to demand support.

                                                                                    1. 7

                                                                                      Corporate Consumers not giving back is a myth. Majority of open source we use exists because of donations or direct involvement of corporations. Yes, corporations have different business incentives than non-corporate users and at times this hurts us. But if we’re not paying, we’re not entitled to anything - doesn’t matter if stuff is being worked on by volunteers or paid people.

                                                                                      I may hate on systemd all I want but other people do depend on it and it wouldn’t exist w/o Red Hat. I may not use virtualization but a lot of virt code in Linux was developed by Microsoft. I don’t own anything Apple but if it weren’t for them (and their business incentive) LVVM wouldn’t be where it is today.

                                                                                      It’s easy to say that we’d have comparable things without corporate involvement. We can’t verify this alternate reality but my experience indicates that things would implode pretty fast. Large projects without an oversight start diverging, become stale or simply vanish. There are very few counter examples to that and they all seem to revolve around something that’s got enough mass to build sustainable gravity. But the vast majority of things we need aren’t Linux kernel.

                                                                                      1. 1

                                                                                        Of course corporations sponsor projects that benefit them, but there is a long tail of projects which don’t meet their criteria and get no sponsorship, yet their maintainers still get pressured to act like they’re professional support. You’ll see plenty of issues opened by people who are clearly using the project in their business, of course with no sign of support.

                                                                                      2. 6

                                                                                        There was plenty of open source that wasn’t Free Software. Open source originated with things like the DECUS user group and SHARE for IBM owners. (And of course the BSD and MIT licenses originate from further examples.) But I agree — warping open source into a pseudo-consumer relationship where the consumers not only contribute no cash, but contribute nothing at all, is what has gone wrong with the system.

                                                                                        1. 1

                                                                                          There was plenty of open source that wasn’t Free Software

                                                                                          What do you mean? “Open source” and “free software” refer to the same software, just like “freedom fighter” and “rebel insurgent” refer to the same people. It’s just a matter if you want to emphasise the business-friendly side of it or the freedom-side of the same software. OSI coined “open source” to be a synonym for free software.

                                                                                          Although if you go back to the days of DECUS, using software was the same thing as writing software. There was no need to distinguish software as free or open, because that was just the way all software was. Back in the 1960s, people weren’t even sure you could copyright software any more than you could copyright mathematics.

                                                                                          Since you bring up BSD and MIT licenses, those are free software too. A lot of people think, because the FSF wrote the GPL, that “free software” means copyleft or something. It does not. Even OpenBSD, despite how much they disagree with the FSF, call themselves free software:

                                                                                          https://www.openbsd.org/lyrics.html#40

                                                                                      3. 12

                                                                                        I think Github has really changed the way we view collaborative software, and not for the better.

                                                                                        To begin with, every repo is nested under an account, usually an individual. Sourceforge and most other forges took a different approach: the repo is the central object, and user accounts can be added or removed from the repo. Github’s makes a difference: now an individual owns the repo. It’s a bit less… communal?

                                                                                        Then there’s the PR workflow that Github popularised. One person submits a change and everyone else comments on that change… but it’s up to the original submitter to make any amends on the PR. Everyone else just comments on the PR.

                                                                                        This also seems a little less communal. When it used to be more common to get patches by email, the person receiving the patches would say, “thanks… oh, you made a typo here. No problem, I fixed the patch as I was applying it.” This is now unusual. Instead we tell them, during code review, you made a typo… and we have to wait for the original submitter to make the change. It’s also less communal. Now every change is owned by an individual instead of being owned by everyone.

                                                                                        The result is that now there’s more focus and more pressure on individuals. This used to be more distributed amongst a core group, but now instead we’re concentrating the stress on individuals, who are getting tired and flaming out.

                                                                                        1. 2

                                                                                          GitHub does support organizations with multiple admins — nevertheless, the default is an individual, and it seems like only the most prominent repos get upgraded to an organization, so yeah, I totally see what you’re saying. If the natural expectation was to create an organization as soon as you publish a library, maybe that would be a little pressure on the norms.

                                                                                          1. 2

                                                                                            In the bottom right of your PR view, there is a checkbox that says “Allow edits from maintainers”. I think that’s checked by default but I always ensure it’s checked. Then they can push to that branch of yours.

                                                                                            1. 1

                                                                                              That is besides the point as that has been added only ~3 years ago. Long after the PR workflow become dominant.

                                                                                              1. 4

                                                                                                Not intending to argue. Informing of a feature they may not know about.

                                                                                            2. 1

                                                                                              but it’s up to the original submitter to make any amends on the PR. Everyone else just comments on the PR.

                                                                                              GH now lets you comment with diffs that the PR author can immediately inject into their PR.

                                                                                          1. 7

                                                                                            Hmm, thanks for the news. I just started on a project that uses actix-web and I’ll stop. Maybe I’ll try the “Write Rust w/o a Framework” approach and see how fast it is to develop. But at this point, just using Go is beginning to sound appealing.

                                                                                            Honestly, all this stuff makes me think that the choices in favour of simplicity that Go and Java made are an accidental beneficial mutation. All the people who obsess about language features go somewhere else. And they’ll shun your community, but that’s a good thing.

                                                                                            So while the Scala community has starving packs of functional fanatics who occasionally feed on a program somewhere that is too imperative and the Rust community has roving memory cultists who will hack you to death with an unsafe machete because you “do not respect semver, you do not respect soundness”, Go and Java just don’t have any features to cluster around so they’re just used by people who don’t form an obsessive relationship with a software tool.

                                                                                            I’m not “part of the community” in any way. I just want to write some software for myself.

                                                                                            1. 3

                                                                                              so they’re just used by people who don’t form an obsessive relationship with a software tool.

                                                                                              gofmt filters those out pretty quickly yeah :)

                                                                                            1. 18

                                                                                              An acompanying blog post[1] from Terry Cavanagh, the game’s creator, contains some additional information on the source release as well as a bit of a code-post-mortem. I think it’s worth noting that the VVVVVV code is pretty horrendous (Cavanagh even admits so), yet the VVVVVV product is a best selling and well loved indie title. It shows that code quality is not equivalent to product quality.

                                                                                              [1]: http://distractionware.com/blog/2020/01/vvvvvv-is-now-open-source/

                                                                                              1. 5

                                                                                                code quality is not equivalent to product quality

                                                                                                … for one indie game. True enough, but I would be cautious about extrapolating from this.

                                                                                                1. 3

                                                                                                  Games are somewhat different to most other software in that they are art, not tools. A quirk or oddity is far more tolerable in a piece of art than in a tool that one potentially has to use for hours every day.

                                                                                                  1. 2

                                                                                                    Has there ever been a widely-used consumer product that has had great code quality? Like xmonad is cool but it isn’t exactly widely used.

                                                                                                    1. 2

                                                                                                      I don’t know of you consider database systems widely used, but SQLite is kind of well-known for their extremely extensive testing, and SQLite is very widely used, but most likely not that known to the ordinary consumer of the products that it’s used in.

                                                                                                      1. 2

                                                                                                        Infrastructure typically requires a higher baseline level of quality versus user facing code. Conversely, it is one step removed from revenue, thus it tends to be under appreciated and under funded relative to its importance.

                                                                                                        Choose your poison. The amount of value generated by SQLite is likely in the billions, thanks in no small part to the quality of engineering that went into it.

                                                                                                    2. 1

                                                                                                      Agreed. I might even say that poor code quality is correlated with high-quality games, but that doesn’t mean the relationship is causative. Many brilliant video games are made by creatives who don’t care so much for developing their programming skill. That doesn’t mean that high-quality, maintainable code is a bad idea.

                                                                                                      1. 1

                                                                                                        There was some other obscure indie title called “Minecraft” that was supposed to have very terrible code. Microsoft bought it for more than 2 billion dollars.

                                                                                                        It might happen more than you think with video games, as opposed to other kinds of software.

                                                                                                      2. 4

                                                                                                        It shows that code quality is not equivalent to product quality.

                                                                                                        Games are different from many other pieces of software in that you can create it once, and then never (or rarely) have to update it, especially for smaller games. A lot of the problems with “poor quality code” is that it becomes hard to update code, not that the original code doesn’t work.

                                                                                                        Quoting from the article:

                                                                                                        Looking back through it myself all these years later, I find it really funny how much of it is basically just the same parts copy and pasted over and over, with the values changed. This basically makes it impossible to read and maintain ten years later, but back when I was in the thick of it, it made it really fast to iterate and add new things

                                                                                                        1. 1

                                                                                                          Yeah, the most succinct summary I’ve heard was “VVVVVV’s code can afford to be bad because it was made in 7 months with not much plans for large scale post-launch support”

                                                                                                        1. 2

                                                                                                          This solves a common issue I have on work machines, of deeply nested files and it being easy to lose context about file moves. The only thing I’m missing, is a way to drop the file path, relative to my current directory, of a file I select in broot. This may exist already, I just haven’t dug deep enough to find it yet.

                                                                                                          1. 2

                                                                                                            Do you mean something like z?

                                                                                                            1. 1

                                                                                                              Similar yes, but combining the other capabilities of broot would be nice to utilize a single utility. Also, unlike z most of the time I don’t need to jump to the location of the file, but I need to do $something with it.

                                                                                                            2. 1

                                                                                                              What do you mean “drop the file path” ?

                                                                                                              1. 2

                                                                                                                Once I select (or focus) a file in broot and exit, it’d be nice if my current command line was populated with the relative path to the file I selected. For example

                                                                                                                $ pwd
                                                                                                                /home/kevin
                                                                                                                $ br
                                                                                                                  [ selects file in broot with absolute path of /home/kevin/foo/bar/baz.txt ]
                                                                                                                $ foo/bar/baz.txt
                                                                                                                
                                                                                                                1. 2

                                                                                                                  There’s a verb, :pp which outputs the absolute path. Just like with all verbs, you can define a shorcut (for example ctrl-p).

                                                                                                                  Does that solve your problem?

                                                                                                                  more on verbs: https://dystroy.org/broot/documentation/configuration/#verbs-shortcuts-and-keys

                                                                                                                  1. 1

                                                                                                                    I can make that work! Thanks! In a perfect world it’d place that path on the command line rather than just printing to stdout, but with something like xargs I can still work with this. Thanks for your work on broot!

                                                                                                                    1. 3

                                                                                                                      If you’re on zsh you can pop the path in with zle.

                                                                                                                      1. 2

                                                                                                                        I am. This is exactly what I was looking for, thanks!

                                                                                                                    2. 1

                                                                                                                      He’s asking for a way to get at just the relative path. In the example given, just foo/bar/baz.txt, and not the full /home/kevin/foo/bar/baz.txt.

                                                                                                                      1. 2

                                                                                                                        I could very easily add a verb for that, just like today’s :print_path, a :print_relative_path.

                                                                                                                        Please kbknapp post an issue or answer here if that’s what you want.