00:11 arkiuat left
disbot6 <jubilatious1_98524> Oops, that was supposed to be directed to: @Voldenet 00:13
00:24 arkiuat joined 00:29 arkiuat left 00:38 lichtkind left 00:40 arkiuat joined 00:41 bloatable6 left, linkable6 left, unicodable6 left, shareable6 left, sourceable6 left 00:43 linkable6 joined, sourceable6 joined, shareable6 joined, simcop2387 left, quotable6 left, notable6 left, bloatable6 joined, unicodable6 joined 00:44 quotable6 joined, notable6 joined, arkiuat left 00:47 Aedil left 00:51 simcop2387 joined 00:59 arkiuat joined 01:10 Nantekoto joined 01:11 Nantekoto left 02:25 hvxgr left, hvxgr joined 02:27 arkiuat left 02:28 arkiuat joined 02:49 Ekho- is now known as Ekho 03:25 vasko45 left, vasko45 joined 04:52 sjn left, sjn joined 05:52 elcaro joined 06:05 Aedil joined 07:05 Aedil left 07:35 arkiuat left 07:39 kylese joined, kylese left 07:40 kylese joined 07:47 arkiuat joined 07:51 arkiuat left 08:13 Guest75 joined 08:14 Guest75 left 08:19 arkiuat joined 08:24 arkiuat left
disbot6 <librasteve> @sjoshuan it looks fine to me 08:33
08:46 thatonelutenist left, thatonelutenist joined 08:52 arkiuat joined 08:57 arkiuat left 09:15 arkiuat joined 09:20 arkiuat left 09:48 arkiuat joined 09:53 arkiuat left 09:55 ds7832 joined 09:56 Aedil joined 10:13 Sgeo left 10:16 arkiuat joined 10:21 arkiuat left 10:29 charsbar left, charsbar joined 10:49 arkiuat joined
disbot6 <jubilatious1_98524> @sjn Don't like the 1.2 version: -Ohumans; ...looks too much like zero-humans. 10:52
10:53 arkiuat left
disbot6 <librasteve> arkuiat: yeah, that struck me too - but my conclusion is different ... the purpose of this strapline is to drive interest through engagement { to pick three well know ones Nike => Just Do It [wtf does that mean?], Apple => Think Different [ie we are not IBM], De Beers => Diamonds Are Forever {physically strong or love is eternal] } --- it only working if there is an emotional response and that means some kind of resonating 11:02
dissonance
<jubilatious1_98524> "Code Different" 11:03
<jubilatious1_98524> "Deeply Expressive" 11:04
<librasteve> in our case this means "code in the style you like / that fits the job" AND "this nutty language was designed by a (lazy) linguist and has hooks in it that are designed to engage the bits of your brain that workk with natural language - <my our has with without andthen ...>
<librasteve> @jubilatious1_98524 ... well yes --- I like your ideas because they also align to the message of expressive and multi-paradigm ... but I prefer "works the way you think" ;-) 11:08
<librasteve> @sjoshuan - is there enough real estate on your beermat to fit "works the way you think"? 11:09
<jubilatious1_98524> @sjoshuan Do you mean 2026 sticker? And does "Deeply Expressive" fit on your beermat? 😃 11:10
<librasteve> chatgpt.com/share/68eb8cb8-bcd4-80...70170a593e 11:11
<jubilatious1_98524> You're basically asking ChatGPT it's opinion of your slogan. Try instead: "Raku programming language ELI5" 11:13
Voldenet jubilatious1_98524: nah, categorize is more fit for this particular use case
disbot6 <librasteve> @jubilatious1_98524 - we spent a fair bit of time bikeshedding the strapline for the new raku.org website ... github.com/librasteve/raku-org-25-.../issues/14 ... at your request I reopened this discussion issue since I think its fair to keep this open and to evolve it - but tbh it was hard enough to get agreement on the one we chose (so if you want to propose a change, the onus is on you to achieve a concensus on the 11:14
new thing)
<librasteve> in the meantime, I am proposing that our schlotke for Fosdem is consistent with our current agreed strapline 11:15
<jubilatious1_98524> @Voldenet not very memorable... "categorize" versus "classify". Are programmers just supposed to memorize it? 11:16
<librasteve> (if it will physicall fit)
Voldenet Yes, for me classify is somewhat memorable, categorize I have to look up 11:17
i like C#'s "groupBy" (like classify) but there's no alternative for "categorize"
11:17 arkiuat joined
Voldenet i guess "GroupByMany" would be C# naming 11:17
disbot6 <jubilatious1_98524> @Voldenet so yo remembered "classify" was going to give you a weird Empty-string as key? 11:18
Voldenet classify is not doing that
classify will die if you attempt to do that
the empty key is coming from `orelse ""` 11:19
you can set it to Nil or anything else
disbot6 <jubilatious1_98524> @Voldenet see my most recent: && $0.Str // ""
11:20 lichtkind joined
disbot6 <librasteve> the ChatGPT I shared was not so much that I bow to ChatGPTs opinion, but that its response is pretty much in line with my thoughts on the underlying (actually quite technical) rationale behind "works the way you think" ... 11:21
Voldenet yeah, you explicitly say to get empty key :)
11:22 arkiuat left
disbot6 <jubilatious1_98524> I can set it to Nil but I still don't want it appearing in my output. That's why I still want a :skip-empty adverb. 11:23
Voldenet use .categorize 11:24
and that's it 11:25
disbot6 <jubilatious1_98524> But I'll have to read over the Docs on categorize and classify to see it they make sense to me.
Voldenet basically, categorize accepts 0..n categories
so you can have element in 0 or many keys
classify accepts exactly 1
in this case 0 or 1, which is exactly your use case 11:26
so there's not going to be :skip-empty
timtowtdi could say that it can be useful…
but it'd be an alias for existing method mostly 11:28
disbot6 <jubilatious1_98524> Your original classify code output 3 categories: old_, older_ and oldest_. Not sure where you're getting "classify accepts exactly 1" from.
Voldenet I mean, classify returns one category from every block invoked 11:29
categorize returns many
m: (1..10).classify({ [.is-prime, $_ %% 2 ]}).say # note that it creates nested tree with exact category path 11:30
camelia {False => {False => [1 9], True => [4 6 8 10]}, True => {False => [3 5 7], True => [2]}}
Voldenet m: (1..10).categorize({ [.is-prime, $_ %% 2 ]}).say # this only returns 2 bools, so some things will get both categories
camelia {False => [1 1 3 4 5 6 7 8 9 9 10], True => [2 2 3 4 5 6 7 8 10]}
Voldenet also note duplicated elements
disbot6 <jubilatious1_98524> So classify was designed to choke on non-matching criteria? 11:31
Voldenet Yes 11:34
11:36 ds7832 left
disbot6 <jubilatious1_98524> @Voldenet show me the spec 11:39
<jubilatious1_98524> m: .put for <apple banana carrot>.classify({ m/^ a | b | c / }).sort; 11:40
<Raku eval> a apple b banana c carrot
<jubilatious1_98524> m: .put for <apple banana carrot daikon>.classify({ m/^ a | b | c / }).sort; 11:41
<Raku eval> daikon a apple b banana c carrot Use of Nil in string context in block <unit> at main.raku line 1 Use of Nil in string context in block <unit> at main.raku line 1 Use of Nil in string context in block at main.raku line 1
11:43 ds7832 joined
Voldenet github.com/Raku/roast/blob/master/...classify.t 11:49
but classify is ultimately for different use case entirely 11:50
m: .put for <apple banana carrot daikon>.classify({ .substr(0,1) }).sort 11:51
camelia a apple
b banana
c carrot
d daikon
11:52 arkiuat joined
Voldenet categorize is a lot more accepting github.com/Raku/roast/blob/master/...tegorize.t 11:52
m: .put for <apple banana carrot daikon>.categorize(*.comb).sort 11:53
camelia a apple banana banana banana carrot daikon
b banana
c carrot
d daikon
e apple
i daikon
k daikon
l apple
n banana banana daikon
o carrot daikon
p apple apple
r carrot carrot
t carrot
11:56 arkiuat left 12:01 mimosa joined
disbot6 <jubilatious1_98524> m: .say for <apple apple banana carrot>.categorize({ m/^ <[abc]> /.Str } ).sort; 12:06
<Raku eval> a => [apple apple] b => [banana] c => [carrot]
<jubilatious1_98524> m: .say for <apple apple banana carrot daikon>.categorize({ m/^ <[abc]> /.Str } ).sort; 12:07
<Raku eval> => [daikon] a => [apple apple] b => [banana] c => [carrot] Use of Nil in string context in block at main.raku line 1
12:18 arkiuat joined
Voldenet .Str would get invoked on no match, that's where the error comes from 12:19
m: .say for <apple apple banana carrot daikon>.categorize({ m/^ <[abc]> / andthen .Str } ).sort;
camelia a => [apple apple]
b => [banana]
c => [carrot]
12:23 arkiuat left, MoC joined 12:34 stanrifkin joined
disbot6 <jubilatious1_98524> Thanks! 12:35
12:46 arkiuat joined 12:50 arkiuat left
disbot6 <librasteve> I would like to use a module and then to turn around an reexport all its symbols in the new module -- what is the best way to do this? 12:54
12:55 librasteve_ joined
lizmat librasteve there's no simple generic solution, especially if the symbols aren't packages or subs 12:59
docs.raku.org/syntax/sub%20EXPORT 13:00
in other words: create a sub EXPORT that lives in the compunit's scope (so no unit class Foo, but class Foo { } sub EXPORT ...) 13:01
which should return a Map with the things you want to export
disbot6 <librasteve> .oO
<librasteve> looks like i can work with that 13:02
<librasteve> many thanks!
lizmat note that sub EXPORT can also be a multi, if you want to pass positional arguments to it 13:03
github.com/lizmat/String-Utils/blo...#L660-L676 is an example of an EXPORT sub that takes the names of subs to be exported 13:04
disbot6 <librasteve> OK - so the subs I got down OK .... how about the role / class declarations ...? 13:12
<librasteve> I got << role Script does Tag[Regular] is export {...} >> and I want to move the code from Air::Base to Air::Base::Tags ...
<librasteve> but still expose the role to those who go use Air::Base in their code 13:13
<librasteve> without having to go for a FQN
13:19 arkiuat joined
lizmat roles can be exported without the & prefix 13:22
13:24 arkiuat left
disbot6 <librasteve> so something like Map.new( 'Script' => Air::Base::Tags::Script ) ?? 13:24
<librasteve> oh - just 'Script' => Script, lol 13:35
13:53 arkiuat joined 13:58 arkiuat left 14:20 arkiuat joined 14:25 arkiuat left
disbot6 <sjoshuan> These are intended to be stickers. Happy to air the suggestion to the organizers 🙂 14:31
<sjoshuan> @jubilatious1_98524: If we look into making beer mats, we might make some specifically for that. "Deeply expressive" might fit there! 😄 14:33
14:52 arkiuat joined 14:58 arkiuat left 15:06 arkiuat joined 15:09 mimosa left 15:10 mimosa joined 15:11 arkiuat left 15:39 arkiuat joined 15:40 apac joined 15:44 arkiuat left 15:47 ds7823 joined 16:01 ds7832 left 16:04 arkiuat joined 16:12 arkiuat left 16:22 arkiuat joined 16:30 arkiuat left 16:45 ds7832 joined 16:59 arkiuat joined 17:03 swaggboi joined 17:12 ds7823 left, ds7832 left 17:16 arkiuat left 17:39 arkiuat joined 17:44 arkiuat left 17:52 ds7823 joined 17:53 Sgeo joined 17:55 librasteve_ left 18:06 arkiuat joined 18:11 arkiuat left 18:19 melezhik joined
melezhik . 18:19
18:24 arkiuat joined 18:30 arkiuat left 18:57 arkiuat joined 19:02 arkiuat left 19:21 arkiuat joined 19:30 arkiuat left 19:33 kylese left 19:42 arkiuat joined 19:47 arkiuat left 20:05 arkiuat joined 20:10 arkiuat left 20:19 arkiuat joined 20:20 cryosis left 20:22 cryosis joined 20:44 mimosa left 20:48 melezhik left 20:49 arkiuat left 21:02 arkiuat joined 21:03 MoC left 21:06 arkiuat left 21:18 apac left 21:19 arkiuat joined 21:21 apac joined 21:24 arkiuat left 21:25 arkiuat joined 21:31 arkiuat left 21:33 simcop2387 left 21:36 ds7832 joined 21:37 ds7823 left 21:46 stanrifkin left 21:58 arkiuat joined 22:03 arkiuat left 22:13 simcop2387 joined 22:17 arkiuat joined
arkiuat librasteve: I can't argue with that. Marketing was a black art even before we started trying to market free stuff, which makes it even more mysterious afaict 23:19
tellable6 arkiuat, I'll pass your message to librasteve_
23:20 ds7832 left
tbrowder hi, what raku app or distro should i start with for scraping a website? i'm looking at feasibility of auto reading of the results of the florida powerball lottery as reported at floridalottery.com 23:24
23:36 apa_c joined 23:38 apac left 23:41 apa_c left 23:50 oodani left, oodani joined
tbrowder ah, LibCurl is the answer... 23:59