[00:40] *** librasteve_ left
[01:14] *** kylese left
[01:14] *** hulk joined
[01:35] *** topnep left
[01:37] *** topnep joined
[02:15] *** hulk left
[02:15] *** kylese joined
[03:24] *** vasko4535586 left
[03:28] *** vasko4535586 joined
[03:38] *** megeve_ left
[03:41] *** topnep left
[03:41] *** topnep joined
[06:04] *** Aedil joined
[07:51] *** topnep left
[07:53] *** topnep joined
[08:01] *** Aedil left
[08:04] <Voldenet> SmokeMachine: works for me, but I've peeked at the code – add some UI framework to the prompt or else you're going to get unmaintainable spaghetti with tons of vanilla js

[08:06] <Voldenet> for some reason AI tools don't mind writing 2000 lines of js instead of 300 lines of vue

[09:06] <disbot2> <librasteve> works for me - may I share at https://slangify.org/playground for now? [this is a work in progress site ... the idea is to do something similar to https://langium.org/playground/ and have a place to showcase all Raku DLS goodness ... so I think all I need to do is figure out how to wrap your code as an Air::Plugin and then we can host it there (perhaps need some safeguards as we try to spread the word)

[09:06] <disbot2> <librasteve> ]

[09:07] <disbot2> <librasteve> actually this morning I was just going to try and make a web version of what you have done already ;-)

[09:20] <SmokeMachine> Sure. There are a few changes I still plan on doing there…

[09:22] <SmokeMachine> I’m thinking to get the ast of the code and die if there are any node not related to grammar to make it a bit safer…

[09:27] *** librasteve_ joined
[09:28] <librasteve_> https://usercontent.irccloud-cdn.com/file/Kwb4x6Tp/Screenshot+2026-05-10+at+10.27.25.png

[09:28] <librasteve_> omg

[09:29] <disbot2> <librasteve> just taught me to change <ws> to <.ws> - amazing

[09:31] <disbot2> <librasteve> in fact I think the match output is MVP level (ideally I would add in the Action also and have a text output - so two new panes) ... and the raku hiliting in the Grammar pane is cool

[09:33] <librasteve_> fixed indent (my bad) https://usercontent.irccloud-cdn.com/file/aWcevgn8/Screenshot+2026-05-10+at+10.33.13.png

[09:39] <disbot2> <librasteve> it would be very cool if the STRING pane could also be hilited according to the token / rule names in the Grammar (and maybe strings and literals) - in other words same hiliter as the GRAMMAR pane, but throw in a new colour for the GRAMMAR token / ruke names???

[09:40] <disbot2> <librasteve> ok - its "live"

[09:41] <Voldenet> meh, if you're executing the code in raku anyway, you probably can't assume it's safe – nqp-js would be probably better fit

[09:41] <Voldenet> even if you validate the grammar, grammars itself can compute a lot

[09:42] <disbot2> <librasteve> have to go to https://slangify.org and click the nav item for now ... bear in mind that the current home page is just a throw-away (to illustrate my recent blog post) going forward it will have (much better) content

[09:45] *** Sgeo left
[09:47] <disbot2> <librasteve> what about running in a sandbox process (or vm container) and checking for death every couple of mins? may want to bump that process down the pri level too

[09:54] <SmokeMachine> librasteve_: now that's starable: http://187.77.178.93:3001/?g=dG9rZW4lMjBUT1AlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMjAlM0NsZXR0ZXIlM0UlMkIlMjAlN0QlMEF0b2tlbiUyMGxldHRlciUyMCUyMCUyMCUyMCU3QiUyMCUzQ3Zvd2VsJTNFJTIwJTdDJTdDJTIwJTNDY29uc29uYW50JTNFJTIwKiolMjAxLi4yJTIwJTdEJTBBdG9rZW4lMjB2b3dlbCUyMCUyMCUyMCUyMCUyMCU3QiUyMCUzQyU1QmFlaW91JTVEJTNFJTIwJTdEJTBBdG9rZW4lMjBjb25zb25hbnQlMjAlN0IlMjAlM0MlNUJiY2RmZ2hqa2xtbnBxcnN0dnd4eXolNUQlM0UlMjAlN0Q=&s=aGVsbG8=

