|
00:08
arkiuat left
00:30
ds7832 left
00:31
arkiuat joined
00:36
arkiuat left
00:39
arkiuat joined
00:41
human_blip left
00:43
human_blip joined
00:44
arkiuat left
00:55
human_blip left
00:57
human_blip joined
01:00
arkiuat joined
01:04
kst left
01:06
arkiuat left
01:11
arkiuat joined
01:18
sibl joined
01:19
arkiuat left
01:25
arkiuat joined
01:43
topnep left
01:44
topnep joined
02:03
hulk joined
02:05
kylese left
02:12
arkiuat left
02:15
arkiuat joined
02:20
arkiuat left
02:22
arkiuat joined
02:34
Aedil joined
|
|||
| SmokeMachine | I'm rewriting my `Sourcing` (an module to facilitate writing EventSourcing code in Raku)... Could someone telme if this code makes any sense to anyone, please? www.irccloud.com/pastebin/ussVylOh/ | 02:52 | |
|
03:01
kylese joined,
hulk left
03:15
kylese left,
kylese joined
03:41
sibl left,
sibl joined
03:48
topnep left
03:50
sibl left,
topnep joined
03:58
sibl joined
04:35
sibl left
05:39
kjp left
05:41
kjp joined
05:46
kjp left,
kjp joined
05:54
topnep left
05:55
topnep joined
06:03
Sgeo left
08:00
abraxxa joined
08:34
justache left
|
|||
| librasteve | SmokeMachine: I took a quick look - I would say that the first half with the declarative OO stuff is very clean and tidy indeed | 08:38 | |
|
08:39
sibl joined
08:41
justache joined
|
|||
| as a newcomer, I am a bit mystified at the purpose of the is-deeply things - oh, I see that these are the tests (so that is all fine fine) | 08:41 | ||
| SmokeMachine | Yes, that’s a test. | 08:44 | |
| And that’s always calling `sourcing` because the “state” is created when you call that. Usually it will get all events for that commander/projection instantiate a new obj, run apply for all the events to recreate its state, unless it stores the last state as cache, so it can start from the last state and get only the events after that state. But by default, the plugin::memory will store the cache. | 08:48 | ||
|
08:49
abraxxa1 joined
|
|||
| SmokeMachine | I’m thinking if it would make sense to add a `is command` to some methods to the command itself get the events and run the apply and not need to call `sourcing`… | 08:50 | |
| librasteve | ok - that part is an emergent feature of the module, so suggest that you repeat these words in the doc ;-) | 08:51 | |
| SmokeMachine | Yes… I should… | 08:52 | |
|
08:52
dakkar joined
|
|||
| SmokeMachine | What do you think about the `is command`? | 08:52 | |
|
08:53
abraxxa left
09:03
librasteve_ joined
|
|||
| librasteve | I don't see is-command | 09:05 | |
| my initial thought on commander Account {...} was that this is a bit of a strange terminology - but bear in mind that I know absolutely nothing about the sourcing idea - so maybe this is customary | 09:07 | ||
| I then thought maybe manager Account {...} would be a better name for this, but then I am looking at a bank account example so I suspect that I am wrong in this for the general case and anyway manager is a very weak name | 09:08 | ||
| I guess that you could use method Xyz is command {...} in a regular class | 09:09 | ||
| so, on balance, I am fine with this terminology | |||
| Voldenet | SmokeMachine: it would be useful to have command validation, e.g. in `withdraw` you could end up with negative balance - some things may not be validable through simple `where` on a state of the object in case fields depend on each other | 09:28 | |
| I'm not sure how I'd express something like `has Rat $.amount where * >= $.allowed-negative-balance;` | 09:29 | ||
| maybe some explicit validation contract could be possible | 09:30 | ||
| SmokeMachine | librasteve_: on my 1st version, it was called `aggregation`… I’m still searching for a better name… | ||
| Voldenet | and imagine situations where commands have different constraints depending on the situation | 09:32 | |
| e.g. loan vs deposit | |||
| SmokeMachine | Voldenet: is the line 70 (www.irccloud.com/pastebin/ussVylOh) not enough? | 09:33 | |
| Voldenet | SmokeMachine: if you start two withdraws at the same time and constraint validation starts exactly at the same time for both operations, you'd end up with negative balance | 09:34 | |
| sadly custom phasers are impossible, but | |||
| something like `CONTRACT $!amount >= $amount` | 09:35 | ||
| librasteve_ | chatJippity says use `aggregate` www.irccloud.com/pastebin/Ml3Vg8qf | ||
| Voldenet | or `CONTRACT $!amount >= 0` | ||
| that says "after the operation or while merging effects of the operation into current snapshot, makes sure that this contract is satisfied" | 09:36 | ||
| librasteve_ | its pretty insistent that this is the customary term | ||
| SmokeMachine | That’s the thing… in theory you should never have that problem… it should only run 1 command at time and before any command run, it will apply all the events, so it will be on the most recent state… (I’m still working on that part of having only a single command running…) | ||
| Voldenet | but in practice that is severely limiting, you'll end up with distributed locks | 09:37 | |
| and if you're doing locking, why bother with event sourcing | |||
| event sourcing is great because it can be optimistically processed and merged after command execution | 09:38 | ||
| though using good old "row version" optimistic concurrency solves this more easily | 09:39 | ||
| that can pretty much make it non-locking in the usual case | |||
| SmokeMachine | Voldenet: yes, I’m thinking on adding that… but still thinking how to handle commands that generated same version events… | 09:40 | |
| Because both will return no error, right?! | 09:41 | ||
| Voldenet | hm, It depends, if you'd end up with invalid state, one should return error I think | 09:42 | |
| hm, maybe things like `INVARIANT $!version` would make it more sane for optimistic concurrency | 09:43 | ||
|
09:43
sibl left
|
|||
| Voldenet | so you can say "this field can't change, otherwise the result of the command will be invalid" | 09:43 | |
| SmokeMachine | I mean, currently the last event is on status 3, for exemple, than 2 commands run at the same time, and bot create events on version 4 and then both return ok. When apply handle the events, it will discard the second one, but both commands returned ok… | 09:45 | |
|
10:16
arkiuat left
10:39
arkiuat joined
10:43
arkiuat left
10:54
sibl joined
11:08
abraxxa joined
11:10
arkiuat joined
11:12
abraxxa1 left
11:15
arkiuat left
11:32
arkiuat joined
11:37
arkiuat left
11:40
arkiuat joined
11:45
arkiuat left
11:55
arkiuat joined
11:58
sibl left
12:00
arkiuat left
12:04
abraxxa1 joined
12:05
abraxxa2 joined
12:06
arkiuat joined
12:07
abraxxa left
12:09
abraxxa1 left
12:11
arkiuat left
12:20
arkiuat joined
12:25
arkiuat left
|
|||
| [Coke]_ | it's too late, but "subtest" feels like the wrong name for a thing that contains other tests. :) | 12:26 | |
|
12:27
[Coke]_ is now known as [Coke]
|
|||
| antononcube | I think the reasoning is how it looks in print out reports of "Test" -- each subtest gives just one line. | 12:28 | |
|
12:31
abraxxa joined
12:34
abraxxa2 left
|
|||
| [Coke] | I don't think it was reasoned for us, it was taken from TAP/P5. | 12:42 | |
| and at the time, changing it would have been confusing, for sure. | 12:43 | ||
|
12:43
arkiuat joined
|
|||
| antononcube | I forgot about TAP... | 12:44 | |
|
12:48
arkiuat left
|
|||
| librasteve | surely keeping the industry standard name is an unrakuian activity | 12:49 | |
|
12:51
arkiuat joined
12:56
arkiuat left
13:20
arkiuat joined
13:25
arkiuat left
13:30
elcaro left,
elcaro joined
|
|||
| [Coke] | You had to make a cutoff somewhere. :) | 13:32 | |
| Geth | raku.org: librasteve++ created pull request #300: Logos 2.0 |
13:33 | |
| librasteve | ^^ made a few design tweaks and changed a couple of logos - so merged directly to dev.raku.org | 13:38 | |
| will take 10-15 mins for the server to pick up the new image | 13:40 | ||
|
13:52
arkiuat joined
14:15
topnep left
14:16
topnep joined
14:49
ShimmerFairy left,
Pixi left
14:57
hvxgr_ joined
14:58
arkiuat left
|
|||
| Geth | raku.org/dev: 4 commits pushed by librasteve++ | 14:58 | |
|
15:07
Pixi joined
15:19
arkiuat joined
|
|||
| [Coke] | ew. github is automatically turning -- into an endash when entering a bug title | 15:26 | |
| (or is it my browser? maybe) | |||
| Done. | 15:30 | ||
| ww | |||
|
15:30
arkiuat left
|
|||
| [Coke] | How to get crag to convert between ºC/F ? | 15:34 | |
| coleman | macos might be responsible for the dash conversion (if you use macos) | 15:36 | |
| [Coke] | Tried several variants, this one seems the closest based on docs and other error messages: 51ºF.in: <ºC> | ||
| coleman | they have global text input settings. | ||
| [Coke] | coleman: I do | ||
| I have some manually under "Text Replacements" (which don't appear to be working in this iTerm, oddly. | 15:38 | ||
| that crag line dies with a variable I'm not even using: Error: Type check failed in binding to parameter '$x'; expected Real but got Physics::Measure::Angle (Physics::Measure::An...) | 15:39 | ||
| coleman | I just checked on my machine and there is a setting called "Use smart quotes and dashes" | ||
| [Coke] | Thanks!! | ||
|
15:40
arkiuat joined
|
|||
| [Coke] | anyone know who is running | 15:45 | |
| raku-knowledge-base.podlite.org ? | |||
|
15:46
librasteve_ left
|
|||
| lizmat | I would think Alexandr Zahatski | 15:47 | |
| github.com/zag | |||
|
15:49
arkiuat left
|
|||
| antononcube | We talked about A.Zahatski's work yesterday at the study group. | 15:49 | |
|
15:50
arkiuat joined
|
|||
| lizmat | antononcube any conclusions ? | 15:50 | |
|
15:52
librasteve_ joined
|
|||
| librasteve_ | notable6: weekly | 15:52 | |
| notable6 | librasteve_, 2 notes: 2026-03-12T09:34:39Z <librasteve_>: talk submissions to TPRC are open, deadline coming up ; 2026-03-15T13:35:24Z <librasteve>: discord.com/channels/5384078799804...7310893178 | ||
|
15:56
arkiuat left
15:57
arkiuat joined
|
|||
| antononcube | @lizmat Well, it was more in regard of one my topics "drop vi (you vi-addicts! You!) and use interactive Raku-ready-IDEs." | 15:57 | |
| So, the general idea is that his apps can be extended to execute Raku in a Literate Programming fashion. I talked A.Zahatski about that a few years ago, but nothing further has be done. (As far as I know.) | 15:59 | ||
| lizmat | thing is, a lot of the stuff I do is in the core... and IDEs are not ready to deal with that, afaik | 16:00 | |
| antononcube | 🤷♂️ it is fine. I am just trying to indicate how the dicussion started. | 16:01 | |
| (At that meeting.) | |||
| lizmat | understood. :-) | ||
| it's too bad that zag gave up on working together with Richard and Damian on further development of Rakudoc | 16:02 | ||
| antononcube | I used podlite only a few times. It is good but with Jupyter and Markdown I have the same functionalities. | ||
| And Jupyter and Markdown are more "universal" when comes to notebook / document conversion, and GitHub posts or blog posts. | 16:04 | ||
|
16:13
japhb left
16:17
arkiuat left
16:20
arkiuat joined
16:23
japhb joined
16:27
abraxxa1 joined
16:31
abraxxa left
|
|||
| librasteve_ | rakudoweekly.blog/2026/03/16/2026-...-day-2026/ | 16:34 | |
| lizmat | librasteve_++ | 16:35 | |
|
16:46
human_blip left
16:48
human_blip joined
16:54
abraxxa1 left
17:30
dakkar left
18:25
topnep left,
topnep joined,
gabiruh left
18:26
gabiruh joined
18:44
causal joined
18:46
librasteve_ left
19:05
sorenson left
19:08
sorenson joined
|
|||
| ab5tract | I use intellij when working on the core | 19:51 | |
|
19:57
Aedil left
21:42
Sgeo joined
21:57
sacomo joined
21:59
sacomo left
|
|||
| tbrowder | librasteve_: pm? | 22:22 | |
| tellable6 | tbrowder, I'll pass your message to librasteve_ | ||
|
22:34
topnep left
22:36
topnep joined
23:05
gabiruh left
23:09
gabiruh joined
23:29
johnjay left
23:34
johnjay joined
|
|||