Skip Navigation

Posts
186
Comments
356
Joined
2 yr. ago

Concatenative Programming @programming.dev

Argument Parser | Re: Factor

Concatenative Programming @programming.dev

Go's concurrency in a dynamic language Rye

Concatenative Programming @programming.dev

Working with The Simple Text Oriented Messaging Protocol (STOMP) in Factor | Re: Factor

Concatenative Programming @programming.dev

Announcing Weaver: CLI arg parser for Roc | Sam Mohr

Concatenative Programming @programming.dev

Forth Bitcoin miner for PC and Game Boy

Concatenative Programming @programming.dev

Time My Meeting | Re: Factor

Concatenative Programming @programming.dev

Factor Programming Language Tutorial | Video

Concatenative Programming @programming.dev

akalenuk/the_namingless_programming_language: Naming is hard. How far can we go without?

Concatenative Programming @programming.dev

Subset Park: Combinatory Programming

Python @programming.dev

zpy: Zsh helpers for Python venvs, with uv or pip-tools

zsh @programming.dev

zpy: Zsh helpers for Python venvs, with uv or pip-tools

Concatenative Programming @programming.dev

Introducing pql, a pipelined query language that compiles to SQL (written in Go)

Concatenative Programming @programming.dev

tomhrr/cosh: Concatenative command-line shell

Concatenative Programming @programming.dev

Swanson: Slip and slurp | Douglas Creager

Concatenative Programming @programming.dev

Show off your solutions to Exercism's 48in24, but in your favorite stacky lang!

Concatenative Programming @programming.dev

StonkDragon/Scale: A procedual concatenative stack-oriented compiled programming language inspired by Porth.

Concatenative Programming @programming.dev

acook/blacklight: a stack-based concatenative virtual machine for implementing highly concurrent languages

KDE @lemmy.kde.social

Plasma 6 + X11: Can we still offset panels from neighboring screen edges?

Concatenative Programming @programming.dev

Rye language

Concatenative Programming @programming.dev

Konilo: a small, pragmatic personal computing system written in Forth and running on a tiny virtual computer

  • FWIW broot is a great fuzzy finding file tree tool that can be used similarly (much better for the task IMO), with a little configuration.

  • Zsh is not extended Bash, but an extended Bourne shell. This article isn't relevant to Bash.

  • That's not bash...

  • That looks cool, thanks!

  • Can the drag and drop designer work with QML yet?

  • You might like to use aconfmgr to track and prune your system state.

  •  bash
        
    grep -E '(^[^B]*$|A)'
    
      

    EDIT: Whoops, I meant to make this a top-level comment.

    EDIT 2: On one client it looked like a nested comment and on this other client it looks top level and now I'm a confused old man.

  • Konsole is excellent. Wezterm is even better, and can pretty much do everything, everywhere.

    There's no need to bother with the others if you like either of these.

  • I don't know what the install process is like for them, but FYI Siduction offers one image that is minimal but with X11, and one minimal without it.

  • I solved that problem a little differently:

     factor
        
    : reverse-vowels-2 ( str -- str' )
      [ clone ] [
        >lower [ vowel? ] find-all
        [ values reverse ] [ keys ] bi
      ] bi                       ! str vowels idxs
      [                          ! str | vowel idx
        pick dupd nth            ! str | vowel idx orig
        1string upper?           ! str | vowel idx t/f
        swapd [ ch>upper ] when  ! str | idx vowel
        set-nth-of               ! str'
      ] 2each                    ! str'
    ;
    
      

    Maybe clearer on lemmy without the comments:

     factor
        
    : reverse-vowels-2 ( str -- str' )
      [ clone ] [
        >lower [ vowel? ] find-all
        [ values reverse ] [ keys ] bi
      ] bi                       
      [                          
        pick dupd nth            
        1string upper?           
        swapd [ ch>upper ] when  
        set-nth-of               
      ] 2each                    
    ;
    
      
  • It's unmatched for some of the things it does and sites it supports, but I think it's a nightmare for any distro or package maintainer. It wants to manage its own installation and updates, at the user level, pulling in who knows what code or binaries.

    I think that makes it mechanically hard to handle, verify, or trust.

  • There are many advantages relative to bash, especially much better array handling, and comprehensive globbing and expansion expressions. You can reduce your reliance on external tools, which may have multiple alternative implementations (a source of unpredictability).

    Some defenses are written up at

    https://www.arp242.net/why-zsh.html

    (not my post)

    For me, fish's differences from older shells count against it without offering any compelling benefits.

    Newer shells like nushell and oils/ysh are exciting and have a lot going on, but are not mature or familiar.

  • For Alpine Linux:

    • support a different process supervisor
      • dinit, or
      • s6 with some high level sugar
    • add something like the AUR
  • For Arch, you may like a project called aconfmgr.

  • For Arch Linux:

    • support a different process supervisor
      • dinit, or
      • s6 with some high level sugar
    • don't use Bash anywhere
      • port down to POSIX, and
      • port up to Zsh
      • port minimal launchers to execline
    • replace PKGBUILD format, maybe with
      • nearly identical but Zsh
      • NestedText containing Zsh snippets
        • use this to render Zsh based on templates
          • my favorite template engine: wheezy.template
    • build packages with more optimizations, like the CachyOS repos
    • include or endorse something like aconfmgr
    • port conf files to NestedText
  • Wow, I haven't finished reading this yet but it seems a fantastic guide for getting started with concatenative programming, from zero.

  • A good live recovery distro that can mount bcachefs is one thing I've been waiting for before using that filesystem for a new install.

    That this will have Arch tools (including arch-chroot, probably) makes this even better.

  • Thanks. I know that's the case for Nim's flexibility, but I didn't think it applied to the pipe operator stuff like in Roc. I'll do some reading tonight to confirm.