_______               __                   _______
       |   |   |.---.-..----.|  |--..-----..----. |    |  |.-----..--.--.--..-----.
       |       ||  _  ||  __||    < |  -__||   _| |       ||  -__||  |  |  ||__ --|
       |___|___||___._||____||__|__||_____||__|   |__|____||_____||________||_____|
                                                             on Gopher (inofficial)
   URI Visit Hacker News on the Web
       
       
       COMMENT PAGE FOR:
   URI   Murex – An intuitive and content aware shell for a modern command line
       
       
        tqwhite wrote 4 hours 0 min ago:
        Could it really be worth it to try to build new shell commands into
        muscle memory? How long would it take before
        
        err "some message"
        
        becomes normal?
        
        For me, it would have to offer sexual favors or something to be worth
        it. I don't see anything that good otherwise.
       
        esafak wrote 7 hours 4 min ago:
        Has anyone spent good time with murex AND nushell and ultimately chose
        murex?
       
        nickpinkston wrote 7 hours 19 min ago:
        Upvote just for good historical reference!
        
        Murex were the shells whose excretions were used to make the Tyrian
        purple of the Mediterranean. Tyrian referring to Tyre, one of the major
        Phoenician city-states.
        
        It was so iconic that the "Punic Wars" are called that because Punic =
        Phoenicia = "Purple People".
        
        Carthage was the Phoenician colony that outlasted the home country.
        
   URI  [1]: https://en.wikipedia.org/wiki/Tyrian_purple
       
          cyberpunk wrote 2 hours 39 min ago:
          Murex is also an extremely expensive front of house trading platform
          whose typical installations cost in the millions. I would change the
          name tbh.
       
          throwaway894345 wrote 6 hours 34 min ago:
          Also, the Phoenicians were the descendants of the Canaanites, who
          (according to one etymological theory) are also named after the color
          purple.
          
          The Phoenicians were a semitic people like the Jews, and they gave
          the world its first alphabet which was adopted by both the Hebrews
          and the Greeks. The Greeks added vowels, and the Romans adopted that
          alphabet and it became roughly the one we use today.
          
          If you go to the Wiki page ( [1] ) and scroll down to the Table of
          Letters header, you can see how the letters evolved from Egyptian
          hieroglyphs to the letters we use today. It’s particularly
          interesting to me that our letter “B” (which the greeks called
          “beta” and which forms the tail end of “alphabet”) was
          originally a house, and the semitic languages called it “bēt”
          which was their word for house, which you can still see today in
          Biblical place names like Bethel (house of God—“El” was a very
          old name for God).
          
   URI    [1]: https://en.m.wikipedia.org/wiki/Phoenician_alphabet
       
            nickpinkston wrote 4 hours 50 min ago:
            Yea, I loooove that history too.
            
            It's interesting how, unlike Sumerian cuneiform or Egyptian
            hieroglyphs that were complex systems that came from dedicated
            scribes of the court, Phoenicia's alphabet was the kind of
            pragmatic system you can imagine a more mercantile society
            developing.
            
            It's wild that it turned into the scripts: Latin, Greek, Arabic,
            Cyrillic, Hebrew, and beyond.
            
            Also interesting is Chinese script, which was saved from this by
            Stalin telling Mao that China should keep its unique writing, which
            Russia of course was already doing. Mao did do the simplification,
            but he turned away from his previous plan to standardize the latin
            script for Chinese.
       
          gausswho wrote 6 hours 41 min ago:
          It's a one-eyed, one-horned, flying, purple people eater...
       
          jabedude wrote 7 hours 13 min ago:
          Murex also has significant religious significance to Jews. It is the
          source of the biblically mandated blue threads for four cornered
          garments:
          
   URI    [1]: https://en.wikipedia.org/wiki/Tekhelet
       
        xyproto wrote 7 hours 56 min ago:
        I gave it a spin. First it complained about aspell dictionaries, then I
        tried installing a package in an effort to improve the prompt from
        simply saying "murex":
        
            murex » murex-package install
        https://github.com/orefalo/murex-module-starship
            \* Getting package from
        'https://github.com/orefalo/murex-module-starship'....
            Error in `murex-package` (0,1): protocol handler for HTTPS has not
        yet been written. Please use git in the mean time (you can do this by
        specifying a git extension in the uri)
            .murex_modules » murex-package install
        https://github.com/orefalo/murex-module-starship.git
            \* Getting package from
        'https://github.com/orefalo/murex-module-starship.git'....
            Cloning into
        '/home/aroedset/.murex_modules/murex-module-starship'...
            Error in `murex-package` (0,1): \* Package 'murex-module-starship':
        Error loading module `starship` in path
        `/home/aroedset/.murex_modules/murex-module-starship/starship.mx`:
                          >   \* Missing required executable,
        builtin or murex function: `starship`
            .murex_modules »       
        
        And then the time I allocated for myself for trying out a random shell
        I found on the internet was up.
       
          zyode wrote 9 min ago:
          You seem pretty harsh considering these all appear to be user error.
          
          You forgot the .git when you tried first, and you don’t have
          starship installed on your system or on your path.
       
        oguz-ismail wrote 8 hours 3 min ago:
        $ ./murex-linux-arm64
            Loading profile `.murex_preload`
            SIGSYS: bad system call
            PC=0x18fd0 m=8 sigcode=1
            
            goroutine 498 gp=0x4000283340 m=8 mp=0x4000100808 [syscall]:
            syscall.Syscall6(0x1b7, 0xffffffffffffff9c, 0x40000227e0, 0x1,
        0x200, 0x0, 0x0)
               
        /opt/hostedtoolcache/go/1.24.6/x64/src/syscall/syscall_linux.go:95
        +0x2c fp=0x40001119c0 sp=0x4000111960 pc=0xa067c
            syscall.faccessat2(0xffffffffffffff9c, {0x4000359fb0?,
        0x4000022780?}, 0x1, 0x200)
               
        /opt/hostedtoolcache/go/1.24.6/x64/src/syscall/zsyscall_linux_arm64.go:
        33 +0x84 fp=0x4000111a20 sp=0x40001119c0 pc=0x9df74
            syscall.Faccessat(0xffffffffffffff9c, {0x4000359fb0, 0x27}, 0x1,
        0x200)
               
        /opt/hostedtoolcache/go/1.24.6/x64/src/syscall/syscall_linux.go:171
        +0x3c fp=0x4000111b00 sp=0x4000111a20 pc=0x9c9ec
            internal/syscall/unix.Eaccess(...)
            ...
        
        I'm tired boss
       
          yencabulator wrote 4 hours 48 min ago:
          faccessat2 was added in Linux 5.8 in August 2020. Maybe it's time for
          you to upgrade your distro?
       
            oguz-ismail wrote 3 hours 28 min ago:
            Why? Everything else works fine
       
              yencabulator wrote 2 hours 54 min ago:
              For values of "fine" that are on fire.
              
   URI        [1]: https://www.cisa.gov/known-exploited-vulnerabilities-cat...
       
        BrouteMinou wrote 8 hours 14 min ago:
        It looks like PowerShell, or nushell that also looks like PowerShell.
        
        Did you know you can install PowerShell on Linux too?
       
          ItsHarper wrote 7 hours 47 min ago:
          PowerShell is so much clunkier than nutshell, which is truly a
          delight. Haven't tried murex.
       
            fainpul wrote 6 hours 8 min ago:
            Not sure what you find clunky about PowerShell. On the other hand,
            I find nushell not mature enough to be usable. The very basics -
            displaying command output in lists and tables - is totally broken
            as soon as some long strings appear in the output. Various issues
            about this are logged, but nobody seems to care. [1]
            
   URI      [1]: https://github.com/nushell/nushell/issues/13601
   URI      [2]: https://github.com/nushell/nushell/issues/16379
       
        liampulles wrote 9 hours 57 min ago:
        Because I need the scripts and snippets I write for my repos to work
        for other developers, I'm going to write them to be bash compatible.
        That applies also to scripts and snippets written by others that I
        consume.
        
        So if a shell is not bash syntax compatible, then it really has to
        offer some astonishingly useful features to offset my having to
        translate and map the scripts I need to run for it.
        
        Murex does not interpret "$(cmd args)". So unfortunately, I cannot use
        it. I know it's not fair, and I know that is promoting a lock-in of
        what shells can do, but I need to get shit done I'm afraid.
       
          MangoToupe wrote 9 hours 26 min ago:
          I just write everything in fish and have an LLM translate it to bash.
          Freed up a couple brain cells for more useful things for sure.
       
            sholladay wrote 7 hours 38 min ago:
            Newer versions of Fish have significantly improved bash
            compatibility. The LLM may actually be making things harder for you
            than they need to be.
       
              kstrauser wrote 7 hours 34 min ago:
              The single biggest win there was that it understands ‘export
              foo=bar’ now, which is probably 90% of what I’d ever copy and
              paste into a shell.
       
          moondev wrote 9 hours 34 min ago:
          You should consider putting a shebang at the top of your scripts
          instead of leaving it to fate
       
            liampulles wrote 9 hours 23 min ago:
            I do this for all the scripts I write. That does cover one of the
            scenarios I covered above, which is valid.
       
              rafram wrote 9 hours 22 min ago:
              Then there’s no reason you can’t use a different shell as
              your interactive shell, while running your scripts in bash.
       
                kstrauser wrote 7 hours 35 min ago:
                A thousand times this. I use bash scripting for things I’m
                going to distribute, but do all my local CLI work and scripting
                in fish because life’s too short to wear the bash hair shirt
                when I don’t have to.
       
                  esafak wrote 7 hours 6 min ago:
                  bash: what you feel like doing with your head trying to get
                  work done in it.
       
                liampulles wrote 9 hours 16 min ago:
                For me to develop my scripts it would help alot if my
                interactive shell supports the syntax as well. I mean you are
                right of course, I CAN do that, but it then becomes a tradeoff
                question again of whether this non-compatible interactive shell
                has sufficient niceties.
       
                  sholladay wrote 7 hours 41 min ago:
                  I agree with you. Have you tried Fish? I find it to be the
                  perfect balance of these goals. It has lots of niceties,
                  which for me was already enough to switch to it years ago.
                  But lately, they’ve been adding lots of bash compatibility,
                  which has made it even more awesome.
       
                    liampulles wrote 7 hours 28 min ago:
                    I will check it out, cheers
       
        oneeyedpigeon wrote 11 hours 28 min ago:
        What happened to the convention that shell names end in sh? There are:
        
            grep sh$ /usr/share/dict/words | wc -l
            1959
        
        options available; surely we haven't exhausted them all?!
       
          Y_Y wrote 8 hours 1 min ago:
          Balderdash! Sorry to be standoffish, but you must distinguish between
          dictionaries. My distro has chosen to impoverish me with a
          nightmarish 315.
          
          (wamerican 2017.08.24-1 from Ubuntu 18.04)
       
          bckr wrote 10 hours 8 min ago:
          This is instead named for an animal with a shell
       
        viraptor wrote 12 hours 9 min ago:
        A few of those ideas are also in
        
   URI  [1]: https://www.nushell.sh/
       
        kitd wrote 12 hours 40 min ago:
        Interesting. Looks similar to nushell [1] which also is
        data-encoding-aware.
        
   URI  [1]: https://www.nushell.sh/
       
          xalava wrote 11 hours 46 min ago:
          Thanks for pointing it out. I've tried both as interactive shells for
          a few minutes. Murex seems to have a more minimalist approach that
          works well as a drop-in replacement.
          
          However, I have trouble understanding some design decision, such as
          inventing redundant keywords. And I've spotted bugs in boths (e.g. ls
          --literal fails in nu, and the completion proposes it twice in
          Murex).
       
            esafak wrote 7 hours 9 min ago:
            ls --literal does not exist, that's why. Try man.
       
        wyan wrote 12 hours 50 min ago:
        Wasn't Murex some sort of backend software for financial institutions?
       
          sockmeistr wrote 3 hours 34 min ago:
          They're still going, are nice and litigious, and actively defend
          their trademarks. I'm kind of surprised they haven't sent a cease and
          desist already.
       
          rollcat wrote 8 hours 21 min ago:
          It's a spaceship from Warframe.
          
          NB story spoilers. < [1] >
          
   URI    [1]: https://wiki.warframe.com/w/Murex
       
          pasc1878 wrote 8 hours 56 min ago:
          Not just backend - it replaced the front end system I wrote for FX
          options (after I left the bank)
       
          jmcomets wrote 12 hours 41 min ago:
          Still is. It's a French/Lebanese corp based in Paris/Beirut. I worked
          there for a few years early in my career.
       
        mikl wrote 13 hours 26 min ago:
        Maybe I’m just not the target audience, but looking at the front
        page, I don’t see what actual problems this solves. The claims sound
        nice, but without examples of what they mean in real world use, it’s
        not really compelling.
       
          roger_ wrote 7 hours 45 min ago:
          Agreed.
          
          The nushell homepage, by comparison, immediately conveys the benefits
          of that project.
       
          _notreallyme_ wrote 13 hours 15 min ago:
          I may be wrong, but it gives me some powershell vibe. Since it seems
          to be targeted for macOS, I would assume it "solves" the lack of
          powershell equivalent on Mac ?
       
            SvenL wrote 12 hours 38 min ago:
            On Mac and Linux you can use powershell core:
            
   URI      [1]: https://learn.microsoft.com/en-us/powershell/scripting/ins...
       
              amonith wrote 11 hours 15 min ago:
              Powershell 7+ (a long while ago named core) is the version you
              should use on ALL platforms, including Windows. It's just the
              most recent version.
              "Core" gives off a vibe that it is some limited thingy. It's not,
              it's full PS.
       
              rusk wrote 12 hours 37 min ago:
              Oh goody
       
        h33t-l4x0r wrote 13 hours 38 min ago:
        This looks interesting, I will consider switching if it's not sluggish
        like zsh was that one day I tried it.
       
          iberator wrote 13 hours 1 min ago:
          Back in the 486 era? same here hehe
          ksh for life :p
       
            klibertp wrote 4 hours 52 min ago:
            It takes 3.5 seconds for a new login shell to open on my laptop,
            which has a decent CPU and a fast SSD. I do have quite a few lines
            of config, but no oh-my-zsh and almost no plugins. I have around 2k
            SLOC of ZSH config.
            
            Meanwhile, I have 22.3k SLOC of Emacs Lisp config, and Emacs starts
            up (granted, after lowering bytecode to native code AOT) in ~4
            seconds. To me, that suggests there's something really wrong with
            ZSH in terms of performance - unfortunately, it's better in almost
            every other way compared to BASH, so I learned to live with that.
            Still, at least in my setup, ZSH indeed is slow, even on modern
            hardware. I wonder if it would even run on a 486...
       
              cb321 wrote 4 hours 30 min ago:
              That sounds way too long.  Mine takes like 15 ms on a 2015 cpu
              and I activate zsh-syntax-highlighting and new style completion
              and everything, but yeah oh-my-zsh often adds nutso overhead. 
              Anyway, I suggest you profile your zsh start-up.  Here's one
              copy-paste friendly way to do that:
              
                  (PS4='+$EPOCHREALTIME ' zsh -licx exit)2>err
                  era=$(grep
              '^+[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].[0-9]*' 
              startup-profile
              
              (Note for $EPOCHREALTIME to work you need a `zmodload
              zsh/datetime` somewhere early on.  I might suggest at the top of
              `$ZDOTDIR/.zshenv` for this kind of thing.)
              
              Also, if something seems limited by "just parsing", you can
              usually speed that up a lot with `zcompile`.  I do that with a
              `.zcompdump.zwc` and a `digraphs.zsh.zwc`.
              
              EDIT: I noticed myself that really large HISTSIZE (in the 100s of
              thousands, and with such limit realized) combined with
              de-duplication seems to be a bad combination.  I just lowered my
              HISTSIZE with a when-too-big spool-off for longer term
              history/cold storage.
       
                klibertp wrote 3 hours 9 min ago:
                > I noticed myself that really large HISTSIZE
                
                ...right, I totally forgot that. Yeah, my history file is
                4.5MB, and $HISTSIZE is 1M. I even wrote a Scala app[1] some
                time ago to collect hist files from all my machines (I used
                many more than the current 2, at some point), merging and
                deduping them once a day. Adding to that, it's 13 years old at
                this point, and probably has quite a few KB of mis-pasted text
                files in it, so I guess it makes sense it's this large. It also
                makes sense that processing it takes a while, especially with
                deduping enabled.
                
                I'll check, but if that's the reason, then I'd be reluctant to
                do anything with it. Having fzf search through all my command
                lines dating back to 2012 is very valuable. I'll see how that
                would work with spooling.
                
                Thanks for the profiling tip, I'll check it out! As mentioned,
                I'm not thinking of jumping ship, so I'm willing to do some
                digging to make the situation better :) [1] 
                
                EDIT: yeah, history is the reason:
                
                    -▶ time HISTFILE=/dev/null zsh -c 'echo $ERL_AFLAGS' #
                variable from the end of my .zshrc
                    -kernel shell_history enabled
                    HISTFILE=/dev/null zsh -c 'echo $ERL_AFLAGS'  0,20s user
                0,03s system 98% cpu 0,233 total
                
   URI          [1]: https://github.com/piotrklibert/zsh-merge-hist
       
                  cb321 wrote 2 hours 11 min ago:
                  In that case, since you are already de-duping "externally",
                  you might play with `setopt HIST_IGNORE_ALL_DUPS
                  HIST_IGNORE_DUPS HIST_SAVE_NO_DUPS` combinations.  It's been
                  many years since I looked at it, but I think these conspire
                  with large saved histories to slow things down a lot at
                  startup/initial history parse.
                  
                  I don't even recall if it's necessary or was just the simple
                  algorithm.  So, you might actually be able to get Zsh fixed
                  if there is some quadratic thing that can be turned linear
                  with a hash table.  The Zsh mailing list is quite
                  accommodating in my experience.
       
       
   DIR <- back to front page