1.  

    Great article! Worth mentioning is that you can also do breakpoint() in Python nowadays, although it will give you the regular Python debugger by default instead of an iPython session. This is configurable however: https://www.andreagrandi.it/2018/10/16/using-ipdb-with-python-37-breakpoint/

    1.  

      Adding emoji based on whims is how you end up with things like this sticking around for four thousand years and counting. The Egyptians at least had the excuse that they didn’t know what computers were.

      Not sure what the problem is? Ancient Egyptians living thousands of years ago didn’t share your particular cultural taboos and sensitivities, which seems like an entirely valid “excuse” to me.

      1.  

        There is more than historical scripts being added. For example:

        Tangsa, a modern script used to write the Tangsa language, which is spoken in India and Myanmar

        There are a good number of other, still alive scripts that are yet to be added. There is no reason to burden the internet infrastructure with vector images, when all you need is a decision and a font update. If your application really cares, maybe the character data update as well.

        1.  

          I was going to suggest that gofmt‘s pattern rewriting would help here but it seems you can’t limit it to a type (although gofmt -r 'oldname -> Oldname' works if the fieldname is unique enough.) Then I was going to suggest gorename which can limit to struct fields but apparently hasn’t been updated to work with modules. Apparently gopls is the new hotness but testing that, despite the “it’ll rename throughout a package”, when I tested it, specifying main.go:9:9 Oldname only fixed it (correctly!) in main.go, not the other files in the main package.

          In summary, this is all a bit of a mess from the Go camp.

          1.  

            As I understand it, mariadb has been using deprecated APIs for a long time which are now finally being removed from openssl. They could’ve moved to non-deprecated APIs under openssl 1.1, which would make it (mostly?) forward compatible with openssl 3. That definitely deserves criticism, regardless of whether you’re in a “move fast and break things” mindset.

            And the “rush” I guess is simply wanting to be able to use a single version of openssl for the base system. They could’ve stuck with 1.1 for a while longer of course, but if nobody is putting pressure on upstream to update, they probably won’t.

            1.  

              I am curious about this definition:

              enum class byte : unsigned char {} ;
              

              Does it give you an ability to “access raw memory occupied by other objects” by virtue of inheriting from char, or is some compiler special casing required? If I make my own byte which inherits from char, will this opt me out of TBAA?

              1.  

                ‘Boring’ is I suspect the author’s wording for ‘I approve of this language based on my experiences’.

                Thanks for the feedback.

                I’m curious if you read the post, and if so, how you got that impression when I said things like “it feels much nicer to use an interesting language (like F#)”, “I still love F#”, etc.

                1.  

                  A similar feature exists in rust, where they call them “newtypes”. It’s really nice to have.

                  1.  

                    Sometimes it seems like we might want to dial back the “turn the world into Blade Runner” knob just a tad.

                    1.  

                      As an aside, the EU also funds a significant number of PETs. While not as egregious as the US, the EU is no enemy of mass surveillance, either.

                      The OP also has articles called “list of US hate crimes” and “list of US atrocities”, and he praises the Chinese for not using signal. I think being anti-US is as important to him as being pro-privacy.

                      1. 5

                        I 100% agree. I sometimes read “how to install X with Homebrew” guides, and I feel completely helpless when they ask me to pour a bottle, tap a keg and brew a cask or whatever. I usually prefer to actually understand the commands I’m running, but Homebrew reduces me to blindly copy/pasting into the terminal because I literally don’t even understand the words used by the commands.

                        It’s a bit similar with Python’s wheels and eggs, but at least pip uses normal verbs with weird nouns rather than punny themed verbs and nouns.

                        1.  

                          My only quibbles with python are the packaging story and that some of its code structure tends towards feeling a bit clunky as I go from small to medium size of projects. Aesthetically, some people don’t like LISP’s parens, I don’t like def __init__(self):

                          1.  

                            Rocket is impressive but it always feels a bit too heavyweight and opinionated to me. I tend to use warp, which isn’t perfect but fits better with how I like to structure web applications.

                            1.  

                              If there are cargo and crates, why not rockets and fairings? I lost count to the number of times I mis-typed “crate” and “create”.

                              I always wonder if whoever came up with the cargo/crate terminology in retrospect think this probably caused more unnecessary confusion (and mis-typing) than it’s worth and more traditional terminology, such as package instead of crate and something like rustp (for Rust package manager, by analogy with rustc) instead of cargo, would have been a better (if boring) way to do it?

                              1.  

                                I suspect “boring” is used to describe established languages whose strengths and weaknesses are well known. These are languages you don’t spend any “weirdness points” for picking.

                                1.  

                                  But you can’t even post another submission with the same URL (it gives you an error message).

                                  1.  

                                    They could have quit 10 or 15 years ago and the world would have been no worse off. Let the historical linguists hash things out in their own private-use blocks, and let people send little vector graphics to each other in a way that doesn’t require assigning them as part of an international standard and then burdening every goddamn computing device for the rest of eternity.

                                    1.  

                                      It’s a flag used to signal to the mods that this can be removed as a duplicate.

                                      Merging is for different URIs discussing a common hot topic. AFAIK you can’t merge 2 submissions with the exact same URL (which ‘already posted’ targets).

                                      1.  

                                        Sometimes late at night I look deeply into my own eyes in the mirror. And sometimes.. just sometimes, my pupils aren’t regular. O_o

                                        1.  

                                          Thanks! I actually didn’t know about that.