| 5 May 2026 | |||
| apogee_ntv | But I think I made the API for it nice enough | 23:23 | |
| The pain is mostly framework internal | 23:24 | ||
| SmokeMachine | apogee_ntv: Yes, I'm a WesTerm user, I like that a lot. I'll need to take some time to read all that to replicate that on Selkie::UI... having examples of usage makes it easier... (sorry for the delay) | 23:36 | |
| apogee_ntv | A lot of the doc pages have usage examples | 23:38 | |
| I think most of the widgets do | |||
| 6 May 2026 | |||
| disbot2 | <librasteve> SmokeMachine: Selkie::UI looks very nice. How are “routines” like App { … } and so on implemented… is it maybe a raku subroutine being passed a block? | 07:05 | |
| <librasteve> weekly: github.com/FCO/Selkie-UI/tree/main/examples | 07:06 | ||
| notable6 | librasteve, Noted! (weekly) | ||
| disbot2 | <librasteve> weekly: usercontent.irccloud-cdn.com/file/....35.36.gif | 07:07 | |
| notable6 | librasteve, Noted! (weekly) | ||
| SmokeMachine | librasteve: exactly… github.com/FCO/Selkie-UI/blob/72f3...kumod#L137 | 07:11 | |
| disbot2 | <librasteve> looks very nice … seems there is a fine line in raku between “pseudo DSL” … such as this, Air::Functional, Cro routes (by which I mean making a library that populates a lot of domain specific subroutines into standard Raku) and a “full DSL” with Grammar, Action and Slangify. | 07:18 | |
| SmokeMachine | I think there is a 3rd intermediate one, something like this: github.com/m-doughty/MCP-Server/bl...erver.raku or Red that uses “new kind of classes” | 07:26 | |
| That “subvertes” classes, comments, etc… | 07:28 | ||
| librasteve: 👆 | 08:30 | ||
| disbot2 | <librasteve> yeah - very good point | 09:04 | |
| SmokeMachine | librasteve: I'm thinking on playing with this idea: usercontent.irccloud-cdn.com/file/....55.03.gif | 09:58 | |
| librasteve: an look how simple the code is: www.irccloud.com/pastebin/Dsx4swqV/zelfie.raku | 10:00 | ||
| lizmat | nice | 10:08 | |
| my @items = %list.keys.sort.grep: *.so; # wouldn't it make sense to first grep and then sort ? | |||
| SmokeMachine | Yes, it would | ||
| disbot2 | <librasteve> that is lovely - ship it! | 10:17 | |
| <librasteve> what do you think of a DSL editor - is it too hard? (I heard that it may need new Selkie edit features) | 10:19 | ||
| SmokeMachine | librasteve: it will be shipped inside Selkie::UI… as a bin/ | 10:31 | |
| librasteve_: about the DSL editor, I still don’t get how it would/do. Could you explain a bit more about that, please? | 10:32 | ||
| disbot2 | <librasteve> something like this langium.org/showcase/arithmetics/ - It would take a mydsl.rakumod with Grammar and Actions and a heredoc for DSL source on the edit side (syntax hilites can wait for v2.0) where the preview pane is text made by the actions (eg just say ~$match.made) (other view filters such as pdf or html can wait for v3.0) | 10:48 | |
| <librasteve> even better would be a 3rd (openable) pane for Grammar::Tracer output | 10:50 | ||
| Guest6550 | I have been playing with raku for a bit. There is one thing I have a problem with, though raku is a pretty awesome language. I have this problem with regex where I want to match a string, but part of it I would need to negate as in this should not appear in the text I have no idea how to go about searching for this in the documentation in the first place | 11:01 | |
| SmokeMachine | librasteve_: something like what I wrote for grammars? | 11:11 | |
| lizmat | Guest6550: could you give an example of a string that should match, and one that shouldn't? | 11:13 | |
| Guest6550 | lizmat something like Randomtext.S01 should not be a match for the reason it contains S\d\d and Random.other.Text.2026 should be a match since it does not contain the S\d\d | 11:15 | |
| SmokeMachine | librasteve_: I plan to continue playing with that, but for now this is how it looks: usercontent.irccloud-cdn.com/file/....13.18.gif | ||
| but I plan to make the output prettier... I also think we could color each part of the output with the same color we color each token and the part it matches on the string... but I don't know how to add colors to editable texts... | 11:17 | ||
| lizmat | Guest6550: well, one way to do that is: !$string.contains(/ S\d\d /) so simply negating the result of .contains | 11:18 | |
| Guest6550 | lizmat: that seems much simpler than the regex solution I was trying to build :) | 11:19 | |
| lizmat | it's still a regex solution of sorts :-) | 11:20 | |
| .contains is just a handy shortcut if you just want to know *if* something is in a string, not necessarily what or where | 11:21 | ||
| and by negating that, if something is *not* in a string :-) | 11:22 | ||
| Guest6550 | yes, it does seem to be much more managable than building a more complex regex :-) | ||
| disbot2 | <librasteve> oh sorry I had forgotten that you already made selkie-ui-grammar-playground - fantastic (I blame days of working on byzantine FatRatStr rounding code) | 12:41 | |
| <librasteve> brilliant - I hope to get DSL back to the foreground soon | 12:42 | ||
| <melezhik.> news.ycombinator.com/item?id=48037017 | 14:57 | ||
| <melezhik.> Please vote if you like it , thanks | 14:58 | ||
| [Coke] | are there any http user agents in the ecosystem that respect 429 and will retry? | 15:26 | |
| (Doesn't look like HTTP::UserAgent does) | |||
| (nor Cro) | 15:28 | ||
| coleman | automatic retry is tricky, because you definitely need to know about the context of the application to make a good decision. in Go there's some libraries that wrap the standard client, but I always want to roll my own because HTTP is so low level, and I always need to do some funky config | 15:38 | |
| but Go isn't as expressive, so a wrapper library is probably going to be more powerful in Raku | |||
| [Coke] | I would definitely want guardrails on it (on x number of retrys, what's the algorithm for waiting, etc.) | 15:39 | |
| In the meantime, will write my own for this module that is using HTTP:UA and wrap all the http calls in it rather than doing a subclass of the UA | 15:40 | ||
| coleman | here is some inspiration for the kinds of considerations www.envoyproxy.io/docs/envoy/lates...etrypolicy | 15:42 | |
| envoy has all the complicated stuff laid out in its equally complicated configuration | 15:43 | ||
| [Coke] | nice, thanks. | 15:45 | |