🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 6 September 2022. |
|||
00:00
reportable6 left
00:02
jrjsmrtn_ left
00:03
reportable6 joined
00:17
jrjsmrtn joined
00:23
askmeaboutloom joined
00:24
jrjsmrtn left
00:25
euandreh left
00:28
euandreh joined
00:40
jrjsmrtn joined
00:48
euandreh left
01:09
euandreh joined
01:18
jpn joined
01:24
jpn left
|
|||
SmokeMachine | I’m playing with a new project for writing configuration with Raku and make it easy to do the changes needed live inside the code. This is just my first commit, but I like how it’s going… fosstodon.org/@smokemachine/110687351925396075 | 02:19 | |
02:24
linkable6 left,
evalable6 left,
evalable6 joined
|
|||
Voldenet | SmokeMachine: first of all and most importantly, why not use json, yaml or xml? | 02:25 | |
or toml | |||
02:27
linkable6 joined,
teatwo left
02:28
teatwo joined
02:33
askmeaboutloom left,
askmeaboutloom joined
02:34
askmeaboutloom left,
tea3po joined
|
|||
Voldenet | I get it that rakuconfig is actually raku code, and using attribute accessors uses FALLBACK – it's neat, but | 02:35 | |
since it's code, someone might be debugging the config at some point | |||
which sounds like a pain to maintain in the long run | 02:36 | ||
antononcube | @Voldenet I was reaching similar conclusion(s) earlier today -- using JSON for "computational Markdown" plugin specifications (instead of Raku.) | ||
Voldenet | I once did write config system that used javascript, it was pure hell for admins :/ | 02:37 | |
02:37
teatwo left
|
|||
antononcube | Did the admins deserve it? | 02:37 | |
Voldenet | No, nobody deserves using js in configs | ||
it's medieval-level torture | 02:38 | ||
antononcube | Or you just did for the love of JavaScript? | ||
Ah, ok. 🙂 | |||
Voldenet | I honestly thought it would be a good idea, but after having to maintain configurations of configurations | ||
I scrapped it all | |||
antononcube | It was JS-love, then. | 02:39 | |
Voldenet | but imagine, if you have one variable, you can simply define that variable and use it | ||
instead of copying it twice… :) | 02:40 | ||
antononcube | There is a UNIX rule to have "smart data" and "dumb algorithms". So, I am not sure can say that using Raku -- or JavaScript -- for configurations is against that rule, or adheres to it. | 02:41 | |
@Voldenet I think what you are saying is that using Raku in configuration files, would imply making unit tests for the configuration files themselves. | 02:43 | ||
Voldenet | indeed | ||
antononcube | @Voldenet Which, would mean the overall algorithm becomes too clever... | 02:44 | |
Voldenet | the overall algorithm shifts the weight of maintaining code to people who can't maintain the code | 02:45 | |
antononcube | Right! | ||
03:04
rf left
03:15
guifa joined
03:22
guifa left
03:25
guifa joined
03:53
guifa left
03:57
guifa joined
04:28
guifa left
04:36
guifa joined
04:38
guifa left
05:38
benchable6 left,
squashable6 left,
reportable6 left,
notable6 left,
quotable6 left,
bloatable6 left,
coverable6 left,
greppable6 left,
committable6 left,
tellable6 left,
shareable6 left,
releasable6 left,
unicodable6 left,
linkable6 left,
sourceable6 left,
bisectable6 left,
evalable6 left,
statisfiable6 left,
nativecallable6 left,
notable6 joined,
nativecallable6 joined
05:39
committable6 joined,
linkable6 joined,
evalable6 joined,
greppable6 joined,
unicodable6 joined,
bisectable6 joined
05:40
benchable6 joined,
bloatable6 joined,
statisfiable6 joined,
tellable6 joined,
quotable6 joined,
reportable6 joined,
coverable6 joined,
releasable6 joined
05:41
sourceable6 joined,
shareable6 joined,
squashable6 joined
06:00
reportable6 left,
reportable6 joined
06:03
nine left,
m_athias left,
nine joined,
m_athias joined
06:06
willthechill left
06:08
abraxxa joined
06:18
euandreh left
06:21
euandreh joined
|
|||
SmokeMachine | Voldenet: I think that’s more flexible, it can be harder in some cases, but it’s more flexible. For example, I can’t see vim using json as config, or emacs, there are several window managers also using the same languages for its code and its configuration, as well “package managers “/“system managers” (nixos, guix). I started playing with this project because I’m planing writing a “home manager” to manage my | 06:48 | |
modules locally installed, my project repositories on my home, my dot files, etc… and I thought using Raku for its configuration would make it easier… | |||
07:21
evalable6 left
07:24
evalable6 joined
07:30
discord-raku-bot left,
discord-raku-bot joined
07:35
Sgeo left
07:48
sena_kun joined
08:00
jpn joined
08:04
jpn left
08:10
squashable6 left
08:13
squashable6 joined
08:35
jpn joined
|
|||
nemokosch | I don't think you can stop people from being stupid | 09:33 | |
and definitely not merely by offering them less choices | 09:34 | ||
09:35
linkable6 left,
evalable6 left
|
|||
also, I think it should be just discouraging enough how bloated this "configuration format industry" is already | 09:35 | ||
09:36
linkable6 joined
|
|||
in the case of YAML, you might even hear people encouraging the use of predefined functions to be executed within the configuration itself so it's already happening | 09:36 | ||
09:37
jpn left
|
|||
El_Che | lo | 09:37 | |
SmokeMachine: what's the scope? Something puppet like specific for raku projects? | |||
09:38
evalable6 joined
|
|||
SmokeMachine | El_Che: more like nix… storing different generations on dirs and create links on home for the files… | 09:40 | |
El_Che | no experience there | 09:41 | |
SmokeMachine | El_Che: it could be said that it’s like a functional puppet… and you can do rollbacks… | 09:42 | |
El_Che | so the scope is not raku projects but the developer's environment? | ||
09:42
jpn joined
|
|||
SmokeMachine | This would be the Raku project I would use this configuration module for… (I would also use that on my tiled raku window manager if I write it someday…) | 09:44 | |
El_Che: ^^ | |||
09:45
abraxxa left
|
|||
SmokeMachine | El_Che: I may have misunderstood your question? The Configuration should be something generic that could be used on any Raku project. And My first project using it will, probably, be this home dir manager which the scope is my environment and I suppose it could be useful for other developers... | 09:47 | |
MitarashiDango[m | I'm at the airport to head for the con, my flight is both delayed and overbooked 😭 | 09:51 | |
10:06
razetime joined,
ecocode left
|
|||
nemokosch | overbooking (or overselling, rather) is such a disgusting habit 💀 | 10:06 | |
10:08
ecocode joined
|
|||
xinming_ | m: (1..3 Z, "a".."c").raku.say; | 10:20 | |
camelia | ((1, "a"), (2, "b"), (3, "c")).Seq | ||
xinming_ | In this example, It generates pairs, Is there a way to make Z meta operator generate a list without pairs? | 10:21 | |
we can do postprocessing afterwards, But that's now I wanted. :-) | |||
dutchie | do you want that to give (1, "a", 2, "b", 3, "c") without the nesting? | 10:23 | |
xinming_ | Yea | 10:24 | |
Hmm, I don't mean the pairs, Z=> generates list of pairs, Z, generates lists in lists | |||
dutchie: I mean without further processing, with Z meta-operator directly BTW. | 10:25 | ||
nemokosch | I don't think that works. One could argue if it's a bug or not, let me look it up in my collection | 10:26 | |
xinming_ | m: (1..3 Z, "a".."c").map(|*).raku.say; # <-- This removes the nesting, But want to know if it's possible to do it with Z directly. | 10:27 | |
camelia | (1, "a", 2, "b", 3, "c").Seq | ||
nemokosch | "Slips - X and Z disregards them" apparently that's all I wrote down | ||
irclogs.raku.org/raku/2022-10-11.html#10:15 | 10:31 | ||
it's still the same: if you copy the output and evaluate it, suddenly you get a flat array | 10:32 | ||
xinming_ | my @test = <A B C> X[&slip] <a b c>; dd @test.Slip | 10:34 | |
evalable6 | slip($(slip("A", "a")), $(slip("A", "b")), $(slip("A", "c")), $(slip("B", "a")), $(slip("B", "b")), $(slip("B", "c")), $(slip("C", "a")), $(slip("C", "b")), $(slip("C", "c"))) | ||
xinming_ | my @test = <A B C> X[&slip] <a b c>; @test.Slip | 10:35 | |
m: my @test = <A B C> X[&slip] <a b c>; @test | |||
camelia | WARNINGS for <tmp>: Useless use of @test in sink context (line 1) |
||
xinming_ | m: my @test = <A B C> X[&slip] <a b c>; @test.raku.say; | ||
camelia | [slip("A", "a"), slip("A", "b"), slip("A", "c"), slip("B", "a"), slip("B", "b"), slip("B", "c"), slip("C", "a"), slip("C", "b"), slip("C", "c")] | ||
xinming_ | I now need to read the doc on X and Z again. :-( | ||
nemokosch | they work with any infix | 10:36 | |
and you can fake any subroutine as infix with this [&sub] syntax | 10:37 | ||
m: sub adder { $^left + $^right }; dd(15 [&adder] 17) | 10:38 | ||
Raku eval | 32 | ||
nemokosch | one might say that Z and X are just special-cased Z, and X, respectively | 10:42 | |
tbrowder__ | .tell tonyo disregard, i think the window is only 2 hrs (but should be imho) | 10:44 | |
tellable6 | tbrowder__, I'll pass your message to tonyo | ||
lizmat | and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2023/07/10/2023-...mposition/ | 11:07 | |
11:08
linkable6 left,
evalable6 left
11:10
evalable6 joined
11:11
linkable6 joined
|
|||
El_Che | lizmat++ | 11:19 | |
11:46
jpn left
|
|||
leont | I forgot to release so didn't make it into this weeks list of updated modules :-o | 11:56 | |
lizmat | you'll be in next week's :-) | ||
12:00
reportable6 left
|
|||
nemokosch | I still don't get this hate towards JS, to be frank, and especially not from Raku users | 12:00 | |
okay, it's not downright Ruby but other than Ruby I couldn't name a scripting language that has a more similar spirit to Raku than JS | 12:01 | ||
lizmat | it reminds us too much of the early Perl days without 'use strict' | ||
SmokeMachine | lizmat: but it even has `use strict`... | 12:02 | |
nemokosch | perhaps the only thing I can't cast into this frame is that it has no operator overloading | ||
12:03
reportable6 joined
|
|||
but in general it's a language that lies on excessively ambitious abstractions, and lately it has been turning into a huge language to hide the guts of the language from you | 12:04 | ||
this is very much like Raku, and very much unlike Python for that matter | |||
leont | I don't hate Javascript at all, but I do hate the NPM ecosystem | 12:06 | |
12:06
jpn joined
|
|||
leont | The hypes go too fast, the modules are too small, none of it makes sense | 12:06 | |
nemokosch | ironically enough, JS is also a language that has more than one way to indicate the absence of a value | ||
although I doubt it will ever catch up to Raku in that regard | |||
leont: about NPM - the funny thing is that often even widely used modules suck hard | 12:08 | ||
leont | That's true on any ecosystem, really | ||
nemokosch | there is an infinite number of HTTP clients | ||
I used axios for some time - well, exactly until I first checked the code | |||
12:10
jpn left
|
|||
a friend of mine wanted to port socketio, either to Dart or just Deno, I don't remember | 12:10 | ||
I do remember the horror, though | |||
and I guess to some extent this is indeed the fault of dependants as well, like with Raku | 12:13 | ||
how outdated and unmaintained modules still get picked as dependencies | |||
12:15
jgaz_ left
12:17
jgaz joined
12:18
guifa joined
12:21
guifa left
12:30
guifa joined
12:52
melezhik joined
|
|||
melezhik | 0/ | 12:52 | |
tellable6 | 2023-06-29T16:48:34Z #raku <tonyo> melezhik: i'll take a look | ||
melezhik | I am designing some DSL to build configurations, I wonder if Raku allows nested named parameters? Here is some example code - gist.github.com/melezhik/d8493a9d5...b8982a0166 | ||
so, I Iove Raku's named parameters mechanism, but I wonder if it could be applied for nested arguments (like hash of hashes, etc) | 12:53 | ||
12:53
jpn joined
|
|||
melezhik | the reason I don't want to use just Hashes is I want to have a control on every level , so that passing argument ends up in invoking method of specific class an any level | 12:55 | |
maybe there more elegant and more idiomatic solution for that ... | |||
leont | You can destructure hash arguments | 12:56 | |
melezhik | if you drop some examples please? | 12:57 | |
leont | m: sub foo(:%foo (:$bar, :$baz)) { dd $baz }; foo(foo => { :bar, :42baz }) | ||
camelia | 42 | ||
melezhik | even better how this would like from client code ))) | ||
like -> look like | 12:58 | ||
oh, I see | |||
leont | m: sub foo(:%foo (:$bar, :$baz)) { dd $baz }; foo(:foo{ :bar, :42baz }) | 12:59 | |
camelia | 42 | ||
melezhik | m: sub foo(:%foo (:$bar, :$baz)) { dd $baz }; foo :foo( { :bar, :42baz })) | ||
camelia | ===SORRY!=== Error while compiling <tmp> Unexpected closing bracket at <tmp>:1 ------> { dd $baz }; foo :foo( { :bar, :42baz })⏏) |
||
12:59
razetime left
|
|||
melezhik | m: sub foo(:%foo (:$bar, :$baz)) { dd $baz }; foo(:foo( { :bar, :42baz })) | 12:59 | |
camelia | 42 | ||
melezhik | look good | ||
13:00
jpn left,
razetime joined
|
|||
leont | In particular you can do interesting things with multi-methods with this | 13:00 | |
melezhik | you mean overloading ? | ||
leont | Yeah | ||
melezhik | yeah, more or less what I want - thanks! | ||
I wish they allowed me to use Raku for that, but that's another story ))) | 13:01 | ||
13:02
guifa left
|
|||
leont | You can select both on presence of arguments, and on their types. | 13:02 | |
13:05
heartburn left
13:06
heartburn joined
13:13
melezhik left
|
|||
antononcube | I like “configuration format industry”! 🙂 | 13:14 | |
Good luck! Safe travels! | 13:16 | ||
I am not sure is this a political statement or not… 🙂 | 13:17 | ||
13:17
buffet left
13:20
jpn joined
|
|||
The R package ecosystem is changed by RStudio a lot with exactly the same goal and means. (That annoys a lot of old school R programmers, because their knowledge of the very arcane “old R” becomes obsolete, or at least not respected.) | 13:25 | ||
nemokosch | what's the big deal with R anyway? | 13:28 | |
antononcube | LOL. None!!! It is just free and it is not Mathematica… 🙂 | 13:30 | |
But, although it is LISP based/inspired, R does not suffer the LISP curse (because it is too arcane.) Hence, there are plenty of online questions/examples/help for R-users, which, in turn, made it popular. | 13:34 | ||
nemokosch | you mean it's too inconvenient to use on your own to have isolated hackers as the "community"? 😆 | 13:36 | |
antononcube | More seriously four things about R are hard to beat: 1) package system, 2) great IDE support, 3) good integration with LaTeX and Markdown, 4) easy and “quick” making of interactive interfaces. | 13:37 | |
13:39
guifa joined
|
|||
SmokeMachine | melezhik: I’m also playing with configurations: github.com/FCO/Configuration | 13:39 | |
tellable6 | SmokeMachine, I'll pass your message to melezhik | ||
antononcube | Yeah, something like that. R is a fairly inconsistent language, but its main, arcane workflows are clear or obvious to a subset of people. After using R for awhile, one can see the convenience or merit of those workflows. Pretty much like English, actually. | 13:42 | |
It can be said that most R functionalities work most of the time — because R was made “from statisticians for statisticians.” | 13:43 | ||
13:44
guifa left
|
|||
nemokosch | 😂 | 13:44 | |
antononcube | R has all features of a “design by a committee.” Still, I would rather program in R than in Python… | 13:45 | |
@nemokosch I might make another LLM generated document — this time explaining why R sucks. | 13:47 | ||
That kind of text generation might be censured though. | 13:48 | ||
13:48
guifa joined
|
|||
For example, OpenAI moderated/prevented image- and text generations for “Python programmers are like babies.“ | 13:49 | ||
BTW, yesterday I made a “12 steps to quit Python (and replace it with Raku).” See: github.com/antononcube/RakuForPred...ia-PaLM.md | 13:50 | ||
13:50
rf joined
|
|||
Hm… this latest committed version does speak about Raku… I recover the one that did. 🙂 | 13:55 | ||
lizmat | m: dd (:foo{a => 42 }) | 13:57 | |
camelia | :foo({:a(42)}) | ||
14:09
guifa left,
willthechill joined
|
|||
nemokosch | the other thing is, you know, this "Unix philosophy" | 14:11 | |
not even the composability; composability is nice indeed | |||
but this "everything should do one thing and do that one thing well"... I don't know if it's just a deceptive motto or a viral mistake | 14:12 | ||
tbh I hope this is not too controversial here of all places | |||
the whole Perl philosophy is the exact opposite | 14:13 | ||
[Coke] | Seems a controversial take to me. | 14:24 | |
jast | well I don't think the unix philosophy necessarily applies to everything | 14:25 | |
if you apply it to the right things it makes a lot of sense | 14:26 | ||
for instance, /bin/cat not having syntax highlighting and pagination is a good thing IMO :) | 14:27 | ||
14:27
teatwo joined
|
|||
nemokosch | cat is actually a great example of how the whole "one thing well" is just an excuse to give horrible names to useful utility programs 😛 | 14:28 | |
it's "for concatenation" but most of the time you don't care about that, just about pushing a file to stdout | 14:29 | ||
and the other way around: there is "kill", "sort", "su", "yes" which can do vastly different things from what the name implies/describes | 14:30 | ||
jast | naming is a different topic :-) | ||
14:30
tea3po left
|
|||
nemokosch | but you do notice that "kill" or "su" aren't just bad names | 14:30 | |
jast | switch user? seems okay :> | ||
nemokosch | they are overly specific names for generic operations with certain defaults | ||
jast | and yes, I know that's not the original meaning | 14:31 | |
nemokosch | this "do one thing well" can make sense for a completely closed domain I guess | 14:34 | |
so, pretty much the opposite of Unix itself | |||
jast | well, the idea of having a separate tool for each thing makes sense, right? even though the naming isn't so great | 14:35 | |
14:35
buffet joined
|
|||
jast | and obviously for a general purpose programming language you'd usually want to do more than "one thing", so the unix philosophy doesn't apply there in the first place | 14:35 | |
nemokosch | well, I think if these things are connected that it doesn't make a lot of sense | ||
just take the not-so-uncommon situation in a Unix environment that you need to take a file with textual content and produce another file with textual content. If there is a built-in for what you want, you are going to use that, right? | 14:37 | ||
If you can describe it in less than 20 keystrokes in sed, you are going to use sed | |||
if you can describe it in less than 20 lines in awk, you are going to use awk | |||
jast | sure | 14:38 | |
leont | Perl and Raku are about combining whipuptitude and manipulexity, so yes and no | ||
nemokosch | you notice that you need to add some configurability or custom logic so you use up your shell scripts to build your awk script into it | ||
jast | and well, text processing gets arbitrarily complex so realistically you couldn't do all of it with a purist unixy philosophy-y thing | 14:39 | |
nemokosch | then you might even notice that all of this sucks and wrap it all up in a standalone Python script, at that point it doesn't even matter a lot if you do or not... | ||
jast | which is definitely superior over having a frankentool that has 1000 different command line switches for doing 1000 different text transformations | 14:40 | |
nemokosch | the point is, you will be converging towards a general-purpose language while touching several completely unrelated technologies that don't help you understand one the other | ||
they compose via the piping mechanism that Unix provides but the knowledge itself doesn't scale or compose thanks to the "do one thing well" principle | 14:41 | ||
[Coke] will probably return. | 14:42 | ||
14:42
[Coke] left
|
|||
nemokosch | you might notice that you could have just used Perl all along and you'd be much better off | 14:42 | |
14:43
Sgeo joined
|
|||
antononcube | I have not heard / seen that before. 🙂 | 14:44 | |
jast | both sed and awk existed LONG before perl | ||
had perl existed at the time probably nobody would have bothered making them | |||
but at the time they filled a meaningful gap, and today they're still not useless | 14:45 | ||
nemokosch | that's right but this doesn't explain the existence of people who "still use sed/awk and haven't used Perl since ages" | 14:46 | |
but I would say that's kind of besides the point, the case is more just an illustration of the illusoric nature of "do one thing well" | |||
jast | well, I kind of get it because Perl has rather more warts than awk/sed and not everyone wants to learn a full language to do the more basic things | ||
I think all of these (awk, sed, Perl) fall outside of that | 14:47 | ||
awk and sed are compromises already | |||
nemokosch | that's part of the point - it's questionable whether that "one thing" and the "one tool for it" ever existed... | 14:48 | |
14:48
teatwo left
|
|||
leont | awk started as a sed replacement the same way perl started as an awk replacement; replacements tend to be partial | 14:48 | |
14:48
teatwo joined
|
|||
jast | obviously "one thing" doesn't work for every task out there | 14:49 | |
still it makes sense to keep things orthogonal where possible | |||
in the end it's called a philosophy and not "The Law" :) | |||
nemokosch | but it could be just as much called a myth 😛 | 14:50 | |
jast | by that logic, most rules of thumbs are myths | ||
nemokosch | I don't think that follows | ||
this is simply something that doesn't even really have a good example case within the system that the philosophy refers in its name | 14:51 | ||
jast | I just think your interpretation of the unix philosophy is a little too stringent for it to make any sense | ||
I don't interpret it quite as strictly and so it works for me | |||
nemokosch | well, that's where the example should have helped I think | 14:52 | |
I said what I mean about the commands and tools | |||
jast | I do think most of the core utils do this fairly consistently (if we disregard the various GNU extensions), though quite a few of the names could have been better | 14:55 | |
nemokosch | orthogonality is great but it doesn't contradict having a unified vision - the common Unix tools that survived often (regularly) don't even have the same convention with the arguments | 14:56 | |
and I'd say this is a very obvious risk of the "I'm just going to do my job well and don't care about the rest" mentality | |||
jast | which seems to be a flaw in standardization rather than philosophy | 14:57 | |
14:57
jpn left
|
|||
jast | and, well, that's what happens in decentralized and uncoordinated development. tough luck. | 14:58 | |
14:58
jpn joined
|
|||
jast | in fact it happens even in centralized but uncoordinated development, see Microsoft's APIs and tools for inspiration | 14:58 | |
antononcube | By ChatGPT : "Perl and Raku are like the lovechild of a cooking show and a Rubik's Cube, all tangled up in a language full of whip-up skills and mind-bending complexity." | 15:00 | |
jast | that sounds like ChatGPT all right | ||
or random twitter user #432789643297432897, hard to distinguish | |||
nemokosch | I'd rather say that by coordinated effort you can account for problems a mental framework might foster. You know, this is an engineering discipline, the impossible doesn't exist 😛 | 15:01 | |
jast | of course anything is *possible*... but even when people actually try it still often goes wrong | 15:02 | |
if only because they can't agree on the correct indentation :) | |||
nemokosch | well, that's at least somebody that people can equally understand ^^ | 15:03 | |
jast | nothing ruins collaboration better than bikeshedding | ||
antononcube | And cluster bombs. | 15:04 | |
nemokosch | I wonder if the IT produces people who are naturally talented at bikeshedding or it's just more visible (to me?) than in other fields | 15:05 | |
jast | antononcube: I don't have personal experience with that kind of collaboration, I'll take your word for it | ||
nah, bikeshedding happens everywhere. the origin of the term is nice evidence for that :) | |||
nemokosch | What I do think is that there is a great share of overthinkers in the IT world | 15:07 | |
jast | for sure | ||
but the same is true outside of the IT world | |||
antononcube | @jast You can also read the news. 🙂 | ||
nemokosch | I meant disproportionally much | ||
jast | ever look at business administration? :) | 15:08 | |
which often seems to devolve into a bizarre mix of overthinking and underthinking | |||
antononcube | Damn, my wife is a "business administrator". Now she studies to be a "network engineer." | 15:09 | |
nemokosch | is that the only other option? 😛 you don't need to win the grand prix immediately to be a decent competitor | ||
jast | no, it's one example | ||
nemokosch | actually it's often really just fun to read completely oppositional theories of how something works in the industry, or how it should work | ||
by people who often have no financial motives in these theories whatsoever | 15:10 | ||
it just reflects different ways of thinking, "out loud" | |||
antononcube | ... using inferior languages and paradigms as background. | 15:11 | |
jast | to be fair, modelling complex real world things is prohibitively difficult | 15:12 | |
antononcube | @jast That is my bet against the AI hype. | ||
jast | eh | 15:13 | |
antononcube | So, you might see soon Raku modules for doing logistics. | ||
nemokosch | the "lisp curse" itself is an interesting concept, or how the Tcl/Sqlite squad is proud to their "cathedral style development" which was originally meant to be a negative term | ||
jast | the main problem with AI at this point is that we don't know how to adaptively scale models | ||
LLMs are cool but haven't changed anything about this | |||
antononcube | @jast Right -- you are saying that the main problem with AI is that it is no AI. | 15:14 | |
jast | it's AI but not "strong AI" (or generalized AI) | ||
and no matter how much people are getting excited about ChatGPT and such, nobody knows how to make that | 15:15 | ||
(though people read all kinds of things into what ChatGPT does) | |||
antononcube | @jast LLMs have changed many perceptions of the people who (do/would) employ me. | ||
jast | makes sense | ||
I majored in AI at university but it's not a field I really want to work in tbh | 15:16 | ||
15:16
razetime left
|
|||
jast | currently my main thing is the fun playground on which scalability, concurrency and data integrity meet | 15:17 | |
15:17
razetime joined
|
|||
antononcube | I (mega-)majored in Mathematical Modeling and unfortunately I am "forced" to do Machine Learning and Data Science. | 15:17 | |
jast | ScIeNcE :-) | 15:18 | |
I learned a lot more useful things from the foundation courses about modeling and statistics and the quick intro to machine learning which did a good job at covering the limitations | 15:19 | ||
antononcube | From that perspective, COVID-19 was very good for my carrier in scientific computing. | 15:20 | |
Everybody understood the limitations of AI / ML / DS when it comes to these kind of problems. | 15:21 | ||
jast | fortunately now we have ChatGPT which has zero limitations :-) | 15:23 | |
antononcube | @jast Interesting conjecture. I would say, that might be true only for "verbalizable world" (if at all.) | 15:24 | |
jast | did I forget the sarcasm tag? dear me | 15:25 | |
nemokosch | well it's a breakthrough for generating content "out of thin air" | ||
and if it was kind enough to lie less often, it could be a really good "search engine" | 15:26 | ||
antononcube | @jast I thought you might mean "with sarcasm", but decided to manifest Poe's law anyway. | ||
@nemokosch Well, my attitude is: LLMs hallucinations are interesting, sometimes useful. | 15:28 | ||
jast | exactly | 15:30 | |
nemokosch | khalidelborai.github.io/posts/raku-nativecall a gift from the gods | 15:32 | |
antononcube | @jast BTW, I am writing an article titled "Harnessing LLM hallucinations into precise specifications." (Too wordy title, I might change it.) My big obstacle is making the decision should I write it using Raku or Mathematica (or both.) | 15:39 | |
It is a very small gift. So far, at least... | 15:41 | ||
nemokosch | beggars can't be choosers | ||
jast | Rakumathica :-) | 15:42 | |
antononcube | @jast 🙂 Sure. Or "Rakuntica". | 15:43 | |
15:44
jpn left
|
|||
This reminds me -- I have to upload / publish the Mathematica notebook with Raku generated grammar graphs. | 15:45 | ||
16:37
jpn joined
16:44
jpn left
16:46
jpn joined,
razetime left
|
|||
xinming_ | m: class A { method t () { $.end.raku.say; }; }; A.new.t; | 17:10 | |
camelia | 0 | ||
xinming_ | Where is the $.end attribute defined please? | ||
Got it, It's a rountine. | 17:11 | ||
lizmat | xinming_: by default, a class is Any, and .end is defined on Any | 17:12 | |
and since scalars can be considered 1-element lists, the highest index is 0 | |||
17:18
willthechill left
17:25
jpn left
17:26
squashable6 left,
squashable6 joined
17:36
jpn joined
17:40
jpn left
18:00
reportable6 left
|
|||
tbrowder__ | i'm interested in the SOD bindings. is SOD as usav | 18:01 | |
usable as graphicksmagic for photo manipulation? | 18:02 | ||
18:03
reportable6 joined
|
|||
tbrowder__ | i tried to contact the author but the link in the weekly article didn't work | 18:05 | |
ah, the link in bottom-left corner seems to work | 18:08 | ||
18:28
abraxxa-home joined
18:33
abraxxa-home left
18:34
jpn joined
18:35
abraxxa-home joined
18:39
jpn left
19:13
jpn joined
19:17
jpn left
19:27
sena_kun left
19:29
sena_kun joined
19:31
deoac left,
deoac joined
|
|||
antononcube | @EBNF-graphs with Raku Mathematica notebook : community.wolfram.com/groups/-/m/t/2955399 | 19:39 | |
19:52
jpn joined
20:05
jpn left
20:19
abraxxa-home left
20:56
sena_kun left
|
|||
Voldenet | SmokeMachine: Well, it's possible to generate code from json, so it's possible to write a rakuconfig that'd load its properties from json – just make sure it's possible to use arrays for things like endpoints | 20:59 | |
21:18
merp joined
21:23
squashable6 left
21:26
squashable6 joined
|
|||
SmokeMachine | I just tried using cro with my Configuration module... it seems it's working well: usercontent.irccloud-cdn.com/file/.../image.png | 21:41 | |
Voldenet: yes, it's possible, but that needs complex json, in that case it would be easier to just write code, no? | 21:44 | ||
Voldenet | well, there's deserializers already, so routing config through the Configuration module would be silly | 21:53 | |
for people who actually know raku rakuconfig is more elegant anyway | 21:55 | ||
but use cases are limited to those people, which makes it usable only in dev contexts | |||
SmokeMachine | Voldenet: I'm thinking on cases for exactly where the users are developers (or hard users) | 22:00 | |
22:02
jpn joined
22:07
jpn left
22:24
guifa joined
22:31
vrurg_ left
22:32
vrurg joined
23:00
squashable6 left
23:01
euandreh left,
Xliff joined
|
|||
Xliff | How can I tell if a method is a proto method? | 23:01 | |
23:01
euandreh joined
23:02
squashable6 joined
|
|||
Xliff | Wasn't there a method that handled this? | 23:03 | |
guifa | um, not sure. but on a multi, it seems that the value of multi is falsey on the proto and true on the candidates | 23:21 | |
meh but that wouldn't necessary work because a single method would look identical | 23:23 | ||
Xliff | So I am thinking it is .is_dispatch. | 23:29 | |
So how can I add candidates to a proto? | |||
guifa | I don't think you can after compilation. At least not as of a month or few ago | 23:30 | |
guifa tried to do a global addition to multi sub &infix:<...> | |||
23:33
japhb joined
|
|||
Xliff | That's odd. You can use add_method, but not add candidates to a proto you just added? | 23:41 | |
23:41
guifa left,
guifa joined
|