🦋 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:03 sena_kun left 00:07 reportable6 left 00:09 reportable6 joined 00:21 jgaz left 00:23 Guest16 joined 00:48 lucasb left 01:03 sgrs left 01:14 habere-et-disper joined 02:10 habere-et-disper left 02:20 razetime joined 02:30 m_athias left, nine left, nine joined 02:31 m_athias joined 02:34 mahafyi joined 02:40 razetime left 03:40 benchable6 left, tellable6 left, releasable6 left, committable6 left, nativecallable6 left, notable6 left, bloatable6 left, shareable6 left, unicodable6 left, quotable6 left, sourceable6 left, statisfiable6 left, bisectable6 left, greppable6 left 03:41 bisectable6 joined, benchable6 joined, nativecallable6 joined, tellable6 joined 03:42 greppable6 joined, unicodable6 joined, shareable6 joined, sourceable6 joined 03:43 committable6 joined, statisfiable6 joined, quotable6 joined, bloatable6 joined, releasable6 joined, notable6 joined 03:56 jjido left 04:03 Kaiepi joined 04:28 bigdata joined 04:49 sgrs joined 04:52 Guest16 left 05:44 sgrs left, razetime joined 06:08 reportable6 left 06:09 reportable6 joined 06:53 xinming joined 07:53 squashable6 left, linkable6 left, coverable6 left, committable6 left, evalable6 left, nativecallable6 left, notable6 left, reportable6 left, greppable6 left, bloatable6 left, sourceable6 left, releasable6 left, bisectable6 left, benchable6 left, quotable6 left, shareable6 left, unicodable6 left, statisfiable6 left, tellable6 left, bloatable6 joined, sourceable6 joined 07:54 unicodable6 joined, evalable6 joined, squashable6 joined, quotable6 joined, linkable6 joined, coverable6 joined, statisfiable6 joined, reportable6 joined 07:55 committable6 joined, shareable6 joined, benchable6 joined, releasable6 joined, tellable6 joined, notable6 joined 07:56 greppable6 joined, bisectable6 joined, nativecallable6 joined
Geth advent/master: 6 commits pushed by (Alexey Melezhik)++, (Juan Julián Merelo Guervós)++ 08:34
08:52 mahafyi left
Nemokosch Hi, I have two "marketing" thoughts 09:25
The first one is about utilizing the weekly challenges for education purposes. Although I haven't given up on the idea of a first language Raku video tutorial, that's quite big pressure and a lot of time; maybe the holidays can decide if I can make reasonable progress with that idea. 09:26
However, there used to be Weekly Challenge reviews, and I think I could revive that in a looser format that is more about how a certain, relatively simple task might be solved in Raku, and encourages people to do the same 09:29
09:31 discord-raku-bot left, discord-raku-bot joined
So my idea was: what if this sort of "academic interest", one can say, could be channeled in a useful manner? I think Raku offers a lot to learn about how a real-life language works in all aspects: ecosystem, parsing, compiler and all the nifty details; and Raku offers this with, I'd say, a relatively low entry point. 09:34
09:39 razetime left, razetime joined
Raku problems and challenges could serve as a topic for several master theses for sure 09:49
El_Che morning 09:53
Woodi hi 09:56
Nemekosch: "several master theses for sure" for sure. but do someone considered doing apps ? 09:57
Nemokosch Well... what "apps", and why? 10:02
Woodi example i have in mind: wicd that is now obsolote - python 2.x 10:11
apps that people want to install and use 10:12
10:14 Sgeo left
Nemokosch Not gonna lie, I don't think that's the niche of Raku, if Raku even has a "niche" 10:16
"apps" depend on their own graphic frameworks (desktop) or OS-specific SDK's (typically smartphone). What basically follows is that you either use the language that provides those libraries, or you make bindings to them. For Raku, basically this means the latter. Now, making cool bindings to, say, a C/C++ library is anything but easy. leont had an idea about a certain approach to GTK integration, if I understood it right, you can check it 10:20
Woodi Nemokosh: agree, it's not easy. that why python is considered a standard now. And java and C# 10:23
leont Yeah, GTK has enough introspection that you should be able to mostly make bindings automagically
Nemokosch I don't really believe in this "make a couple of apps and dang, you have an established language" approach; I think that's neither a guarantee of success, nor a requirement of it. As it seems currently, Raku is much more a CLI and backend-oriented toolset - much like Perl in its shiniest days. 10:24
Also, you know... performance is still a too big issue to ignore and hope it would be resolved if somebody publishes enough slow apps 😅
Woodi Nemokosh: it's at least 4th time I point Java and C# example here and I still belive it is requirement for language to become popular 10:27
Nemokosch Ironically enough, I believe it would be easier to get "academic" people work on compiler and runtime challenges (and there is enough work to do there) than to get people pick Raku for apps out of all the choices of the world 10:28
Woodi and jnthn++ for initial GTK work but...
at least personally i hate GTK
Nemokosch Think of Go
I know Go has the "google flavor" but to counter that, it's really an ugly language with terrible dependency management, and still 10:30
for Java and C#, I think they also aren't big because of the "apps"; they are big because of their enterprise-level tech stack offers for, you know, boring ERP stuff and such 10:31
anyways, ideas are welcome. If you think we can knock down wicd, so be it; I'm not sure what work I can contribute to that 10:35
El_Che Nemokosh: that's a very weird statement about go. Go's module management and build are way more sane than anything we have. 10:46
Nemokosh: I wouldn't mind Raku copying lots of stuff from there 10:47
Nemokosch Go's module management is basically copying a list of repositories xD 10:49
El_Che not at all
andinus`` what are the disadvantages to go's modules vs say what raku has? (cpan like) 10:50
El_Che it's build around semver to avoid diamond and breaking dependences
go will never upgrade to a major release, dependencies can be vendored and are part of the build 10:51
if you do SRE kind of stuff, there are not many contenders
Nemokosch the sole fact that there is a require and then an infinite list of github repositories is a nonsense 10:52
El_Che there isn't much difference between use, import or whatever other languages use
that part is very similar to Raku 10:53
Nemokosch except you don't end up with a horrible list of infinitely many github url's in other languages
El_Che except you don't have to write stuff like META6 manually
go mod does that for you
with pinned versions and hashes 10:54
go got its act together with go mod
before that there where several community modules trying to be a module manager
Nemokosch you "don't have to", more like it's basically impossible to write or read it 10:55
because it's an endless pasta of repo urls
El_Che it where you dependencies can be retrieved, yes 10:56
r
and once it's retrieved once and vendored, you're good to go
(besides that googles proxies and keeps all versions)
it's by far the best dependency system I have ever seen 10:57
e.g. compared to the continous breakage in Ruby and npm
or the pain to deploy perl and python
so, I get critique about the lack of expressiveness or that it may be slower than rust, but the modules are very fine 10:58
10:59 bigdata left
Nemokosch wow, even imports are this horror 11:00
El_Che I have used extensively in production, and it's by far the best flow on our CI 11:01
java and python are orders of magnitudes more complicated and fragile
(no raku ci flow yet, that stuff I build with custom docker)
Nemokosch exactly, "in production", that is, for some overkill, boring enterprise thing that nobody would really want to use by themselves 11:02
El_Che I have many side projects in Go
I don't have to convince you, but I found it a weird point of critique (the others I understand or agree to some point) 11:03
Nemokosch Sorry for you absolutely
Even Java makes this look much more acceptable
at least not a part of the language
El_Che import be.nxadm.myproject.* 11:04
Nemokosch It's okay but I also don't think I have to convince you that whoever looks at that, will cry in pain
El_Che import github.com/nxadm/myprojec
t
I don't see much difference
except that go knows where to fetch it and java does not
so you end up writing complicated xml's 11:05
and you end with conflicts
and overwriten module loads because of path order
Nemokosch it's kinda weird to depend on github.com in your code
El_Che t
I don't 11:06
we have our own repository and proxy
Nemokosch yeah, enterprise level stuff
El_Che and google proxy as well by default
for my home I can setup gitea, gitlab or whatever I want
orders of magnitude than setting your own cpan at home 11:07
but my code resides already in github, so I don't bother
some people do
11:07 jjido joined
Nemokosch I have heard that the community also isn't fully content with Go's dependency management but frankly, I cannot confirm and don't even want to 11:07
the fact that there are url's hardcoded in the source code for something that isn't even gonna run in the browser is a big enough red flag for me, let alone ever having to look at go.mod
El_Che it's a name space 11:08
it's not used at runtime
for getching
and in my case not even used at buildtime after vendoring
Nemokosch I didn't assume that and that doesn't change the big picture 11:10
El_Che ok
no problem there, but I just don't see the issue
import owner/path/version vs use name<auth><version> 11:11
same same but different
Nemokosch I do think hardcoding auth and version is a mess either way - but still better than downright specifying the package with an url lmao 11:14
neither of these have anything to do in a source file
100% pick gradle over that
El_Che meh
11:16 sena_kun joined
Woodi standard library solves many things :) except maintenance effort and fundings for good devs ;) 11:23
probably story is similiar like with language visual design, you need to pick something 11:25
Nemokosch anyways, the point that you don't necessarily need "apps" in the stricter sense to succeed (and neither do they guarantee success - confer Tcl/Tk) still stands
Woodi and dropped pieces are forever pain
Nemokosch: never considered Tcl a success.... 11:26
tellable6 Woodi, I'll pass your message to Nemokosch
Nemokosch that's my point exactly 11:27
Woodi Nemokosh: ok, you got me on it :) but I was talking about language. and gui part in Tcl was actually best part of it 11:28
Nemokosch even though Tcl/Tk "apps" are definitely a thing, that's a legit stack
Woodi ...posibly that's why Java have ui parts... 11:30
Nemokosch and if I were to think from my own perspective... most of the things I am using on desktop are written in C, C++ or some Electron thing 11:31
Woodi becouse you can create ui in them ? :)
"fast, ui, x" ? :) 11:32
Nemokosch yes, there is some C# and Java but it's not more prevalent than Electron
the whole "app market" is kinda polluted imo, even for phone, and I think it would really be a tough game to make Raku actually useful for phone 11:33
Woodi yep, phones are new computers... 11:34
Nemokosch yeah, the hardware specs are insane. My 2019 phone is on par with my 2015 desktop computer in many regards 11:35
but I think even Python with e.g Kivy has slim chance with mobile apps 11:36
a change of topic: www.youtube.com/watch?v=vfxbTclTMtI what's the aftermath of this? Did we get persistent data structures, is this pending, abandoned... 11:37
11:51 sena_kun left 12:01 sena_kun joined 12:02 jaguart left 12:07 sgrs joined, reportable6 left 12:08 reportable6 joined 12:22 z4kz left
tbrowder good question, they would be very useful 12:55
persistent data, that is
Geth raku.org: 2colours++ created pull request #177:
Remove yoleaux bot from the community/irc page (extinct bot)
12:58
13:03 NemokoschKiwi joined 13:08 razetime left
Geth raku.org: 378ed3b3e9 | 2colours++ | source/community/irc/index.html
Remove yoleaux bot from the community/irc page (extinct bot)
13:11
raku.org: 52ac868e4e | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | source/community/irc/index.html
Merge pull request #177 from 2colours/remove-yoleaux-bot

