This paper touches on but doesn’t mention one of the major hurdles to Annex K. It allows setting runtime constraint callbacks in the event of overflow. memset_s(buf, 20, 0, 100) may not just return an error, it may call some user provided function. It’s a lot of complication. And cheating by not doing that part is unsafe in unknown ways.


      By reading it from this point of view, this makes more sense. Thanks!


        Do you know this? Have you ever done architecture or city planning?

        I haven’t, so this is just an assumption, an attempt to understand why design patterns may have been appealing seeing that they don’t add the promised (or expected) value in practice.

        What even is simplicity? We all use it but don’t have a consensus, or even good definitions. Which is simpler: shared memory concurrency, or message passing concurrency? Shared memory is much, much simpler, requiring fewer primitives, fewer moving parts, fewer axioms, fewer abstractions. It also leads to much more globally complex and error-prone code.

        I agree, we don’t have good definitions and that sucks, because not having a set of rules to follow always feels bad. For me simpler at least means easier to understand. It is very hard to do hard measurements of whether something is easy to understand. However, it is not impossible to say whether one approach is easier to understand than another, in other words, if a refactor was valuable or not.

        I am afraid I don’t know of a better practical tactic to decide on the adequacy of a structure than just changing code and seeing if I made it easier to understand. Given that functional requirements are met, of course, and given all circumstances, conditions and consequences. I agree that this is not stated explicitly in the article.

        I think the example of choosing a concurrency model is a great one. Do we prefer global complexity and the potential for pitfalls over the complexity of a larger number of moving parts? I believe that acknowledging that there is no general answer to this question is better than believing that I should be able to solve this with a pre-defined pattern if only I would have studied pre-defined patterns enough.


          I second. I think the accusations of unfair moderating really cluster around the fact that, despite being the same person, these are separate events that we are discussing.

          I feel like the discussion about if this content is on-topic for lobsters is secondary to the fact that there are 3 different stories being collapsed incorrectly into one. If any one of those is off-topic, let the community decide. Let’s not muddy the issue by claiming RMS is a single topic in this case.


            The VM will stay in Rust. The compiler will be ported over to Inko, removing the need for Ruby.


              I’d like to call out Amazon in my personal experience (i know this can vary) as a good example - I reached out to one of their recruiters and was asked for my resume, and from then on was walked competently through the process - I started a position with them not long ago. I know it helps for them that they operate at a scale which lets them have recruiters in house.


                You’re proving @Hail_Spacecake’s point.

                What you just said can be logically reduced to “whenever I hear someone say x, I substitute that with some y that they didn’t actually say.”

                This is exactly the kind of straw-manning disingenuous argument style that we’ve all become accustomed to when engaging this specific flavour of political activist.


                  Externally visible changes: better error messages and some new optimizations. Internally there have been a lot of bugfixes and code cleanups, making it easier in the future to merge the new big features, like multicore (this does not mean that they are there yet, but things are moving at a good pace)


                    I used to host my own git repos, the hassle just isn’t worth it. If git hosting is in your region (for example, GitHub), I’d recommend taking advantage of it.


                      I don’t know of anything off-the-shelf to handle things like this, but the idea of doing it in a general way makes my sensors twinge with the “don’t create your own programming language” anti-pattern.

                      This means that my first thought would be to implement the server in a dynamic language, like Python or Ruby, and implement the question series as an external Gem or module that can be plugged in. This way, the logic about what answers exclude or include which other questions, or modify them or whatever, can be implemented in a real programming language, instead of guessing what you’ll need, and then re-doing it when you find you need more features.

                      That means question series plugins would basically just implement a “next_question” method that takes a hash/JSON blob of the answers so far, and returns either a question and set of choices, or an indication that the series is done. No concerns about request types or data storage or anything. Then the server module would handle the data storage, listening for requests, formatting data, and rendering the next questions.


                        They only call it class warfare when the poor people fight back.

                        That being said, this is a prime example of how universal health care would make the economy more prosperous and not less. How much money does Amazon spend on health care? How less mobile is our workforce because they’re beholden to their employer for their family’s health? How much inefficiency is there in dealing with countless different providers to figure out what’s covered? How many days of labor are lost because people eschew preventative care?


                          Finally, some recognition for my awesome hands. https://imgur.com/gallery/RInYKbA


                            I resent the idea that I and the programmers I employ are doing “the wrong kind of development.”

                            We all contribute to open-source projects too.

                            Bad take, sir. Bad take.


                              It’s interpreters all the way down. All compilation does is translate a program from one form to another.


                                I’d be the first to tell everyone that the recruiting world is packed with pushy used-car-salesman types who care about nothing but closing more deals. But I would also defend it a little by noticing that they seem to inject some much-needed energy into the recruiting process.

                                It’s kind of like - I’ve heard people say that it’s good to have a lawyer with you on many big negotiations, so that the lawyer can be the “designated jerk” while the primary reps for both sides act nice to each other. It lets them both say “Hey, the other side is a reasonable person, but their lawyer is a bit of a jerk”. I feel like it works the same in recruiting.

                                Both the candidates and the employers don’t like it when the other side seems too desperate to close a deal. It seems to suggest that the company is desperate to hire because they’re a lousy company with a bad rep and people quitting all the time, and to the company that the candidate is a terrible developer who can’t keep a job. An external recruiter, though, can push hard to get the hire done, and both the candidate and employer can tell themselves that their main counter-party is reasonable, and it’s just the recruiter being pushy because it’s a recruiter thing.

                                1. 7

                                  So I think we can agree that there is one design rule, or ‘pattern’ by analogy, that always holds:

                                  Make it simpler.

                                  “Make it simpler” ignores all the many, many practical factors that push code to be complex. What if the “simple” code is so slow people hate using your software? What if the “simple” code would be in a different language? What if there’s a difference between local and global simplicity? What if the simple code is much harder to test and deploy? What about the Law of Requisite Variety?

                                  In architecture, where the problems that buildings and city planning need to solve don’t change, a set of patterns can be expected to be distilled after some time and to remain more or less comprehensive. But the nature of code is very different. Once something is solved in code, it doesn’t has to be solved again. The analogy is completely inapplicable.

                                  Do you know this? Have you ever done architecture or city planning? I’ve been talking to a lot of cross-discipline programmers as part of a longform project, and they all agree we completely misunderstand this.

                                  I’m burnt out on “simplicity” essays. What even is simplicity? We all use it but don’t have a consensus, or even good definitions. Which is simpler: shared memory concurrency, or message passing concurrency? Shared memory is much, much simpler, requiring fewer primitives, fewer moving parts, fewer axioms, fewer abstractions. It also leads to much more globally complex and error-prone code.


                                    Disclaimer: I haven’t read all your links, but plan to.

                                    You said decentralization leads to unexpected bad stuff. How? What? Since your example was Bitcoin, I’d ask whether those unexpected bad things are not just because of people wanting to tinker with the money supply.

                                    Like, what unexpected badness cometh outta Mastodon?

                                    Regarding your China point – is it really a different can of worms? The political enemies of the USA being banned from the best VCS makes them unable to do dev stuff in the best way. Lame argument but describing something true. Don’t all the safe spaces related arguments about moderation and society apply equally between countries?

                                    I am not trying to make a partisan argument for or against what I detect as a flavor of ideology in your comments (opposed by another flavor, in others’ comments), but just curious.


                                      trans people are too pushy

                                      But that’s really not what @Hail_Spacecake is saying, is it? He points out that there are queer/trans activists who reduce opposition to the personal attack that one “don’t deserve to exist”, which if it is a “common” thing, would be a legitimate criticism. Other than that, I don’t see how what you say related to the discussion? If anything, you would want decentralised systems so that those who do actually say “X are too Y” don’t control you, or inhibit you in acting according to your intentions.


                                        I started using Hugo recently and I didnt realize how bad Jekyll is.

                                        Hugo has tags and pagination out of the box, no plugins needed.

                                        Jekyll (via GitHub Pages) has pagination, but no tags via the whitelisted plugins. Its the most upvoted issue. I feel like Jekyll was holding me back, and now I can build a proper site.


                                          I’m in favor of all of these ideas or something like them. I was also confused by the lack of story about the resignation on the front page. Thank you, @A-Za-z0-9, for helping me understand why. I did some quick and dirty statistics below, which suggests to me that there are other people on the site wishing to discuss topics like this. (Posting separately so data and conclusions can be evaluated separately.)