[09:57] <SmokeMachine> I'm running it inside docker

[10:00] <disbot2> <librasteve> yeah I put a cheeky while True {} in the GRAMMAR box in one window - I would say the front end is well behaved (both browsers tell you they are reconnecting) and the back end recovered when I deleted the bad code - so some kind of process box should work with a watcher imo (but I am not a security expert) - the whole site (if we host on my server) is in a VM already too - so I think that DoS is the main risk, more against user errors than

[10:00] <disbot2> malicious folks) - thoughts / concerns?

[10:07] <Voldenet> generally you can't any run user code in backend safely and docker is not a security tool

[10:08] <SmokeMachine> I asked open code to run the grammar execution inside a different container with a timeout... let's see how well it goes...

[10:08] <Voldenet> I'm not saying it's easy to run copyfail inside raku grammar, but it's possible

[10:15] <Voldenet> as a matter of fact, VMs are not a security tool either, securely running any remote code is always risky

[10:15] <disbot2> <librasteve> if we can keep the risk modest and recover (or at least notify) then I am happy to try this (on slangify.org - or host on another machine) ... specifically not raku.org ... tbh I think that all web sandboxes are a potential nightmare - look at the shared code on glot.io for example

[10:16] <disbot2> <librasteve> shareable ++ , url length is a tad scary though!

[10:17] <Voldenet> url is just urlcomponent encoded base64 of the grammar

[10:18] <Voldenet> and string

[10:18] <disbot2> <librasteve> yeah - I thought is maybe - well scary is as scary does

[10:18] <disbot2> <librasteve> I like the idea that no server side storage needed

[10:19] <Voldenet> well, full link in compilerexplorer is even longer, it's not even base64-encoded

[10:21] <Voldenet> maybe if the code was compressed first, link length would be more tolerable

[10:23] <Voldenet> nah, it's not really helping - gzip/zstd both give you 170 base64 characters, it's still scary

[10:34] <disbot2> <librasteve> https://slangify.org/

[10:34] <disbot2> <librasteve> (still a wip!!)

[10:36] <disbot2> <librasteve> and another "small" request - please can the MATCH/TRACE pane get 1/2 the width when the other is closed

[10:40] *** vasko4535586 left
[10:45] <SmokeMachine> it was doing that... I asked to change... I can revert it... 

[11:03] <disbot2> <librasteve> tx

[11:03] <lizmat> librasteve_: re slangify.org:    why copy all of the python boilerplate in Raku ?

[11:06] <disbot2> <librasteve> okaay - didn't think I had - can you be specific about which block(s) - I guess I left the render block untouched and if that is the one you mean - a gist or a PR would be very welcome

[11:07] <disbot2> <librasteve> fwiw I want the parser to load an object (thus the Actionable module) ... since going forward I envision class Invoice {method pdf {...} method html {...}}

[11:18] <disbot2> <librasteve> -or- maybe my approach is muddle-headed and I should just render the Match ... hmmm lemme try that

[11:25] <lizmat> https://gist.github.com/lizmat/e59c97d9ca14bf31fd5da7b5e96650f7

[11:25] <lizmat> basically, use a heredoc for the render, and add some utility methods

[11:38] <disbot2> <librasteve> that's great - will fix - many thanks!!

[11:39] <disbot2> <librasteve> ¶afk for a bit

[12:28] <Voldenet> hm, but isn't the approach with building large array and then joining it faster?

[12:28] <Voldenet> In a lot of languages such approach doesn't precompute length, but incrementally increases buffer size multiple times, so I'm surprised