Remove yoleaux bot from the community/irc page (extinct bot)
13:21 razetime joined
tbrowder any mac user here? 13:24
guifa raises hand 13:25
Nemokosch too many mac users here 🙊 13:26
13:27 sena_kun left
tbrowder hi, can you tell me if the GraphicsMagick library is available on mac? if so, can you show me the lines needed in a .github//wotkflows/macos.yml file to install it? 13:28
13:28 sena_kun joined
tbrowder thanks so much 13:28
*workflows
guifa It is definitely available, but I've not worked (sry for pun) with workflows before =/ 13:30
most everything I've seen on GM says to use homebrew or macports to install
tbrowder i would love to have an inexpensive remote mac available but "inexpensive" and mac are incompatible in the same sentence
ok, i think i can create the line if i know the correct package name. the line needed is just the command you use to install the packages on yr mac box 13:33
guifa Not sure your price range, but B&H in the US often has the last-year models available for ~$400-600. With Parallels and a Windows license, it's a nice dual purpose machine if you're not needing to make a full jump into the Mac 13:36
for mac minis, that is. That's what me and lizmat use
The command for ImageMagick is `brew install imagemagick`; they also recommend `brew install ghostscript` too 13:38
13:48 derpydoo joined 14:06 jjido left 14:07 NemokoschKiwi left 14:19 jjido joined 14:49 TieUpYourCamel left
tbrowder thnx for the inst line. 15:02
what is Parallels, a VM host thing? 15:03
*inst lines
hm, is the docker macos image usable locally? if so, that might be an easy way to go. 15:06
hm, is the docker macos image usable locally? if so, that might be an easy way to go. 15:07
locally on a linux host
guifa doesn't use docker so doesn't know 15:08
tbrowder .ask jmerelo is a docker macos inage usable on a local linux host? 15:10
tellable6 tbrowder, I'll pass your message to jmerelo
tbrowder jj is a big docker fan 15:11
Nemokosch I'm a big jj fan 😛 15:16
El_Che docker macos image? 15:18
guifa BTW, other than language and timezone, what are some other sysinfo stuff that might be of use for people to query? 15:20
Nemokosch I'm watching a presentation with Ruby examples and damn, this language really is a mashup of Python and Perl
15:20 razetime left
guifa is going to make a set of modules called User::Foo where each is a one-stop shop for getting user/system information 15:21
El_Che Ruby is pretty nice as a language, it feels like Perl with decent OO. The ecosystem is not fun, though.
(and every single person I know moved from Ruby to Go. Anecdotic, of course, but *every* single person) 15:22
guifa ah yeah, keyboard. That'll be trickier but might be useful for anyone capturing keystrokes in real time 15:23
15:24 derpydoo left
Nemokosch I mean Go is static and was marketed as a C contender at a time, no surprise it's more "useful" than a scripting language made popular solely by Rails 15:24
However, Go is not an appealing language whatsoever; it's the polar opposite of what I would like to spend free time with
El_Che Go was aimed at C. However, the inmediate compile time makes it feasable for people fron dynamic languages. And getting rid of nonsense like makefiles 15:25
I can honestly say, that in my experience Go is a lot bigger than python in devops 15:26
that pretty much every big tool in the ecosystem was written in Go helped of course 15:27
15:28 razetime joined
tbrowder ok, mac hosts tests making progress, note ghostscript is already installed on the base image 15:34
Nemokosch I'm working on software that will never get rid of nonsense like makefiles. The big milestone was getting rid of some Sun version of Pascal... 15:36
For devops - the reason I had to even listen to someone complaining about Go is Terraform
guifa Linux folks: IIRC, for native code stuff, things need to be compiled on a host system because the ABI isn't stable, right? But one can make an assumption OTOH that a compile of some sort is available, yeah? 15:39
El_Che Nemokosch: like I said, pretty much everything. Docker, Terraform, Vault, Nomad, Kubernetes, Consul, etcd, etc :)
tellable6 El_Che, I'll pass your message to Nemokosch
tbrowder btw, i use Make a lot for Raku modules and other dev. what do you use in its place?
Nemokosch I mean it's not the worst language for devops. There is always Shell. 🙂 15:45
no surprise those people who were okay with using Shell, are willing to use Go over a comforting language like Python or Ruby or even Perl
El_Che Nemokosch: You don't seems to be in the devops engine and thinking of admins in a small shop. Devops is all about scale and microservices. 15:49
tellable6 El_Che, I'll pass your message to Nemokosch
El_Che Python and Ruby were very popular in the beginning, but they were slow and difficult to deploy, so people jumped shit when another language fixed those issues 15:50
and some people will use Rust if they need the last of performance 15:51
*last bit
with the popularity of devSecOps the type safety of go an rust were huge selling points 15:52
15:53 sgrs left
Nemokosch how are they difficult to deploy? 15:53
Also, I admittedly wouldn't use the word "devops" for actually developing the deployment, integration, virtualization - you name it - tools
tbrowder guifa: how do i add an env var in macos at the command line? i tried "export SOMEVAR='1'" in my macos.yml file and got a failure
Nemokosch that's just plain "dev" at this point
guifa weird, it works for me okay. 15:54
guifa ➤ export FOO='1'
guifa ➤ echo $FOO
1
El_Che devops is lots of lots of dev work, that very often needs to be very secure and fast
devops is lots of lots of dev work, that very often needs to be very secure and fast 15:55
15:55 poohman joined
tbrowder i'll dbl check or typo 15:55
*for
El_Che Nemokosch: go: put this static binary built in 1 second and put in an 5mb alpine container 15:56
tellable6 El_Che, I'll pass your message to Nemokosch
poohman hello all, what would be the best type to use when the object or variable can only have one value of the collections of constant values, like currencies for example. 15:57
tellable6 2021-08-22T21:33:00Z #raku <tbrowder> Poohmaan: hi
poohman Enumeration, set, Bag or something else??
Nemokosch I think "devops" in itself is more... I don't know, perhaps "degradatory" isn't the best word for it, but definitely not mainly about development. If you are solely building operation tools and never do operation tasks, then you are a developer. Now that we are testing the software we are shipping, I started joking that by the end of the project, we will be able to apply as railway operators. I think that's a similar case. 15:58
El_Che Nemokosch: python (at out place). Build a virtual environemt, download and pin the dependencies, package everything,find a system to package your code and the python deps together, make sure the huge container has the necessary binary dependencies (and make sure you follow the updates and CVEs) ==> long buildtime and high maintenance
tellable6 El_Che, I'll pass your message to Nemokosch
guifa poohman you'd use a subset, actually. 15:59
15:59 poohman left
Nemokosch That rather sounds like a paranoid workflow tbh 15:59
guifa but I'd probably combine it with a Set 16:00
so
16:00 poohman joined
poohman thanks guifa, I'll look into it 16:00
16:00 poohman left
El_Che Devops is the integration of both. E.g. I run a service that does all the networkauthentication. I need to extend the vendor software in Perl, and add Go microservice to do stuff that the vendor software can't do, but our organisation needs. Being authentication and responsable for network segmentation it needs to be very secure and fast 16:01
16:01 sena_kun left
El_Che *microservices 16:01
16:02 sena_kun joined
guifa m: my %currencies is Set = 'EUR', 'USD', 'CAD'; subset Currency of Str where { %currencies{$^code} }; my Currency $a = 'EUR'; my Currency $b = 'EUT'; 16:02
camelia Type check failed in assignment to $b; expected Currency but got Str ("EUT")
in block <unit> at <tmp> line 1
Nemokosch well, from this point of view, why would you need to know if it's written in Go?
El_Che that operations jobs is certainly more development than doing stuff to the running service (it's rocksolid, pretty much zero operations work because the dev work to automate and extend it)
ugexe writing sql queries and schema doesnt make you a dba
its just overlap 16:03
16:03 poohman joined
tbrowder poohman: hi 16:03
El_Che Nemokosh: my clients don't have to know of care that the services are in go. Incidently their microservices are in go as well, but I don't care in what langauge they do it
Lots of Java as well 16:04
tbrowder guifa: i put the
16:04 poohman left
tbrowder i forgot to have a name line before the run line. that stopped the error. 16:05
but it didn't work to stop the msg about brew cleanup.
then i consolidated the export and brew install on one line all is well so far. 16:06
16:09 poohman joined 16:10 poohman left
Nemokosch Anyway, I don't think there is any actual use of this conversation because it's just a matter of word use. I don't see much "ops" in building a service that someone else is gonna actually operate. And given Google's involvement in these challenges, it's not surprising that these, imo, developers are gonna use a lot of Go. 16:10
16:11 poohman joined, poohman left 16:12 poohman joined
poohman subset Currency of Str where * ~~ "usd" |"euro" |"inr" 16:13
does the above make sense??
guifa Yes, it works. 16:14
I'd use
poohman or should/can a list be used
guifa my %currencies is Set = 'EUR', 'USD', 'CAD'; subset Currency of Str where { %currencies{$^code} };
Nemokosch poohman: I think it can work but the `* ~~`˙part is redundant
guifa that way if you want to check if something is a currency code elsewhere in your program, you already havea Set ready to go
16:16 poohman left, poohman joined 16:17 poohman left 16:18 poohman joined, poohman left
El_Che on other hand, trying to work on the automation of arm64 rakudo builds and packaging, ops enough? :) 16:21
16:21 poohman joined
poohman did not work in the Repl as well 16:22
16:22 poohman left
Nemokosch if something tricky doesn't work in the Repl, you might suspect it's the fault of Repl 16:23
it's a quite weird environment 16:24
16:25 poohman joined, poohman left 16:26 poohman joined, poohman left 16:27 epony left 16:31 poohmaan joined 16:33 poohmaan left 16:37 poohman joined 16:38 poohman left
lucs After a module has been successfully installed with zef, can the '.../.zef/" directory be removed? 16:39
16:39 euandreh left
lizmat lucs: I think so, but it will be re-created with any subsequent invocation of zef 16:41
lucs Okay. The reason I ask is that I have a mechanism whereby depending on which project I'm working on, my HOME directory changes, and I have .zef directories all over the place, using up 215M -- no big deal, just a bit annoying. 16:50
ugexe you can set ZEF_CONFIG_STOREDIR and ZEF_CONFIG_TEMPDIR (or edit the corresponding configuration file field) to point somewhere else like /tmp/.zef
lucs Aha, that's a good idea, that way every project would use the same. 16:51
Thanks.
16:51 NemokoschKiwi joined
tbrowder guifa: my mac run is failing because of "Malformed UTF-8 near bytes 20 20 ff" at lin... 16:53
16:54 NemokoschKiwi left
tbrowder i have tried replacing that line but that didn't help. when i run "$ file badfile" on it i get "GM.rakumod: OS/2 REXX batch file, ASCII text" 16:56
weird, any hints appreciated, mac is a strange beast 16:57
16:58 NemokoschKiwi joined 17:01 derpydoo joined
tbrowder i'm trying to trick it with an added comment at the top of the file... 17:02
17:07 sena_kun left 17:09 sena_kun joined 17:34 razetime left 17:39 poohman joined 17:42 poohman left 18:02 sena_kun left 18:07 reportable6 left 18:08 sena_kun joined, reportable6 joined 18:20 Guest89 joined 18:23 euandreh joined 18:29 Sgeo joined
El_Che We have arm64 artifacts: cirrus-ci.com/task/5397261256491008 18:30
worse case scenario: I could upload the manually. Trying to automate that part though, although cirrus build is slow because of queueing 18:31
running on all distros: cirrus-ci.com/build/6484474112770048 18:52
18:53 Abhoerschutz left, Mikkel joined 18:55 Mikkel left, Mikkel joined 18:56 Abhoerschutz joined 19:02 poohman joined 19:06 Mikkel left
guifa tbrowder: I wish I had more ideas for you =/ 19:07
19:11 mikkelstb joined
tbrowder guifa: thnx 19:12
i’m gonna try a raku char-by-char check on the file, maybe some clues 19:14
19:15 poohman left 19:24 perlbot left 19:25 simcop2387 left
Nemokosch Hi, second attempt... what would you use in place of Text::Extract::Word? 19:43
19:58 NemokoschKiwi left 20:01 mikkelstb left, mikkelstb joined
Geth doc: 2colours++ created pull request #4132:
Remove bot examples
20:18
20:36 mikkelstb left 20:41 Kaiepi left 20:51 mikkelstb joined 20:54 perlbot joined 20:55 simcop2387 joined 20:59 Kaiepi joined 21:08 derpydoo left 21:13 NemokoschKiwi joined 21:21 sena_kun left 21:23 sena_kun joined 21:31 mikkelstb left 21:36 mikkelstb joined 21:40 mikkelstb left 21:46 NemokoschKiwi left
guifa has anyone here used NativeCall with Windows ? 21:52
22:21 sgrs joined 22:35 Nemokosch joined 22:39 Kaiepi left
Nemokosch not me :c 23:20
23:29 sena_kun left 23:50 Nemokosch left