Skip Navigation
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)ME
Posts
7
Comments
15
Joined
2 yr. ago
Raku @programming.dev
melezhik @programming.dev

Collection of Raku/Sparrow recipes to munge your data

This URL provides a collection ( 17 recipes ) of Raku/Sparrow snippets to munge your data. Raku provides powerful regexs mechanism to search text, Sparrow - some high level blocks to make it even easier, all this together allows user to use Raku in daily data processing tasks as alternative to well known solutions like sed/grep/awk/perl

Every recipe is an example of how to solve a real user task ( stack overflow questions ) which you may compare with other solutions ( none Raku ) on the same link and make your opinion. Don’t forget to give the author some credit by voting up on stack overflow if you like them ))

PS all recipes are tested by myself, appreciate any suggestions, improvements, bugs reporting

Raku @programming.dev
melezhik @programming.dev

Managing multiple ssh hosts using inventory files in Sparrowdo ( in Ansible way but with pure Raku )

  • nano is the best (imho) for up to medium size files. It’s preinstalled in most Linux boxes , it’s simple and flexible enough, takes a minimal amount of time to learn basic for keys and then use them all the time

  • Not generator, validator. It validates configuration files . Ansible is not flexible in comparison with Sparrow, you'd need to write more boilerplate code to do the same ... Also core ansible modules search is limited by "one line" mode, thus it does not allow to search for example within nested structures, like if we want something in between or in nested blocks, or search for sequences, like when we want to search a sequence of strings, a,b,c,d etc, Sparrow does allow al thatl as it has ranges/sequential/SLN search by design. Sparrow allows to generate check rules in runtime as well, Ansible can't

  • fair enough, however the intention is to show how one could create rules on Sparrow/Raku, not to show rules ... Maybe I should have mentioned that ...

    for example this is more interesting example evaluation of net.ipv4.tcp_synack_retries"

     undefined
        
    regexp: ^^ "net.ipv4.tcp_synack_retries" \s* "=" \s* (\d+) \s* $$
    
    generator: <<RAKU
    !raku
    if matched().elems {
      my $v = capture()[];
      say "note: net.ipv4.tcp_synack_retries={$v}";
      if $v >= 3 && $v <= 5 {
         say "assert: 1 net.ipv4.tcp_synack_retries in [3..5] range"
      } else {
         say "assert: 0 net.ipv4.tcp_synack_retries in [3..5] range"
      }
    } else {
      say "note: net.ipv4.tcp_synack_retries setting not found"
    }
    RAKU
    
      
  • Linux @programming.dev
    melezhik @programming.dev
    wp.me Harden sysctl.conf by Sparrow checks

    Rules, and a bit of … Raku note: Harden sysctl.conf note: Rules taken from note: note: Controls the use of TCP syncookies note: Turn on SYN-flood protections note: regexp: ^^ “net.ipv4.…

    Harden sysctl.conf by Sparrow checks
    Golang @programming.dev
    melezhik @programming.dev
    Raku @programming.dev
    melezhik @programming.dev
    Programming @programming.dev
    melezhik @programming.dev

    Hi! Sparrowhub maintainer here. Sparrow is an alternate to Ansible written on Raku. Users can create reusable tasks on many programming languages and run them via Raku SDK scenarios.

    If you are interested in contribution, you may:

    • create new Sparrow plugins, it’s easy (no knowledge of Raku is required) so people could use them
    • start using Sparrow as is ( 280 plugins included )
    • contribute in Sparrow core
    • spread the news

    Discord channel - https://discord.gg/xpBz6yTj or post your comments, questions here.

  • Yep. Like said - "We talk about use of Bash for simple enough tasks ... where every primitive language or DSL is ok", so Bash does not suck in general and I myself use it a lot in proper domains, but I just do not use it for tasks / domains with complexity ( in all senses, including, but not limited to team work ) growing over time ...

  • We are not taking about use of Bash in dev vs use Bash in production. This is imho incorrect question that skirts around the real problem in software development. We talk about use of Bash for simple enough tasks where code is rarely changed ( if not written once and thrown away ) and where every primitive language or DSL is ok, where when it comes to building of medium or complex size software systems where decomposition, complex data structures support, unit tests, error handling, concurrency, etc is a big of a deal - Bash really sucks because it does not allow one to deal with scaling challenges, by scaling I mean where you need rapidly change huge code base according changes of requirements and still maintain good quality of entire code. Bash is just not designed for that.

  • Ok. Huge part of building microservices framework is infrastructure automation - like setup nginx load balancing in runtime, build and deploy apps from source code, configuring services, tcp ports, health checks, horizontal scaling (adding new worker nodes), setup logging and monitoring, etc, also this needs to be propagated to all cluster nodes, I am not going to do this from the scratch - Sparky is alike (rough comparison though) ansible but with UI and programmable on Raku, so as Sparky has already addressed the mentioned tasks, it's logical for me to carry on with it. If we take Sparky out of equation, Raku by itself is reach and super flexible language to automate infrastructure, I don't see why can't I use it for that ...

  • Open Source @lemmy.ml
    melezhik @programming.dev

    Dormitory - Dead simple dockerless microservice framework

    github.com Home

    Dead simple containerless orchestrator . Contribute to melezhik/Dormitory development by creating an account on GitHub.

    Home

    Hey! I am building Microservices framework with focus on simplicity and potentially targeted to dev environments, it's in veeeeeeery alfa stage, so only WIKI exists reflecting current design and use cases. However I'd like to get some feedback to see if see the whole thing make a sense. Thanks

  • my 2 cents here, though I don't understand all the context, you might take a look at sparky - which is lightweight task runner with web console, so you may throw a bunch of jobs into it to do all the "bootstrapping" so that you may later repeat the same if required on any fresh environment ...