ChanServ changed the topic of #crystal-lang to: The Crystal programming language | | Fund Crystal's development: | GH: | Docs: | Gitter:
ur5us has joined #crystal-lang
hightower2 has joined #crystal-lang
ur5us has quit [Ping timeout: 240 seconds]
greenbigfrog has quit [Ping timeout: 268 seconds]
greenbigfrog has joined #crystal-lang
greenbigfrog has quit [Ping timeout: 256 seconds]
greenbigfrog has joined #crystal-lang
SamantazFox has joined #crystal-lang
Chillfox has joined #crystal-lang
<FromGitter> <riffraff169> the circle of life again
Chillfox has quit [Remote host closed the connection]
<raz> Blacksmoke16: that looks really neat, might try that approach at our company. we are still struggling with many-vs-mono as well. life is better after having migrated _mostly_ to mono, but there are still some outlier that call for separate repos
<raz> i suppose it may still become annoying when ppl send PRs on one of the split repos? hm
DeBot has quit [Quit: Crystal IRC]
jhass has quit [Quit: Bye]
straight-shoota has quit [Quit: ZNC 1.8.2 -]
<FromGitter> <Blacksmoke16> 👍 glad to hear! Just got started with it but it deff is pretty slick so far
<FromGitter> <Blacksmoke16> are they public repos? could look into some sort of automation to comment on/move the PRs over. Is an example of what Symfony did for that
DeBot has joined #crystal-lang
jhass has joined #crystal-lang
<raz> nope, ours are not public, so the PR thing shouldn't be an issue for us.
<raz> (famous last words inb4 post-mortem meeting)
<FromGitter> <Blacksmoke16> well there you go :P
straight-shoota has joined #crystal-lang
<FromGitter> <Blacksmoke16> i did go thru each repo and update the readme to say send issues/prs to the monorepo
DeBot has quit [Client Quit]
straight-shoota has quit [Client Quit]
jhass has quit [Client Quit]
DeBot has joined #crystal-lang
jhass has joined #crystal-lang
straight-shoota has joined #crystal-lang
<FromGitter> <> Good approach indeed. In people's minds mono repo means monolith, which is false.
<FromGitter> <> In fact we have a sort of mono repo already in our local machine. Using a git one has the advantage of standardizing for everyone
<FromGitter> <> @Blacksmoke16: why not a Matrix room instead of Discord?
<FromGitter> <Blacksmoke16> i use discord for bunch of other stuff so was just easier for me :shrug:
notzmv has quit [Ping timeout: 240 seconds]
straight- has joined #crystal-lang
DeBot_ has joined #crystal-lang
jhass- has joined #crystal-lang
notzmv has joined #crystal-lang
<raz> yup, and in the same people's minds SOA or modular means multi-repo, which is equally false. multi-repo is one of those traps we should warn the kids about in school. it tends to take dependency hell to a whole new level.
DeBot has quit [Quit: Crystal IRC]
straight-shoota has quit [Quit: ZNC 1.8.2 -]
jhass has quit [Quit: Bye]
jhass- is now known as jhass
DeBot has joined #crystal-lang
jhass- has joined #crystal-lang
straight-shoota has joined #crystal-lang
<FromGitter> <> However, here there are still multi repos. There are just also combined into a single one
<FromGitter> <> Agreed that splitting things prematurely is most of the time harmful
<FromGitter> <Blacksmoke16> oh and fwiw athena does have a gitter that im pretty sure you could use with matrix
<FromGitter> <> Yes, I was thinking of this
<FromGitter> <> You gonna bridge them?
<FromGitter> <Blacksmoke16> discord and gitter?
<FromGitter> <> I think it can mostly be harmful to have 2 official chats for such small community
<FromGitter> <> i.e dividing an already small one
<FromGitter> <Blacksmoke16> ironically there are diff people in each :P
<FromGitter> <Blacksmoke16> probably should consolidate them at some point but :shrug:
<FromGitter> <> That's quite normal, for one guy little point to use 2 accounts
<FromGitter> <Blacksmoke16> that was my thinking for having the two, make it easier for them to use whichever is more convenient. I'm on both regularly so is np to me
<raz> multi-chat is at least as bad as multi-repo. all the wasted time on bridges etc...
<FromGitter> <Blacksmoke16> could be a downside if/when it gets to a point where there is a negative effect on having same topics in two places
<raz> if crystal had settled for a single irc channel we'd be at v3.0 already :P
<FromGitter> <Blacksmoke16> interesting
<FromGitter> <> raz: crystal has multiple IRC chats?
<raz> jrei: no. but i appreciate the irony of you asking this channel on matrix and i read it in IRC, over a gitter bridge. :p
<FromGitter> <> Yeah lol, me too. I see `FromIRC (From IRC (bridge bot))`
<raz> well, maybe 22 can finally be the year where matrix extinguishes everything else. they just need to improve their clients
<FromGitter> <> They are quite good now
<raz> hm. might give it another look. but last time wasn't too long ago and it was still meh
<FromGitter> <> like the year of the linux desktop
<FromGitter> <> mm i fixed up this script to work for Matrix too but never announced it
<raz> for me slack is the benchmark. with discord an "somewhat bearable" distant second. anything else and i'll rather just use plain ol' irc.
<FromGitter> <> Slack is quite bad really
<FromGitter> <Blacksmoke16> slack is a pita because you need a diff account per server
<FromGitter> <> Slack is the absolute worst
<raz> yes, slack sucks for OSS. but the UX is unmatched for business
<SamantazFox> Hello! `HTTP::Params` structs is a struct, so it's passed by value, rather than reference. How can I can I pass it by reference anyway?
<FromGitter> <Blacksmoke16> Discord does pretty much anything slack can, but better
<SamantazFox> I don't want 90 copies of my parameters
<FromGitter> <Blacksmoke16> Maybe Box it?
<SamantazFox> box it?
<SamantazFox> what do you mean?
<FromGitter> <Blacksmoke16> Or wrap it in a class
<raz> Blacksmoke16: s/better/worse. it doesn't even have proper threading. and lacks almost all of the detail polish.
<FromGitter> <> It may not matter if it is passed by value
<FromGitter> <> SamantazFox, you will not have copies of your parameters. did you actually determine that you do have copies?
<FromGitter> <> I don't think it is needed
<FromGitter> <> Because whatever class inside a struct is still passed as reference
<FromGitter> <Blacksmoke16> ^ probably would be overwritten on the stack as they become unused is my understanding
<FromGitter> <> They are not magically copied
<FromGitter> <> i realized , in Crystal it's kind of a smell that, for example, `Set` happens to be defined as a `struct` and it would be a breaking change to change it to `class`
<FromGitter> <> No need to have Set as a class, it is a wrapper around a class
<FromGitter> <> it happens to be implemented as a wrapper right now
<SamantazFox> oprypin yes, I know. I'd like to parse some parameters (for instance those for user preferences) and then deletes them from env.response.params
<FromGitter> <> SamantazFox, people in this channel so far are saying that the storage for those parameters wouldn't actually be copied. how can we solve a problem with copying it if we're convinced that it's not copied?
<FromGitter> <> only if you provide an example
<SamantazFox> Blacksmoke16: I'm not sure how dangerous `Box` is...
<FromGitter> <Blacksmoke16> I wouldn't worry about it
<SamantazFox> oprypin: say you have `<url>?dark_mode=1`, I want to have a preliminary check for `if params["dark_mode"] == "1"; darkmode = true; params.delete("dark_mode"); end`
<SamantazFox> And in the end, all unknown parameters are discarded
<FromGitter> <> Anyway, try to do your things as if it was a class, and hit the actual issue
<FromGitter> <> It may not happen afterall
<FromGitter> <> SamantazFox, i don't see the relevance of this short example
<FromGitter> <> need a longer example and you need to point out where you think copying happens
<SamantazFox> jrei: Should I instead add items to HTTP::Context? So the thing can be a middleware, and downstream functions (routing, ECR) can use it?
<SamantazFox> oprypin: well, copying happens everywhere where those parameters are acessed and passed to some function.
<FromGitter> <> no
hightower2 has quit [Ping timeout: 240 seconds]
<FromGitter> <> the data in `HTTP::Params` consists of 1 pointer. that pointer gets copied, that's the equivalent of if it was a class
<SamantazFox> oprypin: mmmh, I see
<SamantazFox> thanks
DeBot_ has quit [Quit: Crystal IRC]
straight- has quit [Quit: ZNC 1.8.2 -]
jhass has quit [Quit: Bye]
jhass- is now known as jhass
hightower2 has joined #crystal-lang
hightower2 has quit [Ping timeout: 256 seconds]