I’m a Unix citizen. I work with the modern web, but have a soft spot for the old Internet.

Check out my site.

  • 0 Posts
  • 11 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle




  • If we’re talking specifically about executable scripts, here is #bash’s (libera.chat) factoid on the matter:

    Don’t use extensions for your scripts. Scripts define new commands that you can run, and commands are generally not given extensions. Do you run ls.elf? Also: bash scripts are not sh scripts (so don’t use .sh) and the extension will only cause dependencies headaches if the script gets rewritten in another language. See http://www.talisman.org/~erlkonig/documents/commandname-extensions-considered-harmful

    It’s for these reasons that I keep my executable scripts named without extensions (e.g. install).

    I sometimes have non-executable scripts: they’re chmod -x, they don’t have a shebang, and they’re explicitly made for source-ing (e.g. library functions). For these, I give them an extension depending on what shell I wrote them for (and thus, what shell you need to use to source them), e.g. library.bash or library.zsh.


  • Yeah, I use weechat.

    But in the interest of sharing something new: I do also like ii, which is a minimal filesystem-based IRC client. To tail a channel’s messages, for example, you could do

    tail -f #vim/out
    

    Then to send a message,

    echo 'Hello, world!' > #vim/in
    

    Fun for the first five minutes just pulling together a makeshift IRC client with tmux panes and the above, but then you realize the depth of the iceberg with its scriptability with standard Unix pipelines. Tail out into a perl script that pipes back into in for example and you have a bot.





  • Quite a few times, sure. git bisect is a specific case of a more general technique – binary search fault localization – which comes in handy every once in a while (you can go a long while without needing it, but when you do need it, you’ll be thankful for it). If you can’t otherwise trace where in the code something is going wrong, bisect the code: comment or remove half of it out, see if it reproduces (therefore localizing it to either the removed or the remaining half), and repeat. If you’re working with some software that’s breaking on your config after a major version bump, bisect your config. Don’t have an idea what introduced a bug into your branch? git bisect.


  • Yeah, I didn’t like the debates back then either, because they tended toward elitist gatekeeping.

    That said, I think having a common language for rogue-likes, rogue-lites, roguelike-likes, and etc is useful enough still, but not for the purpose of exclusion. More so just for the purpose of being precise about discussion.

    Someone asks “hey I like roguelikes, can you recommend me some?”, and the world might be a little bit better if I could instantly understand what they’re asking for without doing the whole “well, what do you mean by roguelikes, what do you play now” dance – do I recommend Rogue Legacy or Sil, that sort of thing.

    I’ve made my peace with the names for the genres being imprecise as is (when are genres ever precise, anyway), but I think the Berlin Interpretation has a nice enough connotation where you go “oh, THAT kind of roguelike” to quickly establish shared context.