Welcome the channel on the development of Cro, a set of libraries for building reactive distributed systems, lovingly crafted to take advantage of all the Raku Programming Language has to offer (cro.services). This channel is being logged for historical purposes. Set by lizmat on 24 May 2021. |
|||
00:09
Pe_Elle joined
00:54
Pe_Elle left,
Pe_Elle joined
00:55
Pe_Elle left
00:56
Pe_Elle joined
00:57
Pe_Elle left
00:59
Pe_Elle joined
01:04
Pe_Elle left
01:27
Pe_Elle joined
01:36
Pe_Elle left
01:51
Pe_Elle joined
02:27
Pe_Elle left,
Pe_Elle joined
02:57
Pe_Elle left
03:02
Pe_Elle joined
03:16
Pe_Elle left
03:39
Pe_Elle joined
03:43
Pe_Elle left
04:04
Pe_Elle joined
04:42
Pe_Elle left
04:56
Pe_Elle joined
|
|||
SmokeMachine | librasteve: when you have some time, if you could take a look at my answer to your PR, please: github.com/FCO/Cromponent/pull/7#i...2563346884 | 05:51 | |
for doing that I had to wrap add-handler to be able to access route-set from inside the handler... does any one know a better way? | 05:53 | ||
06:51
Pe_Elle left
06:52
Pe_Elle joined
08:54
Pe_Elle left
|
|||
librasteve | lizmat: my initial guess was that this compile-dir is called on each cro run rebuild github.com/croservices/cro-webapp/...kumod#L110 | 10:01 | |
lizmat | that could well be it :-) | ||
librasteve | my new guess is that this monitor Cro::WebApp::Template::Repository::FileSystem::Reloading is used bu cro run github.com/croservices/cro-webapp/...kumod#L116 | 10:02 | |
lizmat | I'd suggest making an issue for it | 10:03 | |
librasteve | lizmat ++ (I have asked arun to do that already) | ||
the begumpura site they shared has (see my notes ^^) some other stuff in it that may be the botteneck and I would like to see that ruled out | 10:07 | ||
(eg Red database start command) | |||
also they may be running on an i286 | |||
10:31
sena_kun joined
10:32
Pe_Elle joined,
Pe_Elle left
10:33
Pe_Elle joined
12:24
Pe_Elle left
12:29
Pe_Elle joined
12:34
Pe_Elle left
12:50
Pe_Elle joined
13:51
Pe_Elle left
14:03
Pe_Elle joined
|
|||
SmokeMachine: i have checked the answer to my issue / PR and I am 100% happy with this change ... thank you for addressing the issue (which I think is a common case to have multiple route includes - so hopefully will make Cromponents even better for most) | 14:12 | ||
that said - I have been figthing a losing battle with Cro Templates and the Cromponent module over the holiday period | 14:13 | ||
at the time I wrote my post Day 18 – Happy™ Xmas I felt that Cromponents would be the cornerstone of my aim of 1. get to the point where I can build a website on Cro the right way ... of course the right way is the key thing here (and timtorwy - there is more than one right way) | 14:16 | ||
14:17
Pe_Elle left,
Pe_Elle joined
14:18
Pe_Elle left
14:24
Pe_Elle joined
|
|||
the things that led me in the Cromponent direction were ... (i) I want to build websites in a componetized way so that components would have LOB and would be reusable across a site (ie a navbar or search box on multiple pages) and across multiple sites (ii) there needs to be a way to populate a component with arguments and (iii) it would be great to map (HTMX) actions on a component via methods.... | 14:28 | ||
use Cromponent; class AComponent { has $.data; method RENDER { Q:to/END/ <h1><.data></h1> END } } | |||
14:29
Pe_Elle left
|
|||
^^ I reproduce the Cromponent synopsis here so that others can see what I mean in these comments | 14:29 | ||
simples | |||
so... what's not to like? | 14:33 | ||
gist.github.com/librasteve/af74f12...f1b0dc65b5 << this gist is pretty much what a Cromponent implementation of an HTML table looks like (at the time I wrote this I was keen to prove that Cromponent could handle nesting and I thought that it would be easy to refactor this into a less fully normalized design. | 14:37 | ||
then - on the road to completing this table example picocss.com/docs/table, I wanted to add THead for table and for row... | 14:42 | ||
gist.github.com/librasteve/abceefc...84c813eec9 <<< hmmm that's 89 lines for a non working example | 14:44 | ||
and then I tried to refactor that to an unnormalized component - you know one class does one thing ... this was (for me) very vexing and I eventually (after about 2 days of trying) gave up | 14:45 | ||
the issues were (i) crotmp does not support nested loops (afaict) so I hade to pace the cell iterations in a different class from the row iteration, (ii) only VERY limited manipulation of Cromponent attribute values can be done through the rules of attr initialisation - no TWEAK can be done and no changes in eg the RENDER method since all the crotmp rendering is done at use time and (iii) juggling the crotmp syntax | 14:49 | ||
and the attributes values across both use time and run time was mentally taxing (honestly I am a meat and ppotatoes developer and I was really struggling to work out how I could do what I wanted) | |||
then I can to add the row headers from the pico table example (just want the first cell to be in a th not in a td and realised that this would be 10 more lines of code some more classes HRow, HCell ... grrr | 14:51 | ||
so I stopped digging my hole and realised that I want the power of full raku when I build me components and thus decided that (while most of the great ideas in Crom,ponent were great (actions as methods etc), the presence of Cro Template was holding me back | 14:52 | ||
here is the table example (no row headers yet, but hopefully you get the idea) using HTML::Functional... gist.github.com/librasteve/b3e03cb...97127d92ee ... 34 lines instead of 89 and imo much more adaptable and maintainable.... | 14:54 | ||
sorry for the long rant ... this is by way of explaining why I am moving away form Cromponent for now ... I do not mean to minimize it's benefits and think that the Cro template world needs this too... | 14:55 | ||
15:04
Pe_Elle joined
15:13
Pe_Elle left
15:22
Pe_Elle joined
15:37
Pe_Elle left
15:38
Pe_Elle joined
|
|||
aruniecrisps | @librasteve i'll get my issue up tonight EST probably | 17:29 | |
i've had some other life updates that have been grabbing my attention lately | |||
or rather that i've had to address immediately | 17:30 | ||
librasteve | np - appreciate your thoughts on this and I do agree this needs attention! | ||
18:34
Pe_Elle left
18:49
Pe_Elle joined
18:54
Pe_Elle left
19:09
Pe_Elle joined
20:10
Pe_Elle left
20:50
Pe_Elle joined
20:54
Pe_Elle left
|
|||
SmokeMachine | librasteve: here is a implmentation of that table you linked here using Cromponents: github.com/FCO/Cromponent/blob/spr...table.raku | 21:09 | |
21:10
Pe_Elle joined
|
|||
librasteve | haha - and interesting to see how it looks - I respect the eating your own dog food vibe! | 21:13 | |
SmokeMachine | On that implementation you can pass arrays of arrays of strings to :head, :body, :foot, or instead of strings you can pass Cells and it will not be touched on instantiation… | 21:14 | |
About having to transform the <th>s, is there any other way of doing that? I mean, is there any other example of doing that in a different way using components? For example, is there an react example of doing a component for that table? How is that implemented? | 21:18 | ||
I don’t think crotmp does not accept nested loops… if that’s true, I think it should be changed… | 21:21 | ||
librasteve | kudos to your raku wrangling skills - I see that you did in Table submethod BUILD {...} what I had failed to do. here is my challenge -> do the same with HTML::Functional (aka the other way to write html embedded in raku) and tell me (as a user / consumer) do you prefer this or writing crotmp (to make a component)? | 21:23 | |
SmokeMachine | Another question: why can’t you use TWEAK? I don’t think anything from cromponents would break TWEAK()… | 21:27 | |
librasteve | btw did you make nested loops in crotmp work? Those wishing for more are encouraged to consider writing their logic outside of the template. says cro.raku.org/docs/reference/cro-we...nditionals | ||
SmokeMachine | I’ll try the nested loops when I’m back to my computer | 21:30 | |
librasteve | ok - tx | 21:31 | |
TWEAK works when I call Table.new: $[[1,2][3,4]] but I could not add eg :thead<left right> and somehow inject the behaviour to somehow make a head row - you have solved this with your BUILD method ... but this is an iceberg that expects component writers to be comfortable writing BUILD methods | 21:38 | ||
SmokeMachine | nested loops work: github.com/FCO/Cromponent/blob/spr...#L181-L187 | 22:02 | |
TWEAK should work as well... and isn't the case that if the user knows how to use TWEAK, they should also know how to use BUILD? | 22:04 | ||
22:12
Pe_Elle left
22:50
Pe_Elle joined
23:12
sena_kun left
23:54
Pe_Elle left
|