[12:30] <Voldenet> (ofc, I don't actually know how it works underneath)

[12:55] *** annamalai left
[12:55] *** annamalai joined
[12:58] <Voldenet> Huh, so I have compared these and the result is exactly the same

[12:58] <Voldenet> 584/s vs 583/s, so there's insignificant difference which otherwise doesn't matter

[12:59] <Voldenet> in rakuast's case, simple .join() performs better

[13:00] <Voldenet> nevermind, in the long test it's exactly the same

[13:01] <Voldenet> (I know that nobody asked, but I like numbers)

[13:37] <SmokeMachine> librasteve_: is the hiding looking better now?

[13:38] <librasteve_> perfect!

[13:40] <SmokeMachine> it's also timing out the requests and caching the result of the 20 last code requests

[13:41] <[Coke]> .ask el_che - hey, can you help resurrect the docker builds on raku/blin?

[13:41] <tellable6> [Coke], I'll pass your message to El_Che

[13:42] <[Coke]> .tell el_che they've been dead for about 6 years now.

[13:42] <tellable6> [Coke], I'll pass your message to El_Che

[14:06] <Voldenet> Eh, I wanted to use Selkie – imagine my disappointment when after updating everything and finally installing things I realized that it doesn't work under tmux… ;|

[14:07] <Voldenet> it works under tmux under screen though, I'm not going to think about it too much :>

[14:28] <disbot2> <librasteve> phew

[14:33] <Voldenet> heh, but 24-bit colors don't work under screen it seems sadly

[14:33] <Voldenet> understandable but disappointing

[14:35] <refactus> might try fiddling with the TERM env var, but I think notcurses has some known open issues wrt tmux, including the color thing

[14:39] <Voldenet> yeah, and since it's debian, the versions aren't probably the newest possible - I bet git-built notcurses + tmux may work actually

[14:40] <Voldenet> I remember waiting very long time for truetype colors inside terminal

[14:52] <refactus> notcurses has open issues and unmerged pull requests because of brokenness under tmux, so I wouldn't count on even the latest builds to work correctly. also looks like activity on notcurses has been really light in the past year

[14:55] <refactus> now that the data finally loaded from github, it looks like it hasn't hardly seen any activity since early 2022

[15:13] <Voldenet> eh, so it's fairly risky library at the moment

[15:35] *** abraxxa joined
[15:35] *** Aedil joined
[15:36] *** abraxxa left
[15:41] <librasteve_> ok - I did a comparison and heredoc lost (very narrowly) - other points taken on board https://www.irccloud.com/pastebin/znMpj81v

[15:48] *** belluzj joined
[15:52] <timo> it would be kind-of neat if we had a default .fmt for user-defined classes that let you put the names of attributes and methods in the format string, and that would also work as-expected for Positional and Associative of X ... :S

[15:53] <timo> well I guess .fmt is probably not the right peg to hang this off of

[15:54] <timo> maybe not very fitting to put this into core either?

[15:55] *** belluzj left
[16:04] <timo> `perldoc perlform` comes to mind

[16:06] <timo> https://github.com/japhb/Text-MiscUtils also has tables / columnisation

[16:06] <lizmat> https://raku.land/zef:raku-community-modules/Form   needs some TLC

[16:14] <avuserow> from the "this blogpost could've been a toot" department, my 2c on failures: https://avuserow.bearblog.dev/rakus-failures-are-a-great-success/

[16:14] *** belluzj joined
[16:16] <timo> oh that's cool. i've been a bit hot-and-cold on Failure

[16:17] <timo> I wonder if some kind of tooling to help figure out where failures can come from and where they would get triggered could help with the issues I think of

[16:20] <avuserow> I'm in Golang world for my day job so this is a nice middle ground between errors-as-values and exceptions IMO 

[16:22] *** belluzj left
[16:22] *** belluzj joined
[16:23] <avuserow> But I can imagine that they aren't great if you let the values propagate all over the code base

[16:24] *** belluzj left
[16:25] <lizmat> avuserow: nice, design reminds me of the friendly orange glow: was that intentional?

[16:26] <avuserow> It's one of their built-in templates, but for me the classic monochrome monitor is orange, not green, so that part is intentional

[16:26] *** belluzj joined
[16:27] *** belluzj left
[16:28] *** MasterDuke joined
[16:29] <avuserow> lizmat: just searched, is that a reference to PLATO? If so that's before my time but PLATO is from my  alma mater so that's another connection for me

[16:33] <timo> I have wanted to have something comparable to how you have to annotate methods in Java with the types of exceptions they can throw; in raku it can feel a little bit loose

[16:35] <disbot2> <melezhik.> @librasteve you can use this for Raku web site example - https://gist.github.com/melezhik/ac53ef21e30703567710c3715385736c

[17:30] *** Sgeo joined
[17:33] <disbot2> <librasteve> weekly: https://avuserow.bearblog.dev/rakus-failures-are-a-great-success/

[17:33] <notable6> librasteve, Noted! (weekly)

[17:36] <Voldenet> wow, a blog where you can simply upvote without all the logging in ceremony

[17:37] <disbot2> <melezhik.> @librasteve and this one - https://gist.github.com/melezhik/a0341dcf7475e4a4c9974c49a9c123b7

[17:37] <disbot2> <melezhik.> Both maybe out under security compliance checks

[17:45] <Voldenet> btw, does that check handle `Include /etc/ssh/sshd_config.d/*.conf` too?

[17:46] <Voldenet> it's kinda important because vps vendors simply add the file especially saying `PasswordAuthentication yes`

[17:47] <timo> hahaha yeah I saw that once :D

[17:47] <timo> sshd has a flag to parse all its config files and spit out the final assembled configuration, including following the actual rules it has for priorities / overrides

[17:48] <Voldenet> sshd -T

[17:49] <timo> in fact, many programs have something similar, and it's a fantastic QoL feature that more programs should get

[17:51] <Voldenet> yeah, nginx has exactly the same flag

[17:53] <disbot2> <librasteve> wonders if exegesis & apocalypses should be in Raku CCM?

[17:54] <disbot2> <librasteve> melezhik: thanks … I have no way of choosing one or the other … please tell me your preferred one

[17:54] *** justache left
[17:55] <disbot2> <librasteve> I’ll make a PR and request some reviews…

[17:58] *** justache joined
[18:01] <disbot2> <melezhik.> Yeah , guess we can just feed sshd -T into the check

[18:02] <disbot2> <melezhik.> @librasteve you can pick the first one ( sudoers )

[18:02] <disbot2> <librasteve> ok - thanks

[18:03] <disbot2> <melezhik.> It depends on how many space sparrow has on the examples page , but even one example is fine either way me )

