00:48 melezhik_ joined 00:50 melezhik_ left 01:49 melezhik_ joined 01:51 melezhik_ left 02:04 Aedil joined 02:12 vrurg left, vrurg joined 02:28 arkiuat left 02:30 arkiuat joined, justache left
disbot6 <jubilatious1_98524> @Voldenet Why should that matter? A bad name is a bad name. 02:30
02:31 justache joined 02:35 arkiuat left 02:46 arkiuat joined 02:50 melezhik_ joined
disbot6 <frostcod> Hi, I am reading today's raku advent, and what's going on here? 02:51
<frostcod> what's going on here
<frostcod> cdn.discordapp.com/attachments/633...653be&
02:51 arkiuat left
disbot6 <frostcod> so many "&nbsp" 02:52
02:55 hulk joined, melezhik_ left, kylese left
Voldenet jubilatious1_98524: it's already there in Promise, but I'd argue that it serves similar purpose for promises 03:12
03:15 hulk left, kylese joined
Voldenet m: 2 + 3 andthen * + 5 andthen * ** 2 andthen .say 03:17
camelia 100
Voldenet m: await Promise.kept(2 + 3).andthen({ .result.Int + 5 }).andthen({ .result.Int ** 2 }).andthen({ .result.say }) 03:19
camelia 100
Voldenet new andthen lifting simply removes that .result
because this is only invoked when you get the result and promise is kept
03:20 arkiuat joined
Voldenet and since it's not specified yet, it can be fully changed 03:21
03:26 arkiuat left
disbot6 <jubilatious1_98524> @Voldenet My question is more general: are there design principles in Raku that guard against mistakes that were made with Perl? There were many complaints about 'overloading' in Perl, and I thought the Raku designers decided to steer clear of that. 03:26
Voldenet …overloading? 03:28
that's why I explicitly stated that nobody is proposing to change andthen 03:30
disbot6 <jubilatious1_98524> But you create confusion in the minds of new users who now have to differentiate dotted-.andthen from undotted-andthen. So you are "overloading" andthen (by adding the dotted"-.andthen form) even if it might not bother you so much. 03:43
Voldenet well: github.com/Raku/old-design-docs/bl...oading.pod
03:46 arkiuat joined
disbot6 <jubilatious1_98524> Well, you're talking programming and I'm talking linguistics. English has ~500,000 (?) words: can't you pick another one? What's wrong with the .subsequently() and .non-subsequently() keywords I suggested on Github? 03:47
Voldenet it's very lengthy and difficult to type 03:48
I'd rather have js-esque .then/.catch
disbot6 <jubilatious1_98524> My goodness!
Voldenet but .then is already taken and specified, unfortunately 03:49
disbot6 <jubilatious1_98524> Why does Raku have to be like C++ or js? Why can't you have Raku autocomplete make light work of it? 03:50
Voldenet it's still lengthy
03:51 melezhik_ joined
Voldenet because of that, you get monstrosities like `await Promise.kept(2 + 3).subsequently({ .Int + 5 }).subsequently({ .Int ** 2 }).subsequently({ .say })` 03:52
disbot6 <jubilatious1_98524> Oh yeah, andthen and notandthen are taken, too. They have nothing to do with Promises. If you want people to activate a different part of their brain when working with Promises, give them a different vocabulary to play with.
<jubilatious1_98524> m: "andthen".chars.say; "subsequently".chars.say; 03:53
Voldenet on the other hand having different api for very similar purpose
disbot6 <jubilatious1_98524> 5-character difference. 03:54
Voldenet it's a lot when working with promises
disbot6 <jubilatious1_98524> m: "notandthen".chars.say; "non-subsequently".chars.say; 03:55
Voldenet wait wait, "notandthen"?
.orelse
disbot6 <jubilatious1_98524> 6-character difference.
03:56 melezhik_ left
disbot6 <jubilatious1_98524> The converse of andthen is notandthen. This is where your proposal will confuse the he** out of new users. 03:56
<jubilatious1_98524> docs.raku.org/routine/notandthen 03:57
<jubilatious1_98524> docs.raku.org/language/operators#i...notandthen
Voldenet I'm not against having different naming 03:58
but it'd be nice to have it sane
and not do-on-kept({ }).do-on-broken({ }) 03:59
disbot6 <jubilatious1_98524> Sane...I agree!
<jubilatious1_98524> Ouch!
Voldenet also, newcomers won't be able to use promises at all 04:00
disbot6 <jubilatious1_98524> brb... 04:01
Voldenet sadly, I've seen seasoned programmers not using jquery's animations properly because of promises-based api 04:06
disbot6 <jubilatious1_98524> The point is to not scare-off new users by having documentation that is too difficult to read, what might be called "Snake-Eyes Syndrome".
<jubilatious1_98524> The blithe term "snake-eyes" comes from Steve Yegge's analysis of Perl's .. "Range Operator" : sites.google.com/site/steveyegge2/...uages-perl 04:07
<jubilatious1_98524> Yegge points out that it takes ~530 words to explain to a new user how to use the .. operator properly. Some learn it, some don't even try. 04:14
Voldenet heh, there's healthy balance between convenience and simplicity and perl took the convenience route on every turn 04:19
disbot6 <jubilatious1_98524> I'm not trying to harsh on Perl. 04:20
Voldenet I know, the point is that raku is not especially striving for convenience 04:23
disbot6 <jubilatious1_98524> What about .affirmed and .excused ?
Voldenet long, uncommon 04:27
disbot6 <jubilatious1_98524> Long? 04:29
Voldenet I'd think of something like `.ok/.do/.got .fail/.err/.oops` 04:30
disbot6 <jubilatious1_98524> (Oh for anyone reading along at home, I vehemently disagree with Yegge's attack on Larry Wall. Full stop.).
<jubilatious1_98524> My goodness! 04:31
Voldenet or more verbose .apply/.rescue
disbot6 <jubilatious1_98524> You affirm a promise, or make an excuse why one was broken. 04:33
<jubilatious1_98524> Better yet, a Promise is eventually fulfilled or unfulfilled. 04:34
Voldenet essentially, you .map the result or cause of the error 04:35
and promise is kept or broken
except, of course, Any.map is taken
disbot6 <jubilatious1_98524> According to whom? JS-people?
Voldenet in raku, it's already how it is 04:36
js calls it 'fullfilled' or 'rejected' and you have Promise.resolve to create fulfilled promise ;> 04:37
disbot6 <jubilatious1_98524> Hopefully JS spelled it fulfilled. I'd hate to think they've been needlessly typing an extra character! 😃 04:38
Voldenet fulfilled, even ;D 04:39
fully filled
04:39 lichtkind_ joined
Voldenet but of course, js has .then/.catch for promises 04:40
and you rarely see "fulfilled" anywhere
04:42 lichtkind left
Voldenet rust has .ok_then and .err_then, that is nice 04:43
disbot6 <jubilatious1_98524> It's pretty short compared to the German translation: bekräftigen and entschuldigen. 04:44
04:45 melezhik_ joined 04:47 mehbark left, mehbark joined, mehbark left, mehbark joined
Voldenet at least it's not worse than java's exceptionally 04:49
04:50 melezhik_ left
disbot6 <jubilatious1_98524> .okey-dokey? .otNay-eptKay? 04:52
04:52 melezhik_ joined
Voldenet .yay .nay, very playful but I'd have no idea what it does 04:52
disbot6 <jubilatious1_98524> I'm confused about tense then. In Grammars you have make and made, but with Promises you have kept without keep. 04:55
<jubilatious1_98524> Shouldn't it be keep(): kept, unkept? 04:56
04:56 melezhik_ left
Voldenet not only java is terrible, in C# there's promises api that I avoid with all my might 04:57
verbose and inconvenient - shares many qualities with raku's `then` 04:58
unkept would imply that the api hasn't finished 05:01
so you have <Planned Kept Broken>
Unkept would mean Planned or Broken 05:02
disbot6 <jubilatious1_98524> So why did you write await Promise.kept(2 + 3). yada yada yada? 05:03
<jubilatious1_98524> Should that be `await Promise.planned(2 + 3). 05:04
Voldenet Well, you create promise that's already in state "Kept"
so it's kept already
with .broken you create one that's already broken - planned is the one that was not finished 05:06
disbot6 <jubilatious1_98524> await Promise.planned(2 + 3) ?? do-this !! do-that;
Voldenet promise is already settled, you schedule what to do after it's kept or broken 05:08
in fact `Promise.kept(2 + 3).&await andthen .say` would work 05:10
05:18 Guest35 joined 05:20 Guest35 left
disbot6 <jubilatious1_98524> I can't read that. Oh well, time to re-read the docs! 05:29
05:54 melezhik joined 06:29 Aedil left 06:38 Aedil joined
ab5tract keep is a method on Vow 06:51
I honestly had never seen notandthen and I have no idea what the point of it is. 06:52
m: 0 notandthen “what”.say
camelia ( no output )
ab5tract Is there any difference between notandthen and orelse? 06:54
Both require undefined
The argument that andthen/orelse cannot be reused is not very convincing IMO
06:55 melezhik_ joined
ab5tract We re-use language terms for similar uses all the time 06:55
See the statement modifier forms of if/for/unless
Or start vs Promise.start 06:56
06:59 melezhik_ left
ab5tract Okay, this documentation rings a bell, now that I've had a sip of coffee: docs.raku.org/routine/notandthen 06:59
"The notandthen operator is a close relative of the without statement modifier, and some compilers compile without to notandthen, meaning these two lines have equivalent behavior:" 07:00
great, thanks, I really needed a different but (maybe) equal syntax
"At first glance, notandthen might appear to be the same thing as the orelse operator. The difference is subtle: notandthen returns Empty when it encounters a defined item (that isn't the last item), whereas orelse returns that item." 07:03
This kind of keyword is exactly the kind of design creep that gave Perl its difficult reputation 07:04
Any time an example needs to use a reduce operator to demonstrate some difference between two operators, an angel loses its wings and is banished to the hell of compiler maintenance 07:05
And I'm all out of wings
07:08 arkiuat left 07:21 arkiuat joined 07:30 arkiuat left 07:35 Geth joined
disbot6 <jubilatious1_98524> You're calling it design creep but it is because under some circumstances Raku enforces binary logic, while under other circumstances Raku enforces ternary logic. The pair notandthen vs orelse illustrates this dichotomy. 07:36
07:43 arkiuat joined 07:48 arkiuat left 07:56 melezhik_ joined 07:58 melezhik_ left 08:00 arkiuat joined
disbot6 <jubilatious1_98524> Also, the languages that will win out are the ones that are 1) the most powerful/capable and 2) easiest to train LLMs on. A massively-larger sub/method/function/routine vocabulary will make it easier to train LLMs on Raku. 08:00
08:02 mehbark left 08:03 mehbark joined 08:04 mehbark left, mehbark joined 08:05 arkiuat left 08:24 Sgeo left 08:34 arkiuat joined 08:39 arkiuat left
ab5tract I don't think that is a given at all 08:44
It seems just as likely to inspire even more hallucination
disbot6 <jubilatious1_98524> ~$ raku -e 'my @a = 1...14; for @a -> $a,$b { print ($a,$b,"\t"); ($a.is-prime orelse $b.is-prime).say };' 1 2 False 3 4 True 5 6 True 7 8 True 9 10 False 11 12 True 13 14 True
<jubilatious1_98524> ~$ raku -e 'my @a = 1...14; for @a -> $a,$b { print ($a,$b,"\t"); ($a.is-prime notandthen $b.is-prime).say };' 1 2 () 3 4 () 5 6 () 7 8 () 9 10 () 11 12 () 13 14 () 08:45
ab5tract I don't see any utility over grepping for
False and replacing with Empty
but clearly I'm not the intended user of notandthen 08:46
disbot6 <jubilatious1_98524> Maybe an easier example for the notandthen Docs page?
ab5tract Could be.. but 08:47
the sensors version has a "story" to it, which is kind of nice
FWIW I've only ever understood this operator family to be useful when one wants to topicalize the LHS for use on the RHS 08:48
So probably there is a lack of imagination on my part as to the utility of these things 08:49
08:53 evalable6 left
disbot6 <jubilatious1_98524> I'm trying to rewrite the examples I posted to return a prime number or () Empty, as opposed to prime number and 0. I think that's sort-of the intended use? I'll probably have to pick it up again tomorrow. 08:54
08:54 quotable6 left, committable6 left 08:57 evalable6 joined, melezhik_ joined, committable6 joined 08:59 quotable6 joined 09:01 melezhik_ left
ab5tract Thanks for your efforts here, jubi (may I call you that? your Discord name is hard to type out in its entirety) 09:01
I wonder if its better to add your example as a clarifier in the docs, rather than a replacement 09:02
My thinking here is that it eases the pressure off of your example to carry the weight of the entire explanation 09:03
disbot6 <jubilatious1_98524> (I've seen people type J1 ... if that helps). 09:04
<jubilatious1_98524> (or j1, or j-one. TMTOWTDI). 09:05
09:05 arkiuat joined
ab5tract J1: got it, thanks 09:06
disbot6 <jubilatious1_98524> Thanks for the feedback. Your call on the Docs. We have more eyeballs here and I'm sure others will chime in. 09:07
ab5tract Right now the docs are lacking an example which demonstrates the difference between orelse and notandthen when not chained 09:09
So I expect an example that does so would be welcome
09:09 bdju left 09:10 arkiuat left 09:11 Aedil left
disbot6 <librasteve> Apologies to the advent Raku email subscribers, early viewers and Marcel (the author) of today's raki-advnet.blog post for the Grinch has been sprinkling &nbsp s (with a missing ;) ... I am now running around with my Grinch hammer 09:12
ab5tract behold the Grinch hammer!
disbot6 <librasteve> ... hoping to restore colour vision
<librasteve> oh, I mean MorayJ, not Marcel 09:14
09:15 dakkar joined 09:16 librasteve_ joined 09:24 melezhik left 09:34 dakkar left 09:41 lizmat_ left 09:42 lizmat joined 09:48 arkiuat joined 09:52 melezhik joined 09:54 arkiuat left 09:55 melezhik_ joined 09:57 melezhik_ left 10:03 melezhik_ joined 10:08 melezhik_ left, melezhik_ joined 10:20 melezhik_ left, melezhik_ joined, arkiuat joined 10:24 bdju joined 10:25 arkiuat left 10:32 melezhik_ left, melezhik_ joined 10:47 melezhik_ left 10:49 arkiuat joined 10:54 arkiuat left 11:08 arkiuat joined 11:13 arkiuat left 11:17 sibl joined 11:22 sibl left, sibl joined 11:26 arkiuat joined 11:35 arkiuat left 11:51 arkiuat joined 11:56 arkiuat left 12:02 sibl left 12:12 melezhik left 12:16 librasteve_ left 12:19 arkiuat joined 12:23 arkiuat left 12:51 arkiuat joined 12:56 arkiuat left 13:07 arkiuat joined 13:12 arkiuat left
tbrowder cool article, too bad Wordpress has such a crappy editor. being able to upload a valid PDF file would be very slick... 13:34
i tried to comment but WP got hung up in a "loading...." loop 13:35
13:38 arkiuat joined
tbrowder i would love to see us have an advent blog site that would accept rakudoc or pdf or any of several aother well-known formats. i would contribute $ to the project. 13:38
tonyo i think has demoed something like that in an advent post a few years ago 13:42
13:43 arkiuat left
disbot6 <antononcube> @trbrowder Being able to upload a valid Jupyter notebook would be even slicker! 14:00
14:02 melezhik joined 14:03 swaggboi left 14:05 arkiuat joined 14:14 arkiuat left 14:19 swaggboi joined
disbot6 <librasteve> tbrowder: this is my dream for the HARC Stack - mainly due to the Muellenweg driven Wordpress implosion saga - I have had a link to this page raku-advent.blog/2019/12/02/crud-c...-tutorial/ in my bookmark favourites for a year now ... HARC can already deal well with code highlighting and markdown content (on raku.org), and Richard showed me a draft of his Rakudoc Air::Component last weekend ... SmokeMachine has 14:26
added permissions to Cromponent routes (v0.0.14), but I have not had a chance to move the pin up from 0.0.13 yet (Air::Component is a wrapper on Cromponent), arun is working on Red migrations. There is a well defined Air::Plugin interface (we can already exchange Rakudoc and HARC stack plugins such as Hilite). We are already at a point where if you want a custom component to (say) embed a PDF or a Jupyter Notebook viewer, then if you can
render it to HTML you can write one. Let me know and I will happily support that effort.
14:33 arkiuat joined 14:41 arkiuat left 14:53 arkiuat joined 14:57 orangebot joined 14:58 arkiuat left 15:02 Sgeo joined
disbot6 <librasteve> the Grinch hammer found a &nbsp (no ;) in the code for Hilite::Simple ... v0.0.4 is the fix - also i learned how to do Wordpress email preview 15:02
15:12 arkiuat joined 15:17 arkiuat left 15:18 arkiuat joined
disbot6 <antononcube> @librasteve So, now "Hilite::Simple" works with WordPress? 15:37
<antononcube> Meaning, exprorts / HTML code generated by "Hilite::Simple" if pasted in WordPress produces higlighted code. 15:38
ab5tract the Grinch hammer strikes again :) 15:40
ab5tract is a fan of the Grinch hammer 15:41
&nbsp; hunting always reminds me of the output of Microsoft FrontPage ;)
15:43 maskd left
timo frontpage had a "show me a graph of all the connections of my website" and that completely blew tiny timo's mind back then 16:03
disbot6 <librasteve> @antononcube - one thousand times yes - go zef install Hilite::Simple && hilite mycode.raku > mycode.html then paste the (very compressed) HTML into the HTML field of a Wordpress Custom HTML block 16:05
<librasteve> make sure you have Hilite::Simple v0.0.4
16:17 arkiuat left 16:20 arkiuat joined 16:36 andinus left, andinus joined 16:41 andinus left, andinus joined 16:47 andinus left, andinus joined 17:06 mahlay left 17:08 mahlay joined
tbrowder so if i have a way to get a pdf2html converter, its output is what i need first? 17:12
disbot6 <librasteve> I would just embed the PDF somehow - you know, like a Wordpress PHP plugin - but depends on your use case 17:26
Voldenet pdf is terrible format for web publishing, markdown is a bit saner but the best format for web publishing is *drumroll* html directly 18:11
it's as if it was created for web, amazing
pdf has binary compressed blobs of text, polygons, images, describes absolute coordinates - it's basically forcing the screen to render scrollable paper of specified format 18:15
and rendering markdown into html is surprisingly difficult, because of multiple markdown flavors, \t and \n in random order being interpreted differently :/
disbot6 <librasteve> Voldenet: on PDF, I agree - I gather that tom's use case would be to write a blog post as a PDF and then to translate it to HTML and serve as a webpage - I 110% agree that this is going to look very bad thanks to the reasons you outline 18:17
Voldenet an interesting thing for html - libreoffice writer has "preview in browser" option that renders pretty good html 18:21
the result is not perfect, but it's quite clean 18:22
disbot6 <librasteve> otoh, I think it is fairly common to see PDF files served as a webpage - or embedded in a page (often in a viewer where you can scroll / page)
Voldenet it's convenient for documents that are supposed to be printed, but doesn't render well on mobile sadly 18:24
disbot6 <librasteve> where I depart from is Markdown - I think if you simply use markdown as originally specified (# => h1, ## => h2, - => ul, links and so on) then it maps 1:1 to HTML and is much nicer to type and to read in the source
<librasteve> psibar-compressors.co.uk/technical/ by PDF viewer for Elementor 18:32
[Coke] I agree on markdown for simple formatting. easy, short. 18:40
Voldenet in markdown if you for example have blocks of code inside numbered lists, numbered lists may get reset or not for example, depending on the markdown parser 18:48
or if you have tables 18:49
[Coke] Yup, that's already too complex, agrred
disbot6 <librasteve> ++++ 18:50
Voldenet that's why for anything more complex I prefer html directly
18:52 melezhik left
disbot6 <antononcube> HTML code can be used in Markdown files. 18:54
<antononcube> Also, as far as I know tables are not standard Markdown feature. 18:55
<antononcube> Hence, using HTML tables makes sense. To a large extend that is why I implemented "Data::Translators", to be able to render Raku data structures to HTML, 18:56
<antononcube> R, Python, etc.
<antononcube> So, Raku arrays of hashmaps can be converted to HTML tables. 18:57
18:59 melezhik joined
tbrowder chatgpt tells me prog pdf2htmlEX was pretty good 19:00
disbot6 <antononcube> Hmm... ChatGPT can probably convert PDF to HTML pretty well. But for these conversions I would use pandoc. (Which may or may not use other pdf* programs. 19:03
Voldenet yeah tables are not standard sadly, so using html is valid idea too 19:05
disbot6 <librasteve> haha - I am very happy to support anyone to make a HARC plugin to do anything ... 19:06
<librasteve> HARC uses Text::Markdown ... no tables yet ... 19:10
tbrowder hm, git markdown does tables... 19:12
disbot6 <antononcube> @librasteve If your HARC uses my "Markdown::Grammar" then it will have tables.
<antononcube> @tbrowder Yes, GitHub supports tables and Mermaid diagrams. Very useful for documentation... 19:13
19:19 arkiuat left 19:25 arkiuat joined
tbrowder doing "raku --f 19:30
doing "raku --doc=Markdown soms 19:31
19:33 arkiuat left
tbrowder anyhow, that works pretty well with most of my tables. there is a bug i filed that's still opened but the use case was pretty weird 19:33
19:52 arkiuat joined, Pixi left, Pixi joined
disbot6 <librasteve> @antononcube - I have swapped out Text::Markdown for Markdown::Grammar - md tables now work (part of a major upgrade to Air so will take a few days to filter through) 20:27
tbrowder bril: @antonaoncube could improve Pod::To::Markdown 20:33
disbot6 <librasteve> @antononcube I guess this will work for jupyter -> html ... BUT the use case for markdown is "I am making a HARC stack website, I write a HEREDOC block in my raku source instead of writing content like Air::Functional librasteve.github.io/Air/docs/Air/...onal.html, it renders as a text component on the site" ... however the use case I see for jupyter is "here is a .pynb file, please render it as an embedded block 20:43
in an HTML page" - comment?
<antononcube> The Jupyter framework knows how to export Jupyter notebooks to Markdown. I have low-priority TODO item to program Jupyter to Markdown converter in Raku, but I have found much need for it so far. 21:02
<librasteve> well Air is about website, so Jupyter => HTML 21:03
<antononcube> I see then, yes, "Jupyter::Grammar" has to be implemented, with actions to Markdown, HTML, Org-mode, Pod6, and Mathematica. 🙂 21:05
<antononcube> As for the use case -- if I understand correctly -- of heredocs content being converted from Markdown to whatever (say, HTML) this can be done with the sub from-markdown for "Markdown::Grammar". 21:06
<antononcube> BTW, "Markdown::Grammar" convert Markdown files to Jupyter. That was easy to do, that is why I think "Jupyter::Grammar" would be easy to do also. 21:07
<librasteve> cdn.discordapp.com/attachments/633...0859f& 21:12
<antononcube> In case it is not clear/known -- a Jupyter notebook is "just" a JSON string. A JSON array of dictionaries (i.e. cells) with some conventions about the keys and values. 21:13
<librasteve> cdn.discordapp.com/attachments/633...b6f5d& 21:14
<librasteve> ^^ this is the code that I just committed 21:15
<librasteve> and how it is consumed (see raku.org/learn for the result)
<librasteve> Air is just a nice way to write websites in raku 21:16
<antononcube> I see -- great!
<librasteve> my point is that, in general, you are not going to take the .ipynb json and paste into a main jupyter q::to/END/; stanza ... more likely you will want to just "include" the .ipynb file eg in resources 21:18
<librasteve> no, not resources, but docs 21:19
21:20 social joined
disbot6 <antononcube> Which -- the way I see it -- means that you have a sub from-jupyter(to => ...) that you can use however you see fit. Right? 21:21
21:21 social left, social joined
disbot6 <librasteve> hmm - need to think of a better name - docs is used elsewhere - the concept I have is "here is a root dir, walk it and render as a tree of html pages with optional nav and breadcrumbs - filetypes supported are md, pynb, pdf, html 21:22
<librasteve> yes - pandoc/Markdown::Grammar/Jupyter::Grammar are all good engines 21:23
<librasteve> would run once on first access
21:24 social left
Voldenet that sounds amazing, consider customizable rendering 21:24
disbot6 <antononcube> What is the of higher priority: (1) implementation of "Jupyter::Grammar", or (2) finishing the advent article for Dec 6th ?
<librasteve> could point at a gh repo as the root
<antononcube> (Unfair question, I know...)
<librasteve> oh, mebbe rakudoc
<librasteve> 222222222222222 21:25
Voldenet e.g. `host-dir("/", :extensions(md => MarkdownRenderer.new, avi => FfmpegMp4, dwg => DwgToJpeg))` etc.
disbot6 <librasteve> .oO
Voldenet with some sane default implementations, but also some customizability 21:26
having one .render method could also mean that the rendering pipeline can be composed a bit 21:27
so `(md => ComposeRendering.new(AddBreadcrumbs.new, AddHtmlStyling.new, MarkdownRenderer.new)` 21:28
disbot6 <librasteve> s/render/RENDER/
Voldenet either would work, I'm unsure on whether binary files rendering should be supported or not 21:29
e.g. it'd be awesome to have font preview or autocad files work ootb
in browser
but that might even require rendering into multiple files
some of them binary
disbot6 <librasteve> github.com/librasteve/Air-Plugin-Hilite is one pattern, however, I think this deserves a different (more like a Cro transformer) pattern ... so maybe Air::Transformer::XXX 21:31
Voldenet so `/car.dwg` becomes html, but has also `/car.dwg/areas.js /car.dwg/preview.jpg` and so on
though I'm just throwing the ideas out, wouldn't want to make it too bloaty 21:32
disbot6 <librasteve> Air::Plugin:: already has HTML, SCRIPT, CSS, SCSS as an interface - would need to add PREVIEW maybe THUMB 21:35
Voldenet what I'm describing may as well be very out of scope, tbh. 21:36
21:36 social joined, social left
disbot6 <librasteve> the new thing would be "here's a root dir, propagate one child level to the parent nav" 21:37
Voldenet attaching files could be done with something like `method RENDER { add-file("preview.jpg", :bytes(Buf…)); img :src("preview.jpg") }` OR `method RENDER { add-file("preview.jpg", :renderer(DwgToJpeg.new) }`
so RENDER would return html, but also hint that it has "subfiles" 21:38
disbot6 <librasteve> no, your thinking is a stretch - but 100% on message
Voldenet also, there could be cases where buffering in-memory and range operator would be needed (FfmpegMp4 obviously, if you wanted to share proprietary digicam video for browsers) 21:39
erm, not buffering
disbot6 <librasteve> well - yeah - suggest we leave video streaming to v0.0.2 21:40
Voldenet or where you really want to host symlink to /proc/meminfo :p
and want to have it in realtime
disbot6 <antononcube> I thinking now that "Jupyter::Grammar" is misleading, since no grammar is used or leveraged. So, maybe "Jypyter::Converters" is better, but I do not like much either. 21:41
Voldenet I don't mean to implement dwg and mp4 conversion, just to make it possible via api somehow 21:42
disbot6 <librasteve> well, yes - a symlink to a streaming url (looks at wordpress youtube embed block)
Voldenet but now that I can imagine rendering directory as gallery, media host (a'la youtube), wiki pages through only various top-level renderers, it's amazing 21:43
disbot6 <librasteve> yep!! 21:46
<antononcube> @librasteve Coming soon: github.com/antononcube/Raku-Jupyte.../tree/main 21:51
<librasteve> ++ 22:15
22:42 melezhik left 23:08 eseyman left 23:11 manu_ joined 23:20 manu_ is now known as eseyman
disbot6 <librasteve> news.ycombinator.com/newest … please upvote DOSH 23:23
<librasteve> if you liked it …
23:23 librasteve_ joined
disbot6 <antononcube> Which one? 23:48
Voldenet it says dosh in the title 23:49
disbot6 <antononcube> Yeah, found it.
<antononcube> Hm... "LLM::DWIM" fails to install, when trying to install "dosh". 23:51
<antononcube> Correction -- "LLM::DWIM" installs, "Test::META" installs, but I have to run them separately. 23:54
<antononcube> After installing those, "dosh" installs too.
<antononcube> Hmm, "dosh" might be Linux-tested and not that much on macOS... 23:57
<antononcube> And yes, I like it -- it was in my TODO list try it out. 23:58
Voldenet I did 'zef install dosh' and it all installed on the first attempt 23:59