»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
comborico1611 What is the purpose of the braces in following statement? $object.someMethod({:red(195), :green(110), :blue(70),}); 01:28
El_Che it's a hash 01:29
comborico1611 Hmm. Okay. Thank you.
El_Che the :red(195) is a short hand for red => 195 01:30
comborico1611 Oh!
Also is the list comma a typo? 01:31
El_Che without the braces you'll be passing a list
comborico1611 (I'm copying it as I see it from a book.)
El_Che the comma separates the pairs 01:32
comborico1611 Oh!
The last one is necessary?
(70),
El_Che no 01:33
comborico1611 Is it an error?
El_Che no
geekosaur the last oen isn't necessary here, but becomes habit because (x) is just x but (x,) is a list containing x
El_Che it's good for copy pasting, or adding one more
certainly if you format the hash in different lines
geekosaur also it makes it easier to add more values to the end, especially if you are spreading it over multiple lines
comborico1611 Hmm. I will add these to my notes. Thank you! 01:34
El_Che comborico1611: have a look at hashes here: docs.perl6.org/type/Hash 01:35
if not clear, raise a bug :)
comborico1611 Thank you. First I'm going to go back in this book and see if the author mention the : shorthand syntax. If not, I'll make sure I I rip on him for that in my review. 01:36
El_Che who's book are you reading? 01:37
geekosaur 'colonpair' is the standard term for it
comborico1611 Think Perl 6
El_Che I browsed through it on orailly safari
I think it's more a "learn to program" book than a "learn perl 6" book, though 01:38
comborico1611 I disagree. I think it is a book for people which know how to program, but definitely not Perl 5 programmers. 01:40
Ideal for someone who has been away from programming for a while.
El_Che like I said, I just browsed through it 01:41
comborico1611 But i just admit that I'm not the typical programmer type. I'm more of an I/T type then computer science. 01:42
Just = must
Than
El_Che in that case it may be a good fit
comborico1611 Geekosaur, thank you for the term colonpair. You just save me 15 minutes. And he did mention it in the book, but it is in a chapter which he said could be skipped on a first reading. The author has a few chapters dedicated to practice exercises. 01:45
bb hello 01:53
audiatorix is there any elegant way to get an array of each byte of a string? 02:16
geekosaur docs.perl6.org/type/Str#method_encode 02:19
audiatorix Would I need to use the experimental unpack method on blob? 02:22
geekosaur and presumably .List to turn the buf8 into a list
(or .Array if it needs to be mutable)
geekosaur m: "abc".encode("latin1").List.say 02:25
camelia (97 98 99)
geekosaur note that you have to encode it; Str does not contain bytes, it contains graphemes
audiatorix right 02:27
thanks
grondilu is JSON::Fast broken or something? I have an error complaining about parenthesis 02:32
===SORRY!=== Error while compiling /home/grondilu/site#sources/5FD1C95F89B03F456148D15142B2C1CA718C905F (JSON::Fast) 02:37
Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 53)
------> last unless ⏏$wsord == 32 || $wsord == 10 || $wsord =
grondilu can't even run panda update because of this 02:40
should I gave up on panda and install zef?
*give 02:41
comborico1611 Goodnight! 02:45
grondilu updated JSON::Fast with zef 03:03
wander afternoon #perl6 ~ 05:22
pentashift Good evening 05:28
wander .ask [Coke] what is the use of Disambiguation files? It seems we cannot reach those pages directly from out doc site 07:09
raiph .tell eugene_barsky $a = $_ with $b # only does assignment if $b is defined 07:15
ZzZombo why 07:47
m: my Int:D $x=1;say $x.isa(Int:D)
camelia False
ZzZombo m: my Int:D $x=1;say $x.isa(Int)
camelia True
moritz ZzZombo: isa is not a type check, it's an "is instance of"-check 08:00
ZzZombo: and 1 is an instance of Int, not of Int:D
moritz I know that's confusing :-) 08:01
moritz m: subset A of Int where * > 2; say 5.isa(A) 08:01
camelia False
ufobat_ what do i need to do in oder to pass something that was created like that: "my Mu $l := nqp::list_s()" into a sub with a signature like this sub foo(*@a) { ... }
basically what $list.flat() would do?
moritz ufobat_: have you tried foo(|$l) ? 08:02
ufobat_ nope 08:03
Cannot find method 'FLATTENABLE_LIST':
moritz foo(@$l) ? 08:04
ufobat_ m: use nqp; my Mu $l := nqp::list_s("a", "b"); sub foo(*@a) { say @a.perl }; foo(@$l) 08:05
camelia Cannot find method 'cache': no method cache and no .^find_method
in block <unit> at <tmp> line 1
ufobat_ maybe i need to create a List object, first? 08:05
moritz m: use nqp; my Mu $l := nqp::list_s("a", "b"); sub foo(*@a) { say @a.perl }; foo(@ = $l) 08:06
camelia Cannot find method 'perl': no method cache and no .^find_method
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
moritz :(
ufobat_ my first time in nqp :D
geekosaur you'll have to find whatever nqp function flattens an nqp list; it's not a perl 6 list 08:09
ufobat_ there is an interator, but i dont find something to flatten it :( 08:12
lookatme m: use nqp; my Mu $l := nqp::list_s("a", "b"); sub foo(*@a) { say @a.WHAT; }; foo(@ = $l) 08:28
camelia (Array)
lookatme m: use nqp; my Mu $l := nqp::list_s("a", "b"); sub foo(*@a) { say @a.of; }; foo(@ = $l)
camelia (Mu)
lookatme m: use nqp; my Mu $l := nqp::list_s("a", "b"); sub foo(*@a) { say @a.^methods.grep({$^a.name eq "perl"}); }; foo(@ = $l) 08:30
camelia (perl perl)
Geth doc/add-edit-ico: 9b946252ac | (Alex Chen)++ | 3 files
Add edit ico

A try to fix #1622 .
09:13
doc: W4anD0eR96++ created pull request #1667:
Add edit ico
09:15
AlexDaniel m: say 42 09:16
camelia 42
ufobat_ lizmat, you're an nqp guru :-) you could help me, maybe? 09:26
lizmat I might, what is the problem ?
ufobat_ maybe you can read up in your history, i want to pass a my Mu $l = nqp::list_s() thingy into a sub(*@foo) { ... } 09:27
github.com/rakudo/rakudo/pull/1242...r149797893
lizmat ufobat_: that won't work 09:32
ufobat_ ja :-) 09:33
HoboWithAShotgun yawns himself into a new day 09:33
lizmat ufobat_: the closest thing you can do with a list:s: 09:34
m: use nqp; my $s := nqp::list_s("a","b","c"); sub a(Mu $list) { dd $list.^name }; a $s
camelia "BOOTStrArray"
ufobat_ the thing i tought was that tha code in IO::Spec::*.catdir() does exactly what resolve() is missing
travis-ci Doc build passed. Alex Chen 'Add edit ico 09:35
travis-ci.org/perl6/doc/builds/299535705 github.com/perl6/doc/commit/9b946252ac6a
ufobat_ your example wont help in the PR. I thought maybe i could create a List with the $l in it?.. But regarding my PR is it reasonable to use catdir() in resolve()? and maybe you have a hint how this could be achived? 09:37
Geth doc/add-edit-ico: 5a749c93ec | (Alex Chen)++ (committed using GitHub Web editor) | htmlify.p6
Update htmlify.p6
09:50
lizmat ufobat_: sorry, was distracted 09:50
ufobat_ no worries :-) 09:51
lizmat Spec.catdir is a public method, right? 09:52
ufobat_ right
lizmat the only way to make that work, is it to have a candidate that takes a Mu and then handle it inside in nqp
.flat will never work on a list_s anyways 09:53
need to be afk now&
ufobat_ okay! thank you 09:56
moritz didn't we have a somewhat general op for upgrading NQP to Perl 6 types? 10:53
m: use nqp; my Mu $l := nqp::list_s("a", "b"); sub foo(*@a) { say @a.perl }; foo(nqp::hllizefor($l, 'perl6')) 10:54
camelia Cannot find method 'perl': no method cache and no .^find_method
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
jnthn nqp::hllize
Oh, you found it :) 10:55
moritz m: use nqp; my Mu $l := nqp::list_s("a", "b"); sub foo(*@a) { say @a.perl }; foo(nqp::hllize($l))
camelia Cannot find method 'perl': no method cache and no .^find_method
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
moritz seems it doesn't configure a mapping for list_s
jnthn But Nope
gah
No, it doesn't
But
my str @array is using the exact same representation as an nqp::list_s 10:56
Geth doc/add-edit-ico: 21437e407d | (Alex Chen)++ | 3 files
Keep ico style consistent
12:19
holyghost I've made something which uses a levels hash inside octants to collide against intersected world objects (something based on an octtree), I don't know if it's any faster but here it is at pm : perlmonks.org/?node_id=1203007 I will port it to perl6 tomorrow or this weekend 12:40
xi- is there a way I could use modules from an entire directory without having to explicitly use each module? 12:47
DrForr You may not have wanted to know this, but Common Lisp's (loop) functionality is trivial to implement. 12:52
DrForr Well, at least the 'collect' bit which is all I was really after. 12:55
And I get my first "Heap exhausted, game over." error in sbcl. 12:58
xi - maybe look at Pluggable? 12:59
perlawhirl Hi DrForr 13:01
I'm running into a Readline error (it occurs on 2 Centos 6 boxes), but... I don't suspect it's Readlines fault, so I haven't raised an issue
but can you take a peep at this gist and tell me if you've got any ideas 13:02
gist.github.com/0racle/c7e65b6946a...fbafc04f53
I suspect it's NativeCalls fault, but... I'm known to be wrong about things from time to time :D
DrForr It could be me, that might be a new variable that's appeared since I've seriously looked at the code. 13:04
DrForr Which is an embarrassingly long time, I'll freely admit. Let me set an alert on my phone and I'll delve into it tonight. I'm at work here and was just tossing out a quick tidbit. 13:06
perlawhirl no probs. It's been happening for maybe a month, it's not a deal breaker, just a little annoying... which is to say, no rush, i appreciate you taking the time when you can. 13:07
The line it points to in readline is just a sub that calls a native sub... nothing too special going on, so i suspect something has changed inside NativeCall 13:08
(which may need to be accounted for in Readline, possibly)
DrForr Right. I certainly won't dismiss it as a user error. 13:08
perlawhirl both boxes are running a Rakudo manually built from head. I might see if I can replicate it Star or with a point release via rakudobrew. 13:10
will let you know
DrForr I'm just gratified that someone is using the code... I've got some plans that have been brewing while I take a break from things. 13:13
perlawhirl So, doing a little digging and the error looks like it's coming from nativecall.c in MoarVM 13:14
github.com/MoarVM/MoarVM/blob/8719...all.c#L153
DrForr Incidentaly 'say Loop { Repeat 3; Collect 5; };' correctly returns [ 5 5 5 ]
[Coke] .tell wander not sure why you're asking me about the disambiguation files. They predate my involvement with doc, I don't have any special knowledge, sorry.
census DrForr !
DrForr Someone on FB said "I like (format) but for gods' take don't impleent (loop)." Red flag. Bull. 13:15
Er, gods' sake. Insert Japanese pun here. 13:16
[Coke] ... ENOTBOT 13:17
wander [Coke] I don't know who is in charge of this stuff. Could you please take a look at github.com/perl6/doc/issues/1666 13:18
DrForr I'm writing (among the usual too damn many things) Format::Lisp and the CL test suite uses (loop) constructs. I just wanted to be able to write the test files so that they look like the CL test suite. 13:19
geospeck What is the equivalent to perl's 5 "perl -c -Mwarnings -Ilib" for syntax checking? I know you can do "perl6 -c" but I cant see anything for warnings. Thanks
wander If these files are useless now, we can stop generating it. 13:19
DrForr This way all I need to do is replace () with {}, move to prefix, change case and Robert becomes the brother of your father. 13:20
wander .ask moritz are you in charge of 'write-disambiguation-files'? why do we generate disambiguation files? please take a look at github.com/perl6/doc/issues/1666 13:23
I found moritz wrote the origin version 'write-disambiguation-files' 13:24
Geth doc/add-edit-ico: 4f224f8be1 | (Alex Chen)++ | 2 files
Remove ads
13:26
doc/master: 5 commits pushed by (Alex Chen)++ 13:27
[Coke] wander: no one's in charge of anything at this point. You should be able to generate the site locally and see if any of the disambiguation pages are linked to from anywhere. 13:29
If we're not using them, we either *should* use them, or not create them, I agree.
moritz wander: the idea was that you can just put anything in the URL after docs.perl6.org/ and you'd get some docs for that 13:31
[Coke] might be able to use it as the basis of github.com/perl6/doc/issues/1099 13:33
wander well, sounds functional. but we have search.js, don't we? and this usage is implicit 13:34
moritz wander: the difference is that when somebody asks me about an operator, I can give them an URL without having to open the search thingy first 13:35
I'm not super into this feature, but I did built it because it scratched an itch I had
wander emmm...then we need a better searching(listing) machine 13:43
docs.racket-lang.org/search/index.html
moritz why? 13:44
even with a better search engine, I actually have to open it to use it
(not saying we don't, I just don't see the connection here)
wander docs.racket-lang.org/search/index.html?q=let 13:45
wander I'm thinking about search engine... if the search action result in a page listing thing relevant, which is quite similar with disambiguation file, it may be a better practice. Meanwhile, you can write give guys an URL in format above. 13:50
wander Meanwhile, you can write an URL like above and give it to others 13:50
Without open it and use it 13:51
Geth doc: 6e1aa87b7e | holli-holzer++ (committed by Zoffix Znet) | doc/Language/5to6-nutshell.pod6
Update 5to6-nutshell.pod6 (#1665)

mentioned AUTOLOAD/FALLBACK
14:26
synopsebot Link: doc.perl6.org/language/5to6-nutshell
Geth doc: de8acaf0d9 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/5to6-nutshell.pod6
Reword

  "Gone" suggests the feature is gone entirely, but FALLBACK is very
similar, so just suggest it as alternative.
14:28
luke___ Hello, I'm using the Rakudo compiler and I'm wondering what the -n option does exactly 15:56
I know that it loops over each line on input, but is there a way to set code to be executed after the loop? 15:57
AlexDaniel luke___: LAST should work 15:58
AlexDaniel luke___: docs.perl6.org/language/phasers#LAST 15:58
[Coke] luke___: cat /etc/passwd | perl6 -ne '.say; END {say "EEK"}' 15:59
(I tried LAST, no luck)
AlexDaniel huh 16:00
AlexDaniel I was 100% convinced that it was working 16:00
luke___ Since I'm going to use it for golfing, END is even better ;-) 16:01
AlexDaniel hah
luke___: anyway, I created this issue: github.com/perl6/doc/issues/1668
AlexDaniel luke___: is it code-golf.io/ ? :) 16:02
luke___ I'm on codegolf.stackexchange.com
AlexDaniel ah okay
luke___ This is my current solution: codegolf.stackexchange.com/a/147584/63774 16:03
As it's twice as long as the Perl 5 solutions, I'm quite sure I can do it a lot shorter
But since I only started learning Perl 6 3 days ago, I don't think it's too bad...
luke___ Is there a variable that is auto-initialised to 0? 16:06
[Coke] m: my $a; say ++$a; 16:09
camelia 1
Geth perl6.org: 634f187e7e | (Steve Mynott)++ | 2 files
Rakudo Star 2017.10
ZzZombo @!children.grep({.isa(Grammar::VDF::Key-Value) && (!@names || .name eq @names.any)}); #this returns all values, probably filtered by name(s) 16:20
@!children.first({.isa(Grammar::VDF::Key-Value) && .name eq $name}); #this is supposed to give first matching value, but always gives Nil, while the first works. What's wrong?
stmuk rakudo.org/2017/11/09/announce-raku...e-2017-10/ 16:25
[Coke] stmuk++ #thanks for all the star releases! 16:26
Geth doc: 2ca0128323 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/5to6-nutshell.pod6
Try to workaround busted link parser
16:37
synopsebot Link: doc.perl6.org/language/5to6-nutshell
havenwood I recall from years ago that there was a way to enforce OO style method calls, but I'm not coming up with anything searching for it. Is the "use oo" directive still a thing? 17:20
Juerd What does "OO style" mean?
havenwood Juerd: `"hi".say` enforced over `say("hi")` 17:22
Or the other way around.
perlpilot "enforced" doesn't sound very perlish 17:26
Juerd havenwood: The latter is not a method call, but a function call. 17:36
havenwood Juerd: Right, I'd swear there was a way to limit to only function calls or method on receiver calls. 17:37
ilmari say is both a built-in function and a method on Mu
havenwood Juerd: Maybe I'm thinking of another language, or maybe it was removed. I'm at a loss... 17:37
ilmari sounds like you want a linter
wander how can I convert `grammar { token Top { | a { say 42 } | b { say 10} } }` into grammar with actions object? 17:54
wander that is, I have alternations. for this case, maybe I can test what `$/` is, but how about things go complex? 17:55
moritz when things become complex, you move the branches to separate regexes or tokens 17:57
and then the token that matches triggers its own action method
wander ok 17:59
moritz wander: have you looked at a few existing, working grammars, and looked how they do things? 18:23
[Coke] havenwood: being able to restrict that doesn't sound familiar to me.
moritz there are a few grammars for existing formats on modules.perl6.org that are less than a screen page each, and work well 18:24
wander Not a medium size project. Rakudo's Grammar.nqp is too large to understand well, demo grammars are not very practical. 18:27
moritz I'm not talking about demos 18:30
there are working INI and JSON grammars, for example
moritz a Fortran grammar that has ~100 lines: github.com/nobodyinperson/perl6-fo...rammar.pm6 (no idea how good it is though) 18:31
JSON: github.com/moritz/json/blob/master...Grammar.pm 18:33
INI: github.com/tadzik/perl6-Config-INI...fig/INI.pm 18:34
wander have opened the links and write them on the note 18:38
Here is my practice in grammar: gist.github.com/W4anD0eR96/8ea22f5...a98878e36e 18:39
Part of a lesson task, convert C code(subset of grammar) into an intermediate code 18:40
wander ugly though 18:40
daniel__ Hello all! 19:41
DrForr Evenin'. 19:41
luke___ Hello
daniel__ I have a strange issue with $@ that I am trying to wrap my ahead around. $@ starts out populated, but after the statement "if ($@)", it is empty. 19:42
Stranger still, "if ($@)" evaluates true
moritz daniel__: are you actually using Perl 6? 19:43
if not, you should try #perl
daniel__ Oops, that is my bad, thank you
dj howdy. I'm probably not the first to notice this: at the bottom of perl6.org/compilers/features it claims to be updated hourly, but the timestamps below that are quite old (from 2016) 19:48
geekosaur that page probably shouldn't exist any more 19:49
dj the latest rakudo announcement references it 19:50
moritz dj: thanks for the report
geekosaur let me correct that: comparisons to niecza (and pugs mentioned at the bottom) shouldn't exist any more. 19:52
ufobat_ is perl6/roast the complete testsuite for perl6 or is there somewhere something else? in other workds, if i make a change and pass the spectest it's okay so far 20:13
AlexDaniel ufobat_: there are also some rakudo-specific tests: github.com/rakudo/rakudo/tree/master/t 20:14
moritz ufobat_: there are some tests local to rakudo (in the t/) directory too, but not too many
ufobat_: in rakudo, if you do a "make test" and a "make spectest", you should be covered
ufobat_ ok, ty :-) 20:15
leont Regarding the picture thing, I remember a picture of perl6 people being taken at an NLPW 1 or 2 years ago, probably by woolfy, that may be suitable (though I still would recommend checking it with people first) 20:34
DrForr leont: I'd guess it's the one we're using on the FB Perl 6 group backdrop.
leont given myself a FB-free month, so I can't check :-) 20:41
DrForr Good call. 20:46
tadzik we'll give you a coin after 12 months :P 20:47
DrForr Bitcoin? Sign me up!
moritz a dogecoin maybe :-) 20:48
tadzik a dogecoin tipbot on #perl6, that'd be quite something :) 20:49
DrForr WTH do Venetian rulers have to do with blockchains?
tadzik sounds like there's more meanings to "doge" that I was aware of :o 20:51
DrForr When Venice was at the height of its power, they elected their rulers and called them doges. 20:52
moritz en.wikipedia.org/wiki/Dogecoin 20:54
DrForr wishes he had a fan. The downstairs neighbors are having goulash, and it's all over. 20:58
tadzik ach, the smell of goulash... a double-edged sword 21:02
DrForr Indeed. There's a place by the office that makes the good stuff, but I don't have to live above it :) 21:04
Hrm, I'm moving above a Chinese restaurant tomorrow, maybe I should have thought about that. 21:06
It might also increase the odds of Kristen Wiig being in the neighborhood, so there's an upside. 21:07
tadzik hmm, a "cascade operator": gist.githubusercontent.com/kasperp...scade.dart 21:19
is there a module for it already? :)
tadzik oh, and I haven't said it here yet: consider getting a dashcam if you drive a car 21:21
people can be... surprising sometimes
moritz like, throwing themselves before your car to claim insurance? 21:21
tadzik I head about that happening too, in my case it was a Moose Test with another car playing the Moose role 21:22
I passed but ripped a tire on a curb, now the cost is on me
tadzik (also, it might've made a really cool replay :P) 21:23
moritz ah, good old Moose :/
comborico1611 I'm frustrated guys. 21:25
tadzik how can we help? :)
comborico1611 You know those people who want to be a programmer, but they don't like math problems? 21:26
tadzik sure
comborico1611 Well, I'm one of those. 21:26
tadzik so, you're looking for exercises but don't like project euler?
DrForr Project Eule?
comborico1611 I have interest in networking. And I've even read 1.5 books on it. 21:26
DrForr *Euler 21:26
comborico1611 Well my frustration comes from and unsure position whether I should continue trying to be programmer. 21:27
tadzik why do you think you shouldn't?
does everyone feel like a math geek and you feel out of place, or? 21:28
comborico1611 The route I was told to get into networking is first to learn C, which is where I'm having a problem.
The practice problems in most of the programming books or heavily math-related. So I typically skip those. 21:29
DrForr Most of what I do for work is implementing business logic which is nowhere near hardcore math.
tadzik +1
comborico1611 That's encouraging to hear. Thanks.
tadzik the most advanced math I ever used in my "career" was a cos(x) function. And I say career in quotes because it was for a university project
that was... let's see 21:30
4 years ago apparently
comborico1611 So I recently bought a bundle of books. Three of them are about C or Unix related. Two of them are concerning cplusplus framework called I can't remember it's for a networking.
tadzik oh sorry, it was atan() actually :)
moritz comborico1611: learning C for network programming is very old school. You can do with dynamic languages (Python, Perl), or Go if you need higher performance
DrForr I've done N-gram cluster analysis for lexemes, which is fairly intense, but I was also doing more of the R portion of R&D. 21:31
moritz and Perl/Python/Go are easier on the beginner than C or C++
tadzik I'd say C is a useful rite of passage if you want to get into programming for programming's sake
comborico1611 Moritz, but the good resources that people recommend are typically in C.
tadzik it's definitely beneficial to know how things work under the hood when writing a highlevel code, but nowhere near essential 21:32
so what books did you buy, comborico1611?
DrForr The goulash has dissipated, yay. About to start freezing here. 21:33
moritz though some of the best networking people I know only do a little programming
comborico1611 In my mind, I'm trying to attain a higher level of networking skills, because I'm not interested in creating programs, mainly because I'm not good at problem solving. I suspect that networking is more repetitious than General software development.
moritz but they know all about BGP, VPLS, router configuration, VLANs and all that good stuff
comborico1611 Networking (that famous one). Let me go upstairs and check but they're all called. 21:34
DrForr These days there's a big push to automate a lot of that, so Docker/ansible is useful too.
tadzik by The Guy? :P
it rings a bell
comborico1611 Okay so the granddaddy book is UNIX Network programming by Stevens. 21:35
You need to know C to understand that.
comborico1611 Someone recommended learning about computer systems before learning C because that would make things easier. So I bought computer systems by Bryant. 21:36
I read computer networking by kurose, and it was easy to understand and interesting. 21:37
Another Unix book is UNIX systems programming by Robbins, which you need to know C 4. 21:38
And then a small book like a hundred Pages called pocket socket guide which is written in C as well.
tadzik hm
comborico1611 And like I said, two books 4 C plus plus networking using the ace framework.
DrForr Well, beyond pointer math there's really not a lot of intense math involved in the network layers... 21:39
tadzik C can be a bit intimidating, but the upside is, once you understand it, little will be able to scare you :)
comborico1611 Nope. Learning the router algorithms we're difficult and I skipped it.
moritz DrForr: there's always bit operations for dealing with IP network addresses and stuff
comborico1611 Bit operations meaning requiring C? 21:40
DrForr Yea, but I don't count those as "advanced." But my background is maths.
comborico1611: You can do bitwise stuff in most languages.
comborico1611 And then I bought Pearl 6 because I felt like it was such a radically different programming language that knowledge of it may help steer me in the right direction. 21:41
DrForr Perl actually gets used quite a bit for socket and network stuff, especially for people banging out exploit POCs because packet creation is simple with the pack() instructions. 21:43
comborico1611 But one thing I learned in dealing with these books in the last 9 months is that I definitely prefer a certain Style of writing.
Hmm. That's good to know, drforr 21:44
tadzik is it C itself that you have trouble with, or the math/algorithms involved? 21:45
DrForr The pointer stuff can be intimidating, Perl abstracts that away from you. 21:46
But of course if you haven't done much in C you won't know what I'm taling about. 21:47
comborico1611 I'm having problems with c because the layout of the book is topical based. the author does not hold your hand and introduce topics to you slowly. It is essentially a reference manual. In fact that's the title of the book. Lol
comborico1611 I could follow along with pointers in C plus plus. At least at a basic level. 21:48
DrForr I haven't done C seriously for probably a decade, can't advise on books. 21:48
comborico1611 If I know the fundamentals of perl 6, would I be able to get along and perl 5 if I needed to? 21:49
comborico1611 Along with" perl 5. Let me switch to an actual keyboard. 21:50
tadzik sure
it may seem weird at places ;)
teatime comborico1611: there's not really suuuper similar, nothing like python 2 vs. 3, but a lot of the coolest/nicest perl6 features have been backported to perl5 it seems like
I don't really do perl5 or keep up w/ it these days
comborico1611: warning: you may find yourself getting along fine but constantly wishing it was perl6 21:51
I seem to do that w/ every language now
tadzik I do Perl 5 mostly these days, and... exactly what teatime says
wishing it was perl 6
DrForr When I teach Perl6 I find that I have to explain "yes, it's quite a bit different than how 5 does it." 21:52
El_Che You loose a lot of built-in perl6 features, you win order of magnitudes in modules
tadzik and quite a bit of performance :) 21:53
DrForr El_Che: But we have Inline::Perl5 to bridge the gap :)
El_Che DrForr: while I appreciate the smart people that did that, no :)
you don't want to manage 2 chains of dependencies 21:54
tadzik . o O ( I wish I only had 2 chains to manage :P ) 21:56
DrForr Nod, I've been having trouble coming up with a good migration strategy. 21:57
El_Che this weak I hit a perl5 problem, that reminded me of perl6 weak points: deployment
week
El_Che I was migrating a perl 5 project to docker. Part of the migration is using Hashicorp's Vault for storing secrets. Because it's not a inhouse soft, the most plausible option was writing a wrapper that queries Vault en injects the secrets 21:58
I wrote the thing in Perl 5 and it had more dependencies that the actual soft we were running
El_Che so with pain in my heart I started rewriting the wrapper in go 21:59
teatime my personal site / ssg involves ruby, javascript, haskell, may soon adopt some Lua, hrm.. I think I eliminated python
considering adding perl6 :)
El_Che teatime: we have a small perl6 project in production. Want to migrate to docker soon as well :)
teatime I installed docker, which upon apt-get install, makes a network bridge and assigns it an address from a subnet it hopes you're not using, 172.0.0.1 ... which happens to be my LAN subnet and gateway IP 22:00
I'm like, "how the heck is docker getting my default route IP and then why is it making it the bridge iface addr", but no, it was just bad luck / coincidence 22:01
sorry, 172.17.0.1
El_Che teatime: I suspect it's the distro's fault
I don't know if it's harcoded
teatime well it's the docker project's packages, it's not in debian's repos
El_Che (all the tutorials point to that though)
we're having good results with docker + ipv6 22:02
all the ipv4 iptables+forwarder magic disappears
teatime it would also be nice if you could change just that property of the docker network, but it seems I have to delete it and re-create it from scratch.
comborico1611 Teatime, thanks for the info!
teatime yvw 22:04
samcv m: <a ab bc ad ba>.comb(/\S*a\S*/).say 22:43
camelia (a ab ad ba)
samcv m: <a ab bc ad ba>.comb(m/\S*a\S*/).say
camelia Use of uninitialized value of type Any in string context.
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.
in block <unit> at <tmp> line 1
Cannot resolve caller comb(Str: Nil); none of these signatures…
samcv is this supposed to work? there's a roast test that's skipped
my first thought is to say that the test is wrong, but maybe someone else can confirm/deny that
TimToady samcv: no, that shouldn't work, since m// matches against $_ before ever .comb is called 23:34
El_Che \o/ <-- I finally have rakudo alpine packages. Important addition for containers 23:46
still some small stuff to fix before release 23:47