[18:03] <disbot2> <melezhik.> either way me -> fine with me

[18:04] <disbot2> <melezhik.> Typo

[18:04] <disbot2> <librasteve> is it similar to all the other examples in raku.org?

[18:05] <disbot2> <librasteve> (the main page is the “examples page” and I want you to propose something that you think is going to fit in

[18:05] <disbot2> <librasteve> )

[18:08] *** itaipu left
[18:11] <disbot2> <melezhik.> I don’t know , it depends on what do you mean by similar . I guess in a sense it’s small snippet - yes, but it’s not pure Raku- it’s Sparrow task check DSL with invocation of Raku handler

[18:12] <lizmat> avuserow 

[18:12] <lizmat> indeed it was  :-)

[18:13] <lizmat> Go Illini!

[18:13] <disbot2> <melezhik.> Maybe you can add security tab here ?

[18:19] *** Guest32 joined
[18:21] *** Guest32 left
[18:45] <SmokeMachine> librasteve_: what do you think about this? https://usercontent.irccloud-cdn.com/file/ErsKrHqL/image.png

[19:00] <librasteve_> that’s great - does shareable bring in both the GRAMMAR and ACTIONS?

[19:18] <SmokeMachine> librasteve_: 

[19:18] <SmokeMachine> http://187.77.178.93:3001/?g=dW5pdCUyMGdyYW1tYXIlMjBNeUdyYW1tYXIlM0IlMEElMEF0b2tlbiUyMFRPUCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUyMCUzQ2xldHRlciUzRSUyQiUyMCU3RCUwQXRva2VuJTIwbGV0dGVyJTIwJTIwJTIwJTIwJTdCJTIwJTNDdm93ZWwlM0UlMjAlN0MlN0MlMjAlM0Njb25zb25hbnQlM0UlMjAlN0QlMEF0b2tlbiUyMHZvd2VsJTIwJTIwJTIwJTIwJTIwJTdCJTIwJTNDJTVCYWVpb3UlNUQlM0UlMjAlN0QlMEF0b2tlbiUyMGNvbnNvbmFudCUyMCU3QiUyMCUzQyU1QmJjZGZnaGprbG1ucHFyc3R2d3h5eiU1RCUzRSUyMCU3RA%3D%3D&s=aGVsbG8

