Threads for handleggur

    1. 2

      I realize this is not the point of the article, but the Python examples could perhaps be updated to reflect that Python supports static duck typing which lets you express something like impl Length, even if it’s not enforced at run-time.

      https://peps.python.org/pep-0544/

      (Also, len(foo), not foo.len(), and see https://docs.python.org/3/library/collections.abc.html#collections.abc.Sized )

      1. 1

        Good point, I’ll add a note that this is Python without typing (it is more just an example showing the benefits to simplicity of duck typing). Thanks for the correction on the len(foo); that’s a silly miss on my part!

    2. 7

      This has been noted in the ldd(1) man page for a while, but I guess it’s worth warning about it anyway given that it’s somewhat surprising behaviour.

      It would have been nice if the article mentioned alternatives. ldd(1) suggests using objdump:

      objdump -p /path/to/program | grep NEEDED

      (And now I just noticed that this article is actually from 2009. Maybe it wasn’t in the man page back then.)

    3. 9

      Doesn’t work well for nested subdirectories cases, but C-x C-q in dired in Emacs is a really convenient method.

      1. 3

        This is my favorite way of bulk-editing filenames, it’s so nice to be able to do anything Emacs can do on a text file on a directory of filenames.

      2. 2

        I think there is a large amount of emacs users that don’t know this trick. When I first found out about it a couple of years ago (just use the regular “toggle read-only” command sequence!) my jaw dropped. I have never had to deal with hacks like the ones outlined in the article since. :)

    4. 6

      It has been merged to master now, and it seems to be working quite well.

      1. 1

        can’t wait for it to become part of the standard distros’ packaging!

        1. 1

          Mickey Petersen has a nice recipe for how to build it yourself:

          https://www.masteringemacs.org/article/speed-up-emacs-libjansson-native-elisp-compilation

          But you don’t need to check out the native-comp branch as he does, because it’s in master, as I mentioned. Also, I didn’t need the ppa:ubuntu-toolchain-r/ppa for gcc-10 on Ubuntu 20.04.

          The rest of it looks good.

    5. 8

      I‘m not that familiar with Julia, but doesn‘t that language claim to solve Python‘s shortcoming regarding speed? It‘s also much more focused on scientific computing. It would be interesting to hear from the scientists mentioned why they didn‘t choose Julia.

      1. 2

        Very small sample: I know of one person using Julia because it was faster than Python for a particular task. (Analysis of mass spectrometry data.)

        (I didn’t actually study the code closely, so I can’t say whether it would have been possible to make it fast enough using numpy, etc.)

      2. 2

        The article on Julia is linked as a related article: https://www.nature.com/articles/d41586-019-02310-3

        Many scientists are using Julia. As a Julia user, I can point out several reasons why one might pick Rust over Julia: Julia is a garbage-collected language, whereas Rust has its borrow-checker (If you need explicit control over performance, Rust might be the better choice). Rust is safer with static type-checking, whereas Julia mostly uses type-annotations for multiple dispatch (Julia is aimed more at computational exploration, whereas Rust aims for compiled binaries, and it seems Varlociraptor aims to build a distributable binary). Julia targets LLVM, whereas Rust targets specific architecture (Rust would be easier with embedded systems).

        1. 1

          Rust’s main implementation targets LLVM.