[00:06] *** tejr left [00:07] *** reportable6 left [00:10] *** reportable6 joined [00:12] *** monkey_ left [00:14] *** tejr joined [00:18] *** monkey_ joined [00:27] *** dextercd left [00:35] *** Guest768 joined [00:43] *** Guest768 left [00:50] *** Guest72 joined [00:50] Searching for a way to generate password suggestions from the entire set of printable letters, numbers, and punctuation characters that does _not_ enforce that not character appears more than once. So far, I'm striking out. [00:54] Guest72: `pwgen` on Linux systems [01:06] *** discord-raku-bot left [01:07] *** discord-raku-bot joined [01:36] *** holyghost joined [01:51] Guest72: is your set of printable letters numbers, and punctuation the subset available in ascii or utf8? [01:53] *** holyghost left [01:55] m: (0..15).map({ ('0'..'z').pick }).join.say [01:55] rakudo-moar b5fb3628b: OUTPUT: «lSJbg0T hmm, I find the map kinda obfuscatory [02:04] in that I usually expect the verb of a map to be pure or pure-ish [02:04] probably prefer do-for or gather-for [02:08] m: (^32).roll(15).map(*.base(36)).join.say [02:08] rakudo-moar b5fb3628b: OUTPUT: «VKFN75FV7E5GU5O␤» [02:09] `from 32 numbers roll 15 times and use their base36 representation` [02:11] m: ('0'..'z').roll(15).join.say [02:11] rakudo-moar b5fb3628b: OUTPUT: «3IP_4WyX_?WK?du␤» [02:11] all of this discussion aside, I would not generate passwords using raku [02:11] I do not think its rng is cryptographic [02:11] I generally use dd /dev/urandom|base64 [02:11] you don't need crypto rng for password [02:12] specifically dd if=/dev/random bs=1 count=12 2>/dev/null | base64 [02:12] Voldenet: sure, and if somebody figures out what raku script you were using to generate your password, they throw some seeds at the rng and crack it [02:13] esp.: you used unique passwords, but you generated them in batch; so an attacker figures out one password, and has a pretty good idea of the rest [02:13] is it a _likely_ attack vector? No, not particularly; but it's very cheap and easy to avoid it, so why not? [02:13] `cat /dev/random | head -c12 | base64` is something i use tho [02:14] or echo $(cat /dev/random | tr -dc '[:graph:]' | head -c15) [02:15] or just use firefox which does this for you [02:17] generating passwords with your browser is _probably_ fine (though I wouldn't do it anyway), but sounds dangerously close to _storing_ passwords with your browser, which is a god-awful idea [02:20] Why is it awful? [02:21] because they're stored in plain text [02:21] are you from the past? [02:22] firefox for example stores passwords encrypted [02:24] https://hacks.mozilla.org/2018/11/firefox-sync-privacy/ [02:25] I see. The encryption is off by default; and the passwords are kept in memory--in the same address space as a live javascript vm [02:28] *** Xliff_ joined [02:31] *** Xliff_ left [02:31] I'm not sure if that's the case [02:31] *** Xliff_ joined [02:33] \o [02:33] Are there nightlies of Rakudo for windows? [02:33] I can't seem to get rakubrew working under Cygwin. It used to work perfectly. [02:34] Encrypted or hashed> [02:34] ? [02:38] while I'm not sure if firefox even stores passwords in the same address space, I'm sure they can be extracted somehow [02:39] in that case, the safest way to store passwords would be outside of the computer [02:39] moon-child: change the random seed... [02:39] my Int $seed = qqx{od -An -N3 -i /dev/random}.Int; srand($seed); ("0".."z").roll(15).join.say [02:39] ggoebel, rakudo-moar efbf8ea4f: OUTPUT: «EsOLCAYl^nBB3Dk␤» [02:40] ggoebel: seed is irrelevant; what matters is the rng [02:40] surprised that worked... figured shell quoting would be disabled [02:40] i think it runs in a sandbox [02:41] you can do this anyway [02:41] m: use NativeCall; sub system(Str) is native {*}; system "echo hi" [02:41] rakudo-moar b5fb3628b: OUTPUT: «hi␤» [02:43] and I think there are cpu time limits too, so good luck mining bitcoin [02:44] m: "/proc/1/cgroup".IO.slurp.say [02:44] rakudo-moar b5fb3628b: OUTPUT: «12:blkio:/␤11:rdma:/␤10:devices:/init.scope␤9:cpuset:/␤8:memory:/␤7:hugetlb:/␤6:freezer:/␤5:pids:/init.scope␤4:perf_event:/␤3:cpu,cpuacct:/␤2:net_cls,net_prio:/␤1:name=systemd:/init.scope␤0::/init.scope␤␤» [02:46] lucs: obviously encrypted, hashes are not very usable in password manager [02:49] *** lukey joined [02:54] *** lukey left [03:54] *** committable6 left [03:54] *** quotable6 left [03:54] *** releasable6 left [03:54] *** tellable6 left [03:54] *** reportable6 left [03:54] *** sourceable6 left [03:54] *** evalable6 left [03:54] *** nativecallable6 left [03:54] *** squashable6 left [03:54] *** shareable6 left [03:54] *** linkable6 left [03:54] *** bloatable6 left [03:54] *** vrurg_ left [03:54] *** greppable6 left [03:54] *** coverable6 left [03:54] *** notable6 left [03:54] *** benchable6 left [03:54] *** statisfiable6 left [03:54] *** unicodable6 left [03:54] *** bisectable6 left [03:54] *** vrurg joined [03:55] *** evalable6 joined [03:55] *** sourceable6 joined [03:56] *** squashable6 joined [03:56] *** committable6 joined [03:56] *** statisfiable6 joined [03:56] *** shareable6 joined [03:56] *** notable6 joined [03:56] *** nativecallable6 joined [03:56] *** linkable6 joined [03:57] *** releasable6 joined [03:57] *** coverable6 joined [03:57] *** bloatable6 joined [04:55] *** reportable6 joined [04:55] *** greppable6 joined [04:56] *** benchable6 joined [04:57] *** tellable6 joined [04:57] *** quotable6 joined [05:26] *** epony joined [05:37] *** p6steve left [05:40] *** p6steve joined [05:54] *** ggoebel left [05:55] *** unicodable6 joined [05:56] *** bisectable6 joined [06:05] *** Xliff_ left [06:07] *** reportable6 left [06:12] *** Xliff_ joined [06:14] *** swaggboi left [06:15] *** slowtyper left [06:16] *** slowtyper joined [06:41] *** swaggboi joined [07:23] *** seednode left [07:23] *** seednode joined [08:16] *** stoned75 joined [08:35] *** Xliff_ left [08:50] *** xinming left [08:52] *** xinming joined [08:59] *** xinming left [09:00] *** xinming joined [09:08] ¦ doc: 487b278bfe | (JJ Merelo)++ | doc/Type/Match.pod6 [09:08] ¦ doc: Fixes :bug: describing correctly how to works. Closes #4000 [09:08] ¦ doc: review: https://github.com/Raku/doc/commit/487b278bfe [09:08] Link: https://docs.raku.org/type/Match [09:09] *** linkable6 left [09:09] *** reportable6 joined [09:47] *** xinming left [09:47] *** xinming joined [10:16] *** xinming left [10:17] *** xinming joined [10:31] *** Sgeo left [10:32] *** holyghost joined [11:06] *** squashable6 left [11:14] *** lichtkind_ joined [11:48] *** frost joined [12:08] *** reportable6 left [12:10] *** reportable6 joined [12:11] *** fgmachado joined [12:12] *** fgmachado left [12:56] *** ggoebel joined [13:14] *** getimiskon joined [13:33] *** frost left [13:39] *** squashable6 joined [13:40] *** ggoebel left [13:52] *** discord-raku-bot left [13:52] *** discord-raku-bot joined [13:58] *** ggoebel joined [14:16] I'm not going to renew the domain name perl6.nl - someone once provided an IP to keep it active, but there's no longer any perl6/raku site configured on that IP and I forgot who it was. I don't think anyone uses this domain for anything anymore. [14:16] If anyone wants to "rescue" this domain, contact me please :) [14:16] It will expire in March [14:17] (The domain name has been used for feather.perl6.nl back in the pugs days) [14:36] *** Darkcoal joined [14:37] *** Darkcoal left [14:40] *** Darkcoal joined [14:44] *** Darkcoal_ joined [14:44] *** Darkcoal_ left [14:44] *** Darkcoal left [14:45] .tell patrick sorry I haven’t seen your issue before, but I’ve just answered: https://github.com/FCO/Red/issues/539#issuecomment-997403720 [14:45] SmokeMachine, I haven't seen patrick around, did you mean patrickb? [14:46] tellable6: yes [14:46] SmokeMachine, I haven't seen yes around, did you mean ens? [14:46] :( [14:46] .tell patrickb sorry I haven’t seen your issue before, but I’ve just answered: https://github.com/FCO/Red/issues/539#issuecomment-997403720 [14:46] SmokeMachine, I'll pass your message to patrickb [14:48] *** holyghost left [14:56] .tell patrickb also this one: https://github.com/FCO/Red/issues/538#issuecomment-997405831 [14:56] SmokeMachine, I'll pass your message to patrickb [14:56] *** ggoebel left [15:25] *** ggoebel joined [15:49] *** leah2 left [15:51] *** leah2 joined [16:12] *** linkable6 joined [16:36] *** holyghost joined [16:44] *** mexen joined [16:49] *** dextercd joined [17:35] *** Guest72 left [18:00] *** stoned75 left [18:04] *** ab5tract joined [18:04] good *, all [18:05] quick question: what is the Texas version of https://docs.raku.org/language/setbagmix#infix_%E2%89%A2 [18:07] *** reportable6 left [18:11] !(>) [18:11] ab5tract ^^ [18:11] there is no specific one, just the negation of (>) [18:11] negation of (==), right? [18:12] I can't seem to get my version of Comma to accept that syntax, or the unicode version. though the code runs fine [18:12] ah, oops, not enough on that page... yes :-) [18:12] then time to make a Comma issue ? [18:22] does someone here edit "Learn Raku in Y minutes"? I've found a minor mistake. [18:23] nm, looks like I should report on github [18:31] lizmat : I should update to the latest version first. been a bit lazy about it :0 [18:32] lizmat : are object hashes still a separate thingy? I was expecting %hash-int-to-sets.invert to DWIM [18:33] code? [18:34] https://gist.github.com/ab5tract/dec2907ba2db4157c50a2dc1b1614b74 [18:36] lizmat ^^ (just bumping in case you didn't see already) [18:36] brb, switching OS [18:37] *** ab5tract left [18:47] *** ab5tract joined [18:48] hmm.. no link to the IRC chat logs on https://raku.org/community/ [18:48] lizmat I'm unable to check whether you already responded :/ [18:50] https://logs.liz.nl/raku/live.html [18:51] I didn't respond yet, as I'm not sure what you're trying to achieve? [18:52] so you're splitting on single space, and then combing on word characters and then combing again? [18:52] sorry, now my time to be afk, dinner& [18:56] lizmat: ignore those things. I had to put the extra comb in there because i was getting sets with "" as an element. very bizarre and it definitely felt like a hack [18:57] what I am trying to achieve is having a lookup hash with Sets as keys [18:58] hence what I meant when expecting `%hash-of-int-to-set.invert` DWIM -- I am expecting to have a hash with sets as the keys, not a stringified version of the set [19:06] ab5tract: by default, my %foo is basically my Any %foo{Str} [19:07] my Any %foo{Set} [19:07] if I'm getting what you're trying to do [19:07] *** reportable6 joined [19:08] guifa it's more about a feeling that .invert should preserve the type of values [19:09] ab5tract: that's fair [19:09] it would break the ecosystem, I'm sure [19:10] actually [19:10] .invert does [19:10] It's the storing into the hash that coerces [19:10] m: my Int %foo = a => 1, b => 2; say %foo.invert.keys.head.WHAT; [19:10] rakudo-moar b5fb3628b: OUTPUT: «(Int)␤» [19:11] my Int %foo = a => 1, b => 2; my %bar = %foo.invert; say %bar.keys.head.WHAT; [19:11] guifa, rakudo-moar efbf8ea4f: OUTPUT: «(Str)␤» [19:11] m: my %h = 0 => Set.new(4, 5); dd %h.invert [19:11] rakudo-moar b5fb3628b: OUTPUT: «(Set.new(5,4) => "0",).Seq␤» [19:12] m: my %h = 0 => Set.new(4, 5); my %oh = %h.invert; dd %oh [19:12] rakudo-moar b5fb3628b: OUTPUT: «Hash %oh = {"4 5" => "0"}␤» [19:13] guifa nice to see that! however, I would still consider the above a bit of a WAT. [19:13] m: my %h = 0 => Set.new(4, 5); my Int %oh{Set} = %h.invert; dd %oh [19:13] rakudo-moar b5fb3628b: OUTPUT: «Type check failed in assignment to %oh; expected Int but got Str ("0")␤ in block at line 1␤␤» [19:14] m: my %h = 0 => Set.new(4, 5); my Any %oh{Set} = %h.invert; dd %oh [19:14] rakudo-moar b5fb3628b: OUTPUT: «Hash[Any,Set] %oh = (my Any %{Set} = Set.new(4,5) => "0")␤» [19:14] still, this does resolve my current issue :) [19:25]  m: dd "acedgfb cdfbe gcdfa fbcad dab cefabd cdfgeb eafb cagedb ab | cdfeb fcadb cdfeb cdbaf".split(" | ")[0].split(' ').map: *.comb(/(\w+)/).split('').grep(* ~~ /\w/).Set [19:25] rakudo-moar b5fb3628b: OUTPUT: «(Set.new("d","c","e","g","f","a","b"), Set.new("b","e","d","c","f"), Set.new("a","g","d","f","c"), Set.new("c","f","a","d","b"), Set.new("d","b","a"), Set.new("d","a","b","e","f","c"), Set.new("f","b","d","c","e","g"), Set.new("e","b","f","a"), Set.ne…» [19:26]  m: dd "acedgfb cdfbe gcdfa fbcad dab cefabd cdfgeb eafb cagedb ab | cdfeb fcadb cdfeb cdbaf".split(" | ")[1].split(' ').map: *.comb(/(\w+)/).split('').Set [19:26] rakudo-moar b5fb3628b: OUTPUT: «(Set.new("d","e","b","","f","c"), Set.new("c","b","","a","d","f"), Set.new("d","b","c","","f","e"), Set.new("b","","f","c","d","a")).Seq␤» [19:27] lizmat ^^ here you can see the issue with unexpected "" s in the sets [19:28] m: dd "foo".split("") [19:28] rakudo-moar b5fb3628b: OUTPUT: «("", "f", "o", "o", "").Seq␤» [19:28] isn't that the issue ^^ ? [19:49] m: dd 'acedgfb cdfbe gcdfa fbcad dab cefabd cdfgeb eafb cagedb ab | cdfeb fcadb cdfeb cdbaf'.split(' | ')[0].comb(/\w+/).map: *.comb.Set [19:49] rakudo-moar b5fb3628b: OUTPUT: «(Set.new("g","d","b","f","a","c","e"), Set.new("c","f","b","d","e"), Set.new("d","f","g","c","a"), Set.new("f","b","c","d","a"), Set.new("d","b","a"), Set.new("e","a","c","b","d","f"), Set.new("b","d","f","g","c","e"), Set.new("b","f","e","a"), Set.ne…» [19:52] m: dd "foo".split("", skip-empty) [19:52] rakudo-moar b5fb3628b: OUTPUT: «===SORRY!=== Error while compiling ␤Undeclared routine:␤ skip-empty used at line 1␤␤» [19:52] m: dd "foo".split("", :skip-empty) [19:52] rakudo-moar b5fb3628b: OUTPUT: «("f", "o", "o").Seq␤» [20:00] ggoebel, lizmat : uff.. yes that is exactly the issue. no idea why I didn't remember that .comb is what I wanted, not split('') [20:00] thanks for the reminder of :skip-empty ggoebel [20:03] *** ggoebel left [20:07] *** ggoebel joined [20:09] *** Sgeo joined [20:39] *** ggoebel left [20:53] *** monkey_ joined [21:07] ¦ doc: usev6++ created pull request #4001: Minor cleanup for section "Getting started" [21:07] ¦ doc: review: https://github.com/Raku/doc/pull/4001 [21:09] *** monkey_ left [21:09] *** monkey_ joined [21:10] *** ab5tract left [21:28] *** monkey_ left [21:39] *** monkey_ joined [21:49] *** lichtkind__ joined [21:51] *** lichtkind_ left [21:51] *** mexen left [21:54] *** dextercd left [22:28] *** getimiskon left [22:36] *** ggoebel joined [22:38] m: my Int %h{Set}; %h = Set.new(4,5) => 0; dd %h [22:38] rakudo-moar b5fb3628b: OUTPUT: «Hash[Int,Set] %h = (my Int %{Set} = Set.new(5,4) => 0)␤» [22:38] *** monkey_ left [22:43] *** Manifest0 left [22:45] *** monkey_ joined [22:46] *** monkey_ left [23:46] *** committable6 left [23:46] *** reportable6 left [23:46] *** quotable6 left [23:46] *** benchable6 left [23:46] *** greppable6 left [23:46] *** linkable6 left [23:46] *** evalable6 left [23:46] *** tellable6 left [23:46] *** nativecallable6 left [23:46] *** bloatable6 left [23:46] *** notable6 left [23:46] *** unicodable6 left [23:46] *** releasable6 left [23:46] *** sourceable6 left [23:46] *** bisectable6 left [23:46] *** shareable6 left [23:46] *** coverable6 left [23:46] *** squashable6 left [23:46] *** statisfiable6 left [23:47] *** unicodable6 joined [23:47] *** reportable6 joined [23:47] *** quotable6 joined [23:48] *** evalable6 joined [23:48] *** sourceable6 joined [23:48] *** nativecallable6 joined [23:48] *** notable6 joined [23:49] *** squashable6 joined [23:51] *** Xliff_ joined