[19:18] <SmokeMachine> %3D&a=Y2xhc3MlMjBCbGElMjAlN0IlMEElMDloYXMlMjAlMjQubGV0dGVyJTNCJTBBJTA5aGFzJTIwJTI0LnR5cGUlM0IlMEElN0QlMEFjbGFzcyUyMEFjdCUyMCU3QiUwQSUwOW1ldGhvZCUyMFRPUCglMjQlMkYpJTIwJTdCJTBBJTA5JTA5bWFrZSUyMCU0MCUzQ2xldHRlciUzRS5tYXAlM0ElMjAqLm1hZGUlMEElMDklN0QlMEElMDltZXRob2QlMjBsZXR0ZXIoJTI0JTJGKSUyMCU3QiUwQSUwOSUwOW1ha2UlMjBCbGEubmV3JTNBJTBBJTA5JTA5JTA5JTNBdHlwZSglMjQlM0N2b3dlbCUzRSUyMCUzRiUzRiUyMCUyMnZvd2VsJTIyJTIwISElMjAlMjJjb25zb25hbnQlMjIpJTJDJTBBJTA5J

[19:18] <SmokeMachine> TA5JTA5JTNBbGV0dGVyKH4oJTI0JTNDdm93ZWwlM0UlMkYlMkYlMjQlM0Njb25zb25hbnQlM0UpKSUwQSUwOSU3RCUwQSU3RA%3D%3D

[19:18] <SmokeMachine> it broke it in several messages... :(

[19:19] <disbot2> <librasteve> lol

[19:19] <SmokeMachine> https://shorturl.at/Xq9fE

[19:21] <disbot2> <librasteve> yeah - think we gonna need a shorturl service - but only really need to prime the various examples so can do that by hand

[19:25] <SmokeMachine> maybe I'll need to add an sqlite to that...

[19:49] <disbot2> <librasteve> https://shorturl.at/dIhJx

[19:50] <disbot2> <librasteve> this is very close (I had to rewrite the Action) - but the MADE box seems not to like \n

[19:56] <SmokeMachine> librasteve_: should it be loading this?https://shorturl.at/dIhJx

[19:57] <SmokeMachine> librasteve_: should it be loading this? https://usercontent.irccloud-cdn.com/file/eeIUFoZo/CleanShot%202026-05-10%20at%2020.57.06%402x.png

[19:57] <disbot2> <librasteve> sorry must &afk

[19:58] <SmokeMachine> :+1

[19:58] <SmokeMachine> 👍

[20:53] *** Aedil left
[21:33] *** MasterDuke left
[22:31] *** topnep left
[22:31] *** topnep joined
[22:48] <ugexe> m: sub f { my $x = Failure.new(X::AdHoc.new(:payload("boom"))); $x.so; $x }; f().handled; module M:ver(f()) { }; say M.^ver.gist;

[22:48] <evalable6> ugexe, rakudo-moar 13fcc50e7: OUTPUT: «vHANDLED.boom.in.code.at.tmp.upOu_wWMyS.line.1.…»

[22:48] <evalable6> ugexe, Full output: https://gist.github.com/4b90d469684fdb744748278bc398ab98

[23:14] <ugexe> i think im going to make that throw in rakuast

[23:19] <SmokeMachine> librasteve_: http://187.77.178.93:3001/d85043c9d35d88b7b5854072b6ca08682a64e1a7

