00:40 librasteve_ left 01:14 kylese left, hulk joined 01:35 topnep left 01:37 topnep joined 02:15 hulk left, kylese joined 03:24 vasko4535586 left 03:28 vasko4535586 joined 03:38 megeve_ left 03:41 topnep left, topnep joined 06:04 Aedil joined 07:51 topnep left 07:53 topnep joined 08:01 Aedil left
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:04
for some reason AI tools don't mind writing 2000 lines of js instead of 300 lines of vue 08:06
disbot2 <librasteve> works for me - may I share at slangify.org/playground for now? [this is a work in progress site ... the idea is to do something similar to 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
<librasteve> ]
<librasteve> actually this morning I was just going to try and make a web version of what you have done already ;-) 09:07
SmokeMachine Sure. There are a few changes I still plan on doing there… 09:20
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:22
09:27 librasteve_ joined
librasteve_ usercontent.irccloud-cdn.com/file/....27.25.png 09:28
omg
disbot2 <librasteve> just taught me to change <ws> to <.ws> - amazing 09:29
<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:31
librasteve_ fixed indent (my bad) usercontent.irccloud-cdn.com/file/....33.13.png 09:33
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:39
<librasteve> ok - its "live" 09:40
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
even if you validate the grammar, grammars itself can compute a lot
disbot2 <librasteve> have to go to 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:42
09:45 Sgeo left
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:47
SmokeMachine librasteve_: now that's starable: 187.77.178.93:3001/?g=dG9rZW4lMjBUT...s=aGVsbG8= 09:54
I'm running it inside docker 09:57
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
malicious folks) - thoughts / concerns?
Voldenet generally you can't any run user code in backend safely and docker is not a security tool 10:07
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
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
<librasteve> shareable ++ , url length is a tad scary though! 10:16
Voldenet url is just urlcomponent encoded base64 of the grammar 10:17
and string 10:18
disbot2 <librasteve> yeah - I thought is maybe - well scary is as scary does
<librasteve> I like the idea that no server side storage needed
Voldenet well, full link in compilerexplorer is even longer, it's not even base64-encoded 10:19
maybe if the code was compressed first, link length would be more tolerable 10:21
nah, it's not really helping - gzip/zstd both give you 170 base64 characters, it's still scary 10:23
disbot2 <librasteve> slangify.org/ 10:34
<librasteve> (still a wip!!)
<librasteve> and another "small" request - please can the MATCH/TRACE pane get 1/2 the width when the other is closed 10:36
10:40 vasko4535586 left
SmokeMachine it was doing that... I asked to change... I can revert it... 10:45
disbot2 <librasteve> tx 11:03
lizmat librasteve_: re slangify.org: why copy all of the python boilerplate in Raku ?
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:06
<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:07
<librasteve> -or- maybe my approach is muddle-headed and I should just render the Match ... hmmm lemme try that 11:18
lizmat gist.github.com/lizmat/e59c97d9ca1...b5e96650f7 11:25
basically, use a heredoc for the render, and add some utility methods
disbot2 <librasteve> that's great - will fix - many thanks!! 11:38
<librasteve> ¶afk for a bit 11:39
Voldenet hm, but isn't the approach with building large array and then joining it faster? 12:28
In a lot of languages such approach doesn't precompute length, but incrementally increases buffer size multiple times, so I'm surprised
(ofc, I don't actually know how it works underneath) 12:30
12:55 annamalai left, annamalai joined
Voldenet Huh, so I have compared these and the result is exactly the same 12:58
584/s vs 583/s, so there's insignificant difference which otherwise doesn't matter
in rakuast's case, simple .join() performs better 12:59
nevermind, in the long test it's exactly the same 13:00
(I know that nobody asked, but I like numbers) 13:01
SmokeMachine librasteve_: is the hiding looking better now? 13:37
librasteve_ perfect! 13:38
SmokeMachine it's also timing out the requests and caching the result of the 20 last code requests 13:40
[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
[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
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:06
it works under tmux under screen though, I'm not going to think about it too much :> 14:07
disbot2 <librasteve> phew 14:28
Voldenet heh, but 24-bit colors don't work under screen it seems sadly 14:33
understandable but disappointing
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:35
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:39
I remember waiting very long time for truetype colors inside terminal 14:40
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:52
now that the data finally loaded from github, it looks like it hasn't hardly seen any activity since early 2022 14:55
Voldenet eh, so it's fairly risky library at the moment 15:13
15:35 abraxxa joined, Aedil joined 15:36 abraxxa left
librasteve_ ok - I did a comparison and heredoc lost (very narrowly) - other points taken on board www.irccloud.com/pastebin/znMpj81v 15:41
15:48 belluzj joined
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:52
well I guess .fmt is probably not the right peg to hang this off of 15:53
maybe not very fitting to put this into core either? 15:54
15:55 belluzj left
timo `perldoc perlform` comes to mind 16:04
github.com/japhb/Text-MiscUtils also has tables / columnisation 16:06
lizmat raku.land/zef:raku-community-modules/Form needs some TLC
avuserow from the "this blogpost could've been a toot" department, my 2c on failures: avuserow.bearblog.dev/rakus-failur...t-success/ 16:14
16:14 belluzj joined
timo oh that's cool. i've been a bit hot-and-cold on Failure 16:16
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:17
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:20
16:22 belluzj left, belluzj joined
avuserow But I can imagine that they aren't great if you let the values propagate all over the code base 16:23
16:24 belluzj left
lizmat avuserow: nice, design reminds me of the friendly orange glow: was that intentional? 16:25
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
16:26 belluzj joined 16:27 belluzj left 16:28 MasterDuke joined
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:29
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:33
disbot2 <melezhik.> @librasteve you can use this for Raku web site example - gist.github.com/melezhik/ac53ef21e...715385736c 16:35
17:30 Sgeo joined
disbot2 <librasteve> weekly: avuserow.bearblog.dev/rakus-failur...t-success/ 17:33
notable6 librasteve, Noted! (weekly)
Voldenet wow, a blog where you can simply upvote without all the logging in ceremony 17:36
disbot2 <melezhik.> @librasteve and this one - gist.github.com/melezhik/a0341dcf7...49a9c123b7 17:37
<melezhik.> Both maybe out under security compliance checks
Voldenet btw, does that check handle `Include /etc/ssh/sshd_config.d/*.conf` too? 17:45
it's kinda important because vps vendors simply add the file especially saying `PasswordAuthentication yes` 17:46
timo hahaha yeah I saw that once :D 17:47
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
Voldenet sshd -T 17:48
timo in fact, many programs have something similar, and it's a fantastic QoL feature that more programs should get 17:49
Voldenet yeah, nginx has exactly the same flag 17:51
disbot2 <librasteve> wonders if exegesis & apocalypses should be in Raku CCM? 17:53
<librasteve> melezhik: thanks … I have no way of choosing one or the other … please tell me your preferred one 17:54
17:54 justache left
disbot2 <librasteve> I’ll make a PR and request some reviews… 17:55
17:58 justache joined
disbot2 <melezhik.> Yeah , guess we can just feed sshd -T into the check 18:01
<melezhik.> @librasteve you can pick the first one ( sudoers ) 18:02
<librasteve> ok - thanks
<melezhik.> It depends on how many space sparrow has on the examples page , but even one example is fine either way me ) 18:03
<melezhik.> either way me -> fine with me
<melezhik.> Typo 18:04
<librasteve> is it similar to all the other examples in raku.org?
<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
<librasteve> )
18:08 itaipu left
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:11
lizmat avuserow 18:12
indeed it was :-)
Go Illini! 18:13
disbot2 <melezhik.> Maybe you can add security tab here ?
18:19 Guest32 joined 18:21 Guest32 left
SmokeMachine librasteve_: what do you think about this? usercontent.irccloud-cdn.com/file/.../image.png 18:45
librasteve_ that’s great - does shareable bring in both the GRAMMAR and ACTIONS? 19:00
SmokeMachine librasteve_: 19:18
187.77.178.93:3001/?g=dW5pdCUyMGdyY...;s=aGVsbG8
%3D&a=Y2xhc3MlMjBCbGElMjAlN0IlMEElMDloYXMlMjAlMjQubGV0dGVyJTNCJTBBJTA5aGFzJTIwJTI0LnR5cGUlM0IlMEElN0QlMEFjbGFzcyUyMEFjdCUyMCU3QiUwQSUwOW1ldGhvZCUyMFRPUCglMjQlMkYpJTIwJTdCJTBBJTA5JTA5bWFrZSUyMCU0MCUzQ2xldHRlciUzRS5tYXAlM0ElMjAqLm1hZGUlMEElMDklN0QlMEElMDltZXRob2QlMjBsZXR0ZXIoJTI0JTJGKSUyMCU3QiUwQSUwOSUwOW1ha2UlMjBCbGEubmV3JTNBJTBBJTA5JTA5JTA5JTNBdHlwZSglMjQlM0N2b3dlbCUzRSUyMCUzRiUzRiUyMCUyMnZvd2VsJTIyJTIwISElMjAlMjJjb25zb25hbnQlMjIpJTJDJTBBJTA5J
TA5JTA5JTNBbGV0dGVyKH4oJTI0JTNDdm93ZWwlM0UlMkYlMkYlMjQlM0Njb25zb25hbnQlM0UpKSUwQSUwOSU3RCUwQSU3RA%3D%3D
it broke it in several messages... :(
disbot2 <librasteve> lol 19:19
SmokeMachine shorturl.at/Xq9fE
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:21
SmokeMachine maybe I'll need to add an sqlite to that... 19:25
disbot2 <librasteve> shorturl.at/dIhJx 19:49
<librasteve> this is very close (I had to rewrite the Action) - but the MADE box seems not to like \n 19:50
SmokeMachine librasteve_: should it be loading this?shorturl.at/dIhJx 19:56
librasteve_: should it be loading this? usercontent.irccloud-cdn.com/file/...6%402x.png 19:57
disbot2 <librasteve> sorry must &afk
SmokeMachine :+1 19:58
👍
20:53 Aedil left 21:33 MasterDuke left 22:31 topnep left, topnep joined
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 vHANDLED.boom.in.code.at.tmp.upOu_wWMyS.line.1.…
ugexe, Full output: gist.github.com/4b90d469684fdb7447...8bc398ab98
ugexe i think im going to make that throw in rakuast 23:14
SmokeMachine librasteve_: 187.77.178.93:3001/d85043c9d35d88b7...682a64e1a7 23:19