Skip Navigation
Go's concurrency in a dynamic language Rye
ryelang.org Go's concurrency in a dynamic language Rye

The Rye programming language is a dynamic scripting language based on REBOL’s ideas, taking inspiration from the Factor language and Unix shell. Rye is written in Go and inherits Go’s concurrency capabilities, including goroutines and channels. Recently, Rye gained support for Go’s select and waitgr...

lobsters discussion: https://lobste.rs/s/mnuhwc/go_s_concurrency_dynamic_language_rye

0
Manjaro 24.0 Wynsdey released
  • FWIW I've read an Arch dev complain that folks using any 3rd party installer are not in fact "running Arch" and should not claim to be doing so.

  • Telegram Reportedly "Ready to Fight Piracy" According to Govt. Official * TorrentFreak
  • Huh? Is this relevant, or some kind of bot spam?

  • Removed
    Release v0.52.5 · navidrome/navidrome · GitHub
  • For anyone else wondering:

    Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!

  • Telegram Reportedly "Ready to Fight Piracy" According to Govt. Official * TorrentFreak
  • So far, this isn't much of anything.

    Telegram already closes public channels reported for copyright violations.

    Some excerpts from this post:

    Compared to other platforms, we do not see the seriousness of Telegram to cooperate.

    . . .

    In May 2023, progress appeared to be going in the wrong direction. Telegram was reportedly refusing to cooperate with the Ministry of Communications and Digital on the basis it did not wish to participate in any form of politically-related censorship.

    . . .

    With no obviously public comment from Telegram on the matter, it’s hard to say how the social platform views its end of what appears to be an informal agreement.

    Telegram will be acutely aware, however, that whatever it gives, others will demand too. That may ultimately limit Telegram’s response, whatever it may be, whenever it arrives – if it even arrives at all.

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

    From the STOMP homepage:

    > ### What is it?

    > STOMP is the Simple (or Streaming) Text Orientated Messaging Protocol.

    > STOMP provides an interoperable wire format so that STOMP clients can communicate with any STOMP message broker to provide easy and widespread messaging interoperability among many languages, platforms and brokers.

    > ### Simple Design

    > STOMP is a very simple and easy to implement protocol, coming from the HTTP school of design; the server side may be hard to implement well, but it is very easy to write a client to get yourself connected. For example you can use Telnet to login to any STOMP broker and interact with it!

    From John's blog post:

    > In the interest of learning Factor, I thought I would write a bit about parsing the STOMP protocol, and then about how to implement a client library using connection-oriented networking, interacting with it using mailboxes, and then building a command-line interface using the command-loop vocabulary.

    > There are many STOMP servers and clients available in different languages. I tried a few and decided that Apache ActiveMQ was one of the most convenient to setup and reliable to work with, but others are available as well.

    0
    Forth Bitcoin miner for PC and Game Boy
  • Wow, the first submission here with a negative score. I'm guessing it's because it mentions bitcoin.

    Well, I'll say that bitcoin is not the point here, but rather that the author is enthusiastically embracing forth, with its "directness," simplicity, and portability. You can find more in the lobsters comments.

    The author plans to port their small Zig subtitle-displaying project to forth, and hopes to use forth for all their systems programming needs in the future.

  • Factor Programming Language Tutorial | Video
    odysee.com Factor Programming Language Tutorial

    This is an introductory tutorial for a stack-based (concatenative) programming language Factor. It covers some basic language constructs and a few features of the interactive development environment t...

    Factor Programming Language Tutorial

    John B's blog post calls it:

    > . . . a pretty neat hour long introduction going over a lot of features that users new to the language might be interested in.

    The video creator's description:

    > This is an introductory tutorial for a stack-based (concatenative) programming language Factor. It covers some basic language constructs and a few features of the interactive development environment that is shipped with Factor.

    > I've re-shot my two prior recordings combining everything into a single video.

    0
    Removed
    Release v0.52.0 · navidrome/navidrome · GitHub
  • Congrats on all the labor you saved.

    If you think folks here are uniquely unreasonable you could try lemmy.world/c/selfhosted .

  • Removed
    Release v0.52.0 · navidrome/navidrome · GitHub
  • On the off chance that you truly don't understand:

    The nice thing to do would be to accept the feedback and add a short description. It's confusing to others why you are staunchly opposed to performing that small courtesy, and instead jump to never posting here again.

  • Are we Wayland yet or Whats missing?
  • The window shade problem is keeping me from Wayland. AFAIU there's currently no commitment to ever fix it on Wayland, it's only a maybe.

    For anyone interested, it's being tracked here.

  • (Read before Comment) Why you don't like GIMP UI?
  • So . . . not relevant to my comment?

  • akalenuk/the_namingless_programming_language: Naming is hard. How far can we go without?
    github.com GitHub - akalenuk/the_namingless_programming_language: Naming is hard. How far can we go without?

    Naming is hard. How far can we go without? Contribute to akalenuk/the_namingless_programming_language development by creating an account on GitHub.

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

    Discussion on lobsters: https://lobste.rs/s/r50zeq/ukrainian_coder_s_new_programming

    1
    Show off your solutions to Exercism's 48in24, but in your favorite stacky lang!
  • Pangram
    USING: sets.extras unicode ;
    
    : pangram? ( str -- ? )
      >lower "abcdefghijklmnopqrstuvwxyz" superset? ;
    
  • Deleted
    ...
    • Factor
    • Roc
    • Nim
    • Zsh
    • Execline
  • Deleted
    ...
  • Well FWIW CodeWars has plenty of Factor katas, and I try to gather related resources at https://programming.dev/c/concatenative

    I'm trying to keep up with the Perl Weekly Challenges, but with Factor, and am posting some Factor solutions to Exercism's 48in24 series.

  • foss audio slowdowner?
  • By default you can use left and right bracket keys [] to adjust speed, and it should do adjustments to make the pitch sound the same.

    To adjust the pitch alone, you can have something like this in your input.conf, customized as you like:

    ALT+p af toggle @rb
    ALT+UP af-command rb multiply-pitch 1.25
    ALT+DOWN af-command rb multiply-pitch 0.8
    ALT+LEFT af-command rb set-pitch 1.0
    

    I haven't looked at this in a long time. If you always need this there's likely a conf option to always enable the "rubber band" (@rb) filter. And maybe other commands than multiply that would be better.


    EDIT: Sorry, I don't have this quite right. Maybe someone can correct me.

  • Show off your solutions to Exercism's 48in24, but in your favorite stacky lang!
  • Scrabble Score 4.0
    USING: assocs.extras kernel literals make sequences unicode ;
    
    CONSTANT: charscores $[
      [
        { 1 2 3 4 5 8 10 }
        { "AEIOULNRST" "DG" "BCMP" "FHVWY" "K" "JX" "QZ" }
        [ [ ,, ] with each ] 2each
      ] H{ } make
    ]
    
    : scrabble-score ( str -- n )
      charscores swap >upper values-of sum ;
    
  • (Read before Comment) Why you don't like GIMP UI?
  • OK, I see some differences between your two screenshots, but what's the relevance to my comment?

  • (Read before Comment) Why you don't like GIMP UI?
  • I don't know what I should be noticing there. I can't see any text for the tool buttons along the left edge of the window.

  • KDE Plasma 6.0.4 Is Out to Improve Plasma Wayland, System Monitor, and More - 9to5Linux
  • Anyone notice non-obvious Wayland road blocks?

    I think the last thing keeping me on X11 is window shade.

  • (Read before Comment) Why you don't like GIMP UI?
  • I have trouble with both, but more experience with GIMP. I can't stand all the little tool buttons with no text. I want the name of each tool always visible on its button.

    I have the same problem with Inkscape.

  • Subset Park: Combinatory Programming
    blog.zdsmith.com Subset Park: Combinatory Programming

    Combinatory Programming : ## To The Programmer A combinator is a kind of function. Specifically, it's a function that applies its arguments---and only its arguments---to each other in a particular shape

    1
    zpy: Zsh helpers for Python venvs, with uv or pip-tools
    github.com GitHub - AndydeCleyre/zpy: Zsh helpers for Python venvs, with uv or pip-tools

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

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

    cross-posted from: https://programming.dev/post/12688262

    > Hello! > > This is my little Zsh frontend for Python venv and dependency management, as well as pipx-like app installation. > > It's not new, but I just made a new release that can use uv as a backend, making it much faster (and hipper, obviously). > > If you have zpy installed, you can install uv with the pipz command, and from then on zpy will use uv instead of Python's venv module and pip-tools: > > zsh > % pipz install uv > > > If you have any questions, please ask! > > I personally use it in combination with mise (for Python runtime management) and flit (for package publishing), but aim to keep it rather agnostic and interoperable.

    0
    zpy: Zsh helpers for Python venvs, with uv or pip-tools
    github.com GitHub - AndydeCleyre/zpy: Zsh helpers for Python venvs, with uv or pip-tools

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

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

    Hello!

    This is my little Zsh frontend for Python venv and dependency management, as well as pipx-like app installation.

    It's not new, but I just made a new release that can use uv as a backend, making it much faster (and hipper, obviously).

    If you have zpy installed, you can install uv with the pipz command, and from then on zpy will use uv instead of Python's venv module and pip-tools:

    zsh % pipz install uv

    If you have any questions, please ask!

    I personally use it in combination with mise (for Python runtime management) and flit (for package publishing), but aim to keep it rather agnostic and interoperable.

    0
    Introducing pql, a pipelined query language that compiles to SQL (written in Go)
    blog.runreveal.com Introducing pql, a pipelined query language that compiles to SQL (written in Go).

    Today we're open-sourcing pql under the Apache 2.0 license and announcing that all RunReveal customers can use pql to query their logs. We built pql because the major security vendors use proprietary languages as a source of vendor lock-in and there were no open-source alternatives. pql is SQL agnos...

    Introducing pql, a pipelined query language that compiles to SQL (written in Go).
    • https://blog.runreveal.com/introducing-pql/
    • https://pql.dev/
    • https://github.com/runreveal/pql

    I don't yet have a feel for any key differences between pql and PRQL.

    0
    tomhrr/cosh: Concatenative command-line shell
    github.com GitHub - tomhrr/cosh: Concatenative command-line shell

    Concatenative command-line shell. Contribute to tomhrr/cosh development by creating an account on GitHub.

    GitHub - tomhrr/cosh: Concatenative command-line shell

    Copied from the readme:

    ---

    cosh is a concatenative command-line shell.

    Why?

    Basic shell operations like ls, ps, stat, and so on are implemented as functions that return first-class values, as opposed to relying on executables that return text streams. This makes working with the results simpler:

    • Find file paths matching a string, and search those files for data

    sh: sh find . -iname '*test*' -print0 | xargs -0 grep data cosh: sh lsr; [test m] grep; [f<; [data m] grep] map

    • Find all processes using more than 500M of memory:

    sh: sh ps --no-headers aux | awk '$6>500000' cosh: sh ps; [mem get; 1000 1000 *; 500 *; >] grep

    A small set of versatile primitives means that less needs to be remembered when compared with typical shells (see e.g. the various flags for cut(1)), though some commands may be longer as a result:

    • Get the second and third columns from each row of a CSV file:

    sh: sh cut -d, -f2,3 test-data/csv cosh: sh test-data/csv f<; [chomp; , split; (1 2) get] map

    • Sort files by modification time:

    sh: sh ls -tr cosh: sh ls; [[stat; mtime get] 2 apply; <=>] sortp

    Arithmetical operators and XML/JSON/CSV encoding/decoding functions reduce the number of times that it becomes necessary to use a more full-featured programming language or a third-party executable:

    • Increment floating-point numbers in file:

    sh: sh sed 's/$/+10/' nums | bc cosh: sh nums f<; [chomp; 10 +] map

    • Get the first value from the "zxcv" array member of a JSON file:

    sh: sh jq .zxcv[0] test-data/json2 cosh: sh test-data/json2 f<; from-json; zxcv get; 0 get

    It also integrates with external executable calls, where that is necessary:

    • Print certificate data:

    bash: bash for i in `find . -iname '*.pem'`; do openssl x509 -in $i -text -noout; done cosh: sh lsr; [pem$ m] grep; [{openssl x509 -in {} -text -noout}] map;

    See the full documentation for more details.

    0
    Show off your solutions to Exercism's 48in24, but in your favorite stacky lang!
    exercism.org The #48in24 Challenge

    Try out a new programming challenge each week. Broaden your horizons and level up your programming skills as your explore the varied paradigms and ideas that different languages embrace. It's free, fun, and useful!

    The #48in24 Challenge

    Just because Exercism doesn't offer your favorite language as an official track, it doesn't mean we can't play at all. Post some solutions to the weekly challenges in the language of your choice!

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

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

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

    Copied from the project's readme:

    ---

    Introduction

    Scale is a procedual and object oriented concatenative stack oriented compiled programming language inspired by Lua and Porth.

    The Compiler is a source-to-source compiler, as it converts your source code to valid C code, that is then compiled by Clang.

    Scale supports both 32-bit and 64-bit systems, but 64-bit is strongly recommended.

    Examples

    Examples can be found in the examples directory.

    Installation

    Run the following commands: shell $ clang++ install-sclc.cpp -o install-sclc -std=gnu++17 $ ./install-sclc

    Documentation

    A list of all features can be found here.

    The Scale Framework documentation can be viewed by running the following command: shell $ sclc -doc-for Scale

    0
    acook/blacklight: a stack-based concatenative virtual machine for implementing highly concurrent languages
    github.com GitHub - acook/blacklight: a stack-based concatenative virtual machine for implementing highly concurrent languages

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

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

    Copied from the project's readme:

    ---

    • blacklight is a programming language which is concurrent, stack-based, and concatenative (BLPL)

    • blacklight is a virtual machine for implementing highly concurrent languages (BLVM)

    • blacklight is a data interchange format for communicating between processes and across networks (BLBC)

    Features --------

    blacklight (BLVM) is awesome, here's a few reasons why:

    • easy to use builtin parallelism through native concurrency primatives
    • threadsafe communication between concurrency units
    • rich datatype primitives
    • an easy to use homoiconic Forth-like assembly language (BLPL)
    • runtime bytecode manipulation and generation
    • UTF-8 native datatypes
    • multi-architecture and cross-platform (currently: x86_64, ARM, macos, linux, windows)
    • (in progress) highly optimized vector operations on supported CPUs
    • (planned) security contexts and permissions

    Documentation -------------

    BLPOC -----

    The current implementation of blacklight is a proof-of-concept. It's functional but intended primarily for proving out features, strategies, and specifications. Once The ABI is stable it will be reimplemented with optimization and compatibility in mind against a full test suite. As is, there is very little about blacklight that isn't subject to change to better reflect the results of research and experimentation.

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

    Sorry to make a whole post asking this. I've been asking on Reddit, IRC, Telegram, and the issue tracker, and I haven't been able to elicit a response from someone who is running Plasma 6 with an X11 session.

    Can anyone running Plasma 6 with an X11 session please tell me if it's still possible to offset a panel from a neighboring screen edge? e.g. a bottom panel right-aligned, but some distance from the right screen edge?

    Thanks for any info!

    6
    Rye language

    From the homepage:

    > Rye is a high level, homoiconic dynamic programming language based on ideas from Rebol, flavored by Factor, Linux shell and Go. It's still in development, but we are focused on making it useful as soon as possible.

    > It's written in Go and could also be seen as Go's scripting companion as Go's libraries are very easy to integrate, and Rye can be embedded into Go programs as a scripting or a config language.

    > I believe that as a language becomes higher level it starts bridging the gap towards user interfaces. Rye has great emphasis on interactive use (Rye console) where we intend to also explore that.

    4
    xmq: Convert xml/html to a more human readable/editable format (xmq/htmq) and back. Can also work with JSON.
    github.com GitHub - libxmq/xmq: Convert xml/html to a more human readable/editable format (xmq/htmq) and back can also work with json. Includes a syntax highlighter and pretty printer, pager and can render to html and tex.

    Convert xml/html to a more human readable/editable format (xmq/htmq) and back can also work with json. Includes a syntax highlighter and pretty printer, pager and can render to html and tex. - libx...

    GitHub - libxmq/xmq: Convert xml/html to a more human readable/editable format (xmq/htmq) and back can also work with json. Includes a syntax highlighter and pretty printer, pager and can render to html and tex.

    Hello! This is not my project, I just found it today.

    Making verbose things more concise and readable makes a big difference to me, and this could be excellent for me when dealing with HTML/XML. Just piping those formats through xmq yields a beautiful and clear rendering of the data.

    And as a NestedText enthusiast, I can now (using additional existing tooling):

    • transform HTML -> JSON -> NestedText
    • edit NestedText
    • transform NestedText -> JSON -> HTML
    0
    Andy Andy @programming.dev
    Posts 66
    Comments 300
    Moderates