ChanServ changed the topic of #crystal-lang to: The Crystal programming language | | Crystal 0.23.1 | Fund Crystal's development: | GH: | Docs: | API: | Gitter:
<FromGitter> <mgarciaisaia> Actually the song goes like "- Hey, this language doesn't have `#send`. - No, but you can use macros should you need them"
<FromGitter> <fridgerator> lol
<FromGitter> <fridgerator> 🎡
<FromGitter> <codenoid> morning ✨
<FromGitter> <codenoid> what macro used for ?
ragmaanir has quit [Quit: Leaving]
<travis-ci> crystal-lang/crystal#1754ec0 (master - Add --static compiler option (#4872)): The build passed.
<travis-ci> crystal-lang/crystal#1754ec0 (master - Add --static compiler option (#4872)): The build passed.
Philpax_ has joined #crystal-lang
Philpax__ has quit [Ping timeout: 240 seconds]
<travis-ci> crystal-lang/crystal#d3537fc (master - Add configurable default target (#4874)): The build passed.
<travis-ci> crystal-lang/crystal#d3537fc (master - Add configurable default target (#4874)): The build passed.
<watzon> codenoid: you're wondering what macros are for?
<FromGitter> <codenoid> iyas,
KAsmic has joined #crystal-lang
<KAsmic> Hi hi, has anyone used the libui bindings? I want to know what "AreaHandler" is, and how to call it?
<FromGitter> <drujensen> @codenoid have you ever used the JSON.mapping macro? This is probably the best example of usng a macro. It allows you to specify which properties will be mapped in your `.to_json` method.
sz0 has quit [Quit: Connection closed for inactivity]
KAsmic has quit [Quit: Page closed]
<watzon> codenoid: basically the purpose of a macro is code generation. Macros generate Crystal code at compile time and insert that code into the AST
<watzon> That way you can dynamically create classes, methods, etc
<FromGitter> <codenoid> *way you can dynamically create classes, methods, etc* o, ok, thanks @drujensen @watzon
xaxisx has quit [Ping timeout: 248 seconds]
<FromGitter> <cevarief> @drujensen So this is heavily used in amber scaffolding generator?
<crystal-gh> [crystal] funny-falcon closed pull request #4675: change computation of hash value. (master...hasher1)
xaxisx has joined #crystal-lang
hightower3 has joined #crystal-lang
<Groogy> Morning!
<FromGitter> <codenoid> hi,,
<txdv> good morning
hightower2 has quit [Ping timeout: 252 seconds]
<FromGitter> <codenoid> `context.response.headers = "some value" am i wrong ?
mark_66 has joined #crystal-lang
<FromGitter> <codenoid> o, headers need an hash value, but what a simple way to use res.headers (all data inside res.headers) to `response.headers`
DTZUZO has joined #crystal-lang
<FromGitter> <rumenzu> hey guys, when I'll be able to drink in this magnificent cup?
<Groogy> I want to know as well
<FromGitter> <bararchy> Cool !
flaviodesousa has joined #crystal-lang
<FromGitter> <akzhan> Wow, )
<FromGitter> <codenoid> ```code paste, see link``` ⏎ ⏎ why `context.response.print res.body` doesnt give the output []
livcd has joined #crystal-lang
ShalokShalom has joined #crystal-lang
<ShalokShalom> can i use {} instead of do/end
<ShalokShalom> while i saw no do at all until
<Groogy> yeah though they do have different lexical meanings
<Groogy> in what order they are evaluated etc.
<Groogy> "The difference between using do ... end and { ... } is that do ... end binds to the left-most call, while { ... } binds to the right-most call:"
<ShalokShalom> thanks a lot
<ShalokShalom> is there something like a Ruby to Crystal converter?
bmcginty has quit [Ping timeout: 252 seconds]
bmcginty has joined #crystal-lang
<crystal-gh> [crystal] funny-falcon reopened pull request #4675: change computation of hash value. (master...hasher1)
ShalokShalom_ has joined #crystal-lang
ShalokShalom has quit [Ping timeout: 240 seconds]
lhz has quit [Quit: WeeChat 0.3.7]
<FromGitter> <solisoft> Hi there, does anyone is working with JWT ?
<oprypin> ShalokShalom, what brings you here?
<FromGitter> <codenoid> why ? ⏎ ⏎ ```code paste, see link``` []
<ShalokShalom_> oprypin: Rubys Syntax and Crystals Speed
ShalokShalom_ is now known as ShalokShalom
<FromGitter> <bew> I can't remember why we can't use Threads directly in crystal? I know that fibers and channels are the way to go, but what's the issue with threads? IO? Scheduler (probably)? GC?
<RX14> @bew all of the above
<Papierkorb> Even in the future you won't be using Threads directly.
<RX14> IO is an issue because it depends on the scheduler which isn't thread safe
<RX14> and GC needed tweaks too
<FromGitter> <sdogruyol> @RX14 are you gonna distribute a staticaly built crystal with docker?
<RX14> what?
<FromGitter> <sdogruyol> ugh wrong sentence
<FromGitter> <codenoid> eh, btw, can i make a portable app with crystal, how about os library and dependencies ?
<FromGitter> <sdogruyol> i remember you talking about building a docker image for a statically linked crystal
<RX14> better
<RX14> building a statically compiled crystal distribution in docker
<RX14> it works anywhere
<RX14> in docker
<RX14> out of docker
<FromGitter> <bew> Papierkorb "you won't be using Threads directly" you mean: when writing code, I won't have to deal with Threads and stuff but the scheduler will?
<Papierkorb> yea
<livcd> a la Go ?
<Papierkorb> β€Ž[13:46] β€Ž<β€ŽPapierkorbβ€Ž>β€Ž yea
<ShalokShalom> you can use Habitat to produce Docker images
<ShalokShalom> and the way to create those Habitat packages is way more easy as to create Docker images directly
<vegai> ah, somebody else fancies Habitat
* vegai brofists ShalokShalom
<RX14> ah yes because introducing another layer of indirection is a good idea
<RX14> i'm sure habitat is great but from it's homepage it's really not meant for this job
<RX14> it looks to be for packaging applications
<RX14> i'm not using docker for packaging
<vegai> that is true though. I wasn't looking at the context here
<RX14> i'm building in docker then instantly extracting the artifacts from the image and discarding the image
<vegai> I use it like that at work to build rpms
<vegai> works rather nicely imho
<vegai> although you cannot build things like FreeBSD packages that way, can you?
<FromGitter> <bew> RX14 regarding threads, what kind of tweaks GC needs? isn't it already in his own thread? and it can manage other threads too, as the threads are created using LibGC.create_thread etc..
<RX14> i can't remember
<RX14> but there was a patch to libgc
<FromGitter> <bew> oh *that* kind of tweaks, not just tweaks on the crystal side
<Groogy> I mean also think of you probably don't want the GC to be scanning for orphans while the code is running and modifying its data since you could have differences in the l1 cache
<Groogy> though not 100% sure how the GC works in Crystal so maybe it isn't a problem for it
<RX14> Groogy, the GC pauses all threads when it wants
<RX14> using signals
<Groogy> duh of course I'm dumb
xaxisx_ has joined #crystal-lang
xaxisx has quit [Ping timeout: 248 seconds]
mrus has quit [Remote host closed the connection]
<ShalokShalom> vegai: ^-^
<ShalokShalom> RX14: its not neccessarly another layer
<ShalokShalom> you can build a whole Habitat OS
<ShalokShalom> and once again: you can use Habitat to produce Docker images
<ShalokShalom> and the way to create those Habitat packages is way more easy as to create Docker images directly
<ShalokShalom> so, less work, more done
<Papierkorb> What else does a Crystal dockerfile need except a FROM, a MAINTAINER, and a COPY directive?
<brycek> i've never put a `MAINTAINER` directive in a dockerfile
<RX14> Papierkorb, you forgot the entire building crystal step
<livcd> "habitat"
<livcd> "chef"
<livcd> i am kinda getting sick of the new tools / names
<FromGitter> <sdogruyol> lol
<FromGitter> <sdogruyol> hey everyone
<Papierkorb> livcd: All of this "devops" stuff is simply really young compared to programming. The first decade will be quite turbulent. Just look at webdev, which started to grow just a few years back: after a decade of completely awful Perl CGI scripts, a decade of the next over-engineered solution followed.
Philpax_ has quit [Ping timeout: 252 seconds]
<Papierkorb> sdogruyol, yo
<FromGitter> <sdogruyol> @Papierkorb hey how are you doing? Congrats again for qt shards
<Papierkorb> sdogruyol, doing great, thanks. On your end?
<Papierkorb> Yah just pushed my last most-starred repo of its throne in like 48hrs lul
<FromGitter> <sdogruyol> doing good thank you πŸ‘
<FromGitter> <sdogruyol> It's because you did a fantastic job
snsei has joined #crystal-lang
DTZUZO has quit [Ping timeout: 248 seconds]
matiasgarciaisai has joined #crystal-lang
<ShalokShalom> qt shards?
<ShalokShalom> ah i see
<ShalokShalom> awesome
<ShalokShalom> i care about the qt language binding list
<ShalokShalom> once ready, remind to add it ;)
<ShalokShalom> thanks
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
<ShalokShalom> It’s syntax is so similar to Ruby that some Ruby programs are actually valid Crystal programs and vice-versa.
<Papierkorb> ShalokShalom: Ah good point. Will do once it reaches a Beta-y release, at which point I hope it's useful for most who just wanna build a GUI et al
<ShalokShalom> So, transpiler, anyone?
<livcd> Papierkorb: All of this "devops" stuff is simply really young compared to programming. <- what do you mean ?
<ShalokShalom> i already shared your bindgen on Pharos mailing list
<ShalokShalom> you know there are 2 similar projects - while they focus on qml
<Papierkorb> livcd: "Code-driven infrastructure" (or whatever its current name) may not be actually a new invention, but it's certainly seen rise of much wider use, probably propelled by the advent of "cloud computing", where it's just not sensible anymore to manually manage all of them
matiasgarciaisai has quit [Quit: Page closed]
<Papierkorb> ShalokShalom: I'll get to QML on the long run for sure. It's a cool Qt feature, but just not "there" w.r.t. desktop applications. Four years ago, when I stopped using C++/Qt daily, it felt like QML was an ambitious project by Qt but lacked manpower
<ShalokShalom> you may can reuse stuff
<RX14> lol Papierkorb, the static distribution is only 29MiB after gzip where it was like 130+ before
<ShalokShalom> Qt is a huge project
<Papierkorb> RX14: That sounds fine
<RX14> yeah
<RX14> i'm just amazed at how much the binary shrank
<RX14> the compiler itself was like 62mb with another 50ish of docs
<Papierkorb> what was it? stripped?
<RX14> now it's not even half the compiler size
<RX14> Papierkorb, it wasn't stripped
<RX14> that would make it even smaller
<RX14> just tar + gzip
<RX14> that's it
<FromGitter> <plassa-b> Hey guys, I'm currently working on a web app with Amber, and I'm having an issue with Slang (for my views). Mind if I ask for some guidance here ?
<ShalokShalom> I love Smalltalks idea
<ShalokShalom> whats up with the Amber and Pharo community?
<RX14> pharo?
<ShalokShalom> its based on it
<FromGitter> <sdogruyol> Pharo?
<FromGitter> <sdogruyol> How come
<ShalokShalom> they use this implementation
<FromGitter> <mgarciaisaia> That's a different Amber, I think :P
<FromGitter> <sdogruyol> guess so
<FromGitter> <mgarciaisaia> Amber.ST is a Smalltalk implementation that runs on the browser, I think
<ShalokShalom> ah i see
<ShalokShalom> why do you mind about asking here then, plassa-b?
<Groogy> TL;DR @plassa-b yes this is most probably the place to ask your questions :P
alibby has quit [Quit: Leaving.]
<FromGitter> <cevarief> Does crystal support interface?
<FromGitter> <sdogruyol> @cevarief we use modules for that
mark_66 has quit [Remote host closed the connection]
<FromGitter> <cevarief> How can module compare to interface? Isnt it for namespacing?
<FromGitter> <sdogruyol> no
<FromGitter> <sdogruyol> not just for namespacing
<FromGitter> <cevarief> Any sample module as an interface? Cant still imagine..
<FromGitter> <sdogruyol> it's not necessarily a replacement
<FromGitter> <fridgerator> some discussion about that here:
<Groogy> cevarief, check out the Enumerable module
<FromGitter> <bew> hehe little example @cevarief
<FromGitter> <cevarief> It feels like traits
ShalokShalom has quit [Ping timeout: 255 seconds]
<FromGitter> <cevarief> Ok after reading 3489, i could accept module as interface πŸ˜‰. Thanks.
<FromGitter> <cevarief> Any update if version 1 is on the track to be released this year? What about llvm 5?
<RX14> no, we're not going to release 1.0 this year
<FromGitter> <sdogruyol> @RX14 is that a declaration or guess?
<RX14> well, i'd be against it
<RX14> i'd want 6 months of prereleases used in prod
<FromGitter> <sdogruyol> well. I also think that it'd be a very rushed thing
<RX14> and we don't have 6 months of 2017 left
<FromGitter> <sdogruyol> my guess is that'd be the second half of 2018 or so if development goes in an optimal pace
<Groogy> also itΝ„'s not going to be 1.0 without Windows support, and then that support would need thorough testing etc.
<FromGitter> <sdogruyol> Having a beta that is with Windows support @Groogy
<Groogy> huh?
<Papierkorb> I'd be fine if windows support would be beta tagged for 1.0 - But I'd also like to see a few months worth of production battle testing
<Groogy> oh okay then I get it
<FromGitter> <sdogruyol> thanks @Papierkorb .P
<Groogy> thoought there was a native implementation beta
<Groogy> that I missed somehow
<FromGitter> <sdogruyol> Somehow I suck with my sentences nowadays
<FromGitter> <sdogruyol> :D
<Groogy> anyway time to hit home
<Groogy> cya!
<Papierkorb> Also, no known compiler crashes at all anymore. that shit scares people away real quick and would spread like wildfire.
<FromGitter> <sdogruyol> BTW has anyone noticed slower compile times on master?
<Groogy> visual-c++ still crashes *cough cough*
<Papierkorb> Groogy: Never used it, but really? Holy cow. "MS" lul.
<RX14> @sdogruyol benchmark it?
<Groogy> Yeah well there are specific things that can make it crash
<FromGitter> <sdogruyol> I did
<FromGitter> <sdogruyol> not sure if it's just my machine lol
<RX14> interesting
<Groogy> we also had a specific bug in 2012 VS that made a great case for why we finally should fucking upgrade
<Groogy> lol
<FromGitter> <sdogruyol> let me paste it
<Papierkorb> Groogy: I only know of a crash bug with initial C++11 support where it crashed when you used a lambda literal as argument to operator[]. Qt tripped over that one :D
<Groogy> there is a bug in vc10 I think it is which would create garbage assembly in the link-time optimizer
<Groogy> which MS marked as "won't fix"
<Papierkorb> lawl
<RX14> i wish LTO was more of a thing
<Groogy> it is when you had a 32bit integer constructor and gave it a 15bit integer
<Papierkorb> When a compiler creator says "sucks to be you" on such a bug .. yeah ..
<Groogy> 16bit*
<Groogy> if I remember correctly
<RX14> that sounds remarkably common
<Groogy> it would write instructions that would literally make you override the instruction pointer
<Groogy> or something like that
<Papierkorb> that doesn't sound healthy
<Groogy> Yeah had to #ifdef a lot of code to narrow it down
<Groogy> since it wouldn't happen reliably and only with exact specific conditions
<Groogy> and it would trash everything so the debugger couldn't hook in
<Groogy> my lowball estimate is that bug cost the company about 16k€
<Groogy> and MS official stance was "lul ups"
<FromGitter> <sdogruyol> WTF
<FromGitter> <sdogruyol> that is nuts
<Groogy> which is why I am working in Qt+Clang nowdays :D when we had issues in Qt Creator, they responded immedietly and was way nicer about it
<Groogy> anyway now I need to head home
<FromGitter> <sdogruyol> take care
<FromGitter> <bew> @sdogruyol with master without cache, I have ~50s, next builds are ~20s (I tried 3 builds)
<FromGitter> <sdogruyol> seems like I'm getting unstable results
<FromGitter> <sdogruyol> that's why I'm dubious of my local :P
snsei has quit [Remote host closed the connection]
Aytan72 has joined #crystal-lang
Aytan72 has left #crystal-lang [#crystal-lang]
ShalokShalom has joined #crystal-lang
<FromGitter> <codenoid> hi, why shards doesn't have feature that can install dependencies for global usage
<vegai> Papierkorb: I think we're already on the 2nd decade of devops :)
<RX14> s3 was > 10 years ago for sure
<RX14> well ec2 too
<FromGitter> <Fanna1119> could someone explain to me the three p's :D ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ 1 - prints out the value ... []
alex`` has joined #crystal-lang
cyjimmy264 has joined #crystal-lang
<RX14> puts is a shortcut for STDOUT.puts
<RX14> STDOUT.puts calls to_s(STDOUT) on the object passed on
<RX14> and then prints a newline
<RX14> in effect, puts prints "#{string}\n"
<RX14> or calls to_s if it's not already a string
<RX14> p does the same but uses inspect instad of to_s
<RX14> inspect for a string prints the string with quotes and formats non-printable characters
<RX14> so you can actually tell what the string contains
<RX14> pp takes multiple variables and appends the variable name when it prints
<RX14> well
<RX14> prepends
cyjimmy264 has quit [Remote host closed the connection]
<FromGitter> <sdogruyol> does specifying types in method arguments reduce / affect compile time at all?
p0p0pr37 has quit [Ping timeout: 240 seconds]
<FromGitter> <jwaldrip> RX14 && @asterite we looking good here?
<RX14> @sdogruyol no
<RX14> that's what solution #2 does
Groogy2 has quit [Quit: WeeChat 1.9]
<oprypin> regarding QML: that's just JavaScript not Crystal if you wanted more excuses
<FromGitter> <konovod> huh. my merged #4789 has a... defect. `` don't compiles on master now (and no spec checks it). Hopefully nobody is hurt. Going to do PR soon.
olbat has quit [Ping timeout: 240 seconds]
olbat has joined #crystal-lang
olbat has quit [Changing host]
olbat has joined #crystal-lang
<FromGitter> <jwaldrip> RX14?
<RX14> @jwaldrip sometimes theres some PRs that everyone else is reviewing and you want to wait a day for it to settle down before doing anything about it
<RX14> since the core team is the bottleneck for PR reviewing it makes sense for everyone else to review it first if they're already doing it
<FromGitter> <jwaldrip> Sounds good. Just not sure what the core reviewing process is like. Also, have there been any efforts to expand the core team?
<FromGitter> <johnjansen> @jwaldrip you mean aside from adding @RX14? ;-)
<RX14> the review process? I look at a PR when ~~i get bored~~ I can find the time and review it
<RX14> if it has 2 reviews then merge it
<FromGitter> <jwaldrip> @johnjansen much more than just one person. With almost 500 issues and 126 open PRs, it seems as though the help is needed.
<FromGitter> <jwaldrip> Although @RX14 is awesome, he is only one man.
<RX14> we don't want to expand the core team quickly
<FromGitter> <johnjansen> totally true … given available time for each person we probably need 500 people ;-)
<RX14> i'll be honest, I suggested adding someone else to the core team but they wanted to wait a while between adding people
<FromGitter> <bew> the formatter genius?
<FromGitter> <johnjansen> that was just to see how β€˜you’ worked out ;-) JOKE
<FromGitter> <jwaldrip> RX14 : Understandable, just wish we could do more to get crystal to 1.0 faster as well as expand the standard library
<FromGitter> <jwaldrip> and... actually. now with github code-owners, you could isolate certain parts of the code.
ducklobster_ has joined #crystal-lang
<RX14> manas people have told me they have plans to speed up more development
<FromGitter> <bew> what do you mean @jwaldrip by 'github code-owner'?
ducklobster_ has quit [Client Quit]
ducklobster_ has joined #crystal-lang
<FromGitter> <jwaldrip> You can set files or directories to be owned by teams within the organization, thus requiring their approval above all else before something can be merged.
<FromGitter> <bew> oh nice thank you!
<FromGitter> <jwaldrip> So the compiler code could be the manas team, the std lib could be kept with a lower level team, etc
<FromGitter> <jwaldrip> but even a basic two tier system like that could protect the code base at its core, but yet allow for accelarated progress on the std lib
<FromGitter> <konovod> @bew honestly i think that to the @MakeNowJust "formatter genius" is almost an insult - he is doing wondeful things like #4837 with a compiler core, not just formatting tool.
<FromGitter> <krypton97> that sounds mean to me as well, but I don't think that was his intention
<FromGitter> <bew> @konovod yeah I know, I also noticed he's done awesome things lately (don't know before my arrival)!
<RX14> well I barely know compiler stuff
<ducklobster_> Hi all, I was hoping someone could help me debug this code:
<RX14> I mainly help with the periphery of the compiler where it intracts with the user and the stdlib
<ducklobster_> I am fairly certain the same code worked a month or two ago? Seems to throw an exception when trying to follow a redirect
<RX14> doesn't look like the entire code to me
<ducklobster_> whoops, named the file in the gist wrong, it should be not
DTZUZU has joined #crystal-lang
ShalokShalom has quit [Remote host closed the connection]
<FromGitter> <sdogruyol> I agree with both @jwaldrip and @RX14
<FromGitter> <sdogruyol> we definitely need more people identifying issues merging PRs
<FromGitter> <sdogruyol> maybe a different process for std who knows
<RX14> i don't think we need more people
<RX14> we need more time
<RX14> if we were all working full time there'd be no problem and time to spare
<FromGitter> <sdogruyol> well, that's the sum of it :P
<RX14> well more time to work on crystal is what the guys at manas were trying to fund, last I heard
<FromGitter> <sdogruyol> in an ideal world we want every core member to work on crystal but you know that's not possible atm
<FromGitter> <sdogruyol> let's hope it turns out to be good
<FromGitter> <sdogruyol> still IMHO having an issues team, docs team e.g will improve the whole experience of Crystal
<FromGitter> <sdogruyol> so that the core developers can focus more on core :P
<RX14> I think a single, correctly sized, cohesive core team is the way to go
<FromGitter> <jwaldrip> It took 15 years for ruby devs to work full time on ruby, once Heroku hired them to do so.
<FromGitter> <sdogruyol> didn't know that @jwaldrip
<FromGitter> <johnjansen> certainly a docs team … but then that could happen in parallel to the main project, we could certainly figure out a way to manage that, and independently of any existing organization if necessary
<FromGitter> <sdogruyol> yeah that's also an approach @johnjansen
<FromGitter> <sdogruyol> I really think Rust is doing this correct..
<FromGitter> <jwaldrip> Yep. Matz and team were still trying to suport themselves by doing contracting, speaking etc. around 2012, Heroku hired the entire Ruby core team.
<FromGitter> <sdogruyol> That's sad to hear
<FromGitter> <sdogruyol> I mean half-sad
<FromGitter> <johnjansen> im assuming that all PR’s for the StdLib join the queue even if the entire PR is all comment / doc changes / additions …
<FromGitter> <sdogruyol> yeah, that's not so encouraging
<FromGitter> <sdogruyol> even for perfect PRs
<crystal-gh> [crystal] konovod opened pull request #4882: Fixes initialization of ISAAC PRNG without explicit seed (master...fix/seeding)
<Papierkorb> sdogruyol, the morbid truth of modern "open source": Milk it. Just look at OpenSSL or GPG, projects much of the internet infrastructure is based on (or otherwise invaluable cryptographic tools), yet those people were desperately trying to get any donations
<FromGitter> <sdogruyol> sad but totally true
<FromGitter> <johnjansen> open source is a blessing and a curse …
<FromGitter> <sdogruyol> IMHO some kind of marketing is needed for every serious software project...
<FromGitter> <sdogruyol> oss or not
<Papierkorb> marketing itself doesn't bring €€€
<FromGitter> <sdogruyol> yeah
<FromGitter> <sdogruyol> there's no certain solution to funding problem
<Papierkorb> mperham tried the same with sidekiq, didn't work. But it immediately worked after he offered a paid "pro" version, as far I remember the blog posts.
<FromGitter> <sdogruyol> however doing some proper marketing and reaching out to community / sponsors like bountysource is a good way
<FromGitter> <sdogruyol> yeah
<FromGitter> <sdogruyol> well he's doing it as a business :P
<RX14> "im assuming that all PR’s for the StdLib join the queue even if the entire PR is all comment / doc changes / additions …"
<RX14> I think you're overstating how organised we are
<RX14> there is no queue
<RX14> we review PRs "when we feel like it"
<FromGitter> <johnjansen> by queue, i mean, you get to them in order
<FromGitter> <johnjansen> vaguely …
<RX14> we don't do that at all lol
<Papierkorb> Order of feeling like it
<FromGitter> <kazzkiq> The only successful crowdfunding/sponsorship in OSS I've seen is Vue.js
<FromGitter> <johnjansen> not implying any organization, just natural order ;-)
<FromGitter> <sdogruyol> haha
<RX14> like certain PRs where the thought of reviewing it at all fills me with dread
<Papierkorb> Or in other words: How most IT teams work on tickets in reality.
<FromGitter> <kazzkiq> Dude raises almost $10k/month from community:
<FromGitter> <sdogruyol> I don't even understand how that guy gets $10k by himself..
<FromGitter> <sdogruyol> respect though
<RX14> because vue is awesome
<RX14> i've used it i don't see a reason to use react
<FromGitter> <kazzkiq> He created a lib that pretty much kicked React's ass
<FromGitter> <sdogruyol> so is Crystal
<FromGitter> <sdogruyol> but JS ecosystem is like 1000x time bigger maybe
<RX14> well the way to fund crystal is to fund manas for a crystal project
<FromGitter> <kazzkiq> Its faster, its more elegant, sintax is way less verbose
<RX14> and they said they do consulting didn't they
<FromGitter> <johnjansen> @RX14 if a PR was 100% commenting, would there be any practical way of allowing a wider (selected) group to approve them
<Papierkorb> RX14: Who? manas?
<FromGitter> <sdogruyol> yes
<RX14> yes
<RX14> i mean specifically crystal consulting and support
<FromGitter> <sdogruyol> I'd be happy to hear if they're actually doing that at all
<RX14> they said they're working on it last I heard
<FromGitter> <kazzkiq> Is not that easy. A product must be way too mainstream in order for your team to actually get consulting offers
<RX14> but I to am in a sort of "i'll believe it when I see it" regarding manastech people picking up the pace on crystal
<FromGitter> <kazzkiq> I've worked with a framework in an startup that has this business model (relying on consulting). It wen't bankrupt
<FromGitter> <sdogruyol> @kazzkiq point taken
<FromGitter> <kazzkiq> The startup had to change its whole business model in order to survive, and the framework died in the proccess
<RX14> they specifically said "get financial backing" as a short-term target
<RX14> it's not just consulting i'm sure
<FromGitter> <sdogruyol> I'm really curious about how other languages with paid full time core developers keep the pace and the agent. A.k.a Rust, Go core devs
<FromGitter> <kazzkiq> I guess community sponsoring is still the best way to go
<RX14> well rust has mozilla
<RX14> go has good
<RX14> google*
<RX14> and that's pretty much the end of the storyu
<FromGitter> <sdogruyol> yeah but still it's an unbelievable thing to release every 6 weeks (looking at Rust)
<RX14> my typos are bad today...
<RX14> really?
<RX14> releases don't take much time honestly
<Papierkorb> A few dedicated people can pull tons of weight
<RX14> (asterite)
<FromGitter> <kazzkiq> Rust is backed by Firefox. Go by Google
<FromGitter> <sdogruyol> WTB more dedicated people :D
<FromGitter> <kazzkiq> Mozilla*
<FromGitter> <sdogruyol> Damn money lol
<FromGitter> <johnjansen> @kazzkiq you just saved me a bunch of time without intending to, i was just looking at react and instead now ill look at vue instead
<FromGitter> <mgarciaisaia> We have built a couple of client's project in Crystal (namely, a couple of chatbots)
<FromGitter> <sdogruyol> yo mati @mgarciaisaia :D
<FromGitter> <kazzkiq> And to think Crystal is making some noise without any giant company behind... this is actually pretty impressive.
<Papierkorb> ^
<FromGitter> <mgarciaisaia> And we'll do more projects as we see it's wise to choose Crystal, as we always do :)
<RX14> yeah but the thing is it's mostly noise
<FromGitter> <sdogruyol> @kazzkiq isn't it awesome :P
<FromGitter> <mgarciaisaia> We have an great language with an awesome community - I don't think that's *mostly noise* :)
<Papierkorb> Should've studied psychology or something. That would've helped in situations like this lul ...
<RX14> it's a small community compared to the amount of noise we make
<RX14> was my point
<Papierkorb> "Vocal minority"?
<FromGitter> <sdogruyol> We need a "GREAT WAVE"
<RX14> you can phrase it as we make a lot of noise with a small community
<RX14> or you can phrase it as mostly talk and no action
<RX14> it goes both ways
<FromGitter> <mgarciaisaia> Hehe
<FromGitter> <sdogruyol> @RX14 no action?
<FromGitter> <sdogruyol> That's a bit cruel
<RX14> yeah that's not what I meant
<FromGitter> <mgarciaisaia> I think *the thing* is awesome enough that it makes noise from the beginning
<RX14> yes, we all love crystal
<FromGitter> <mgarciaisaia> Today I've re-watched Ary's talk at Oredev presenting Crystal (not the one about macros, the other)
<RX14> i'd just love more people to use it :)
<FromGitter> <mgarciaisaia> And it blows my mind how much thought and design and effort was put in the language
<FromGitter> <sdogruyol> Let's spread the love then @RX14 πŸ‘
<Papierkorb> We should spam advertise more on some ruby boards..
<FromGitter> <kazzkiq> @johnjansen Run from React! πŸ˜„
<FromGitter> <sdogruyol> @mgarciaisaia ary is a genius
<Papierkorb> (Please tell me gitter supports strikethrough text)
<FromGitter> <johnjansen> @kazzkiq why do you think ive only just got to looking at it ;-)
<FromGitter> <sdogruyol> @Papierkorb no :/
<FromGitter> <mgarciaisaia> We know we could take the quick road of labeling the next release "1.0" and waiting for the shards and dollars to overflow every counter we implement
<FromGitter> <sdogruyol> that looked pretty serious lol
Groogy2 has joined #crystal-lang
<Papierkorb> sdogruyol, what about ~~this~~ or ~this~
<FromGitter> <mgarciaisaia> But we *don't have to*, and won't - so let's keep making a great thing, and the rest will eventually come
Groogy has quit [Disconnected by services]
Groogy2 is now known as Groogy
<Groogy> Hiya!
<FromGitter> <mgarciaisaia> @Papierkiorb the first `this` was striked-throuhg :P
<Papierkorb> Groogy: Wazzup
<FromGitter> <sdogruyol> @Papierkorb now thats ok
<FromGitter> <mgarciaisaia> But not the second
Groogy_ has joined #crystal-lang
<FromGitter> <kazzkiq> Perhaps there should be more marketing aimed at Ruby devs.
<FromGitter> <sdogruyol> @Groogy yo
<FromGitter> <sdogruyol> ugh please Ruby devs and not the Rails devs..
<RX14> we don't need more marketing at ruby devs
<FromGitter> <kazzkiq> They're rich. And they will love Crystal.
<RX14> no they wont because it doesn't have rails
<RX14> or anything like rails
<RX14> or anything as mature as rails
<FromGitter> <johnjansen> @sdogruyol try to separate the two … its like unmixing paint
<RX14> or anything honestly as good as rails
<Papierkorb> sdogruyol, lawl
<Groogy> Also yeah I don't know if what Crystal needs right now is marketing
<FromGitter> <sdogruyol> @johnjansen what?
<FromGitter> <sdogruyol> ahh
<Groogy> it is still developing an eco system
<RX14> it's a chicken and egg problem
<Groogy> besides you know not being 100% production ready
<RX14> we need more devs
<RX14> we need more libraries to get more devs
<RX14> and we need more devs to get those libraries
<RX14> and to get those devs we need windows support
<Papierkorb> Yo Groogy is the game industry so in love with C++ because C++, or are they moving on to Rust? What's keeping them exactly? I mean I know C++ to some extend, but can't claim I ever worked on such a hugely complex project like a big game
<RX14> which means merge my PR
<Papierkorb> Groogy: +why
<Groogy> Because our code base is already in C++ and to move costs money
<Groogy> and nothing move the game industry as much as money does
<Groogy> that is the TL;DR
* Papierkorb looks at EA
<Papierkorb> yeah I understand
<RX14> and new games dont help because the engines are in C++
<Groogy> Well you have Unity with C#
<RX14> and all the devs which make great engines are using C++
<Groogy> so C++ doesn't have monopoly really anymore
<RX14> Groogy, thats more of a scripting layer on top i thought
<RX14> but really i don't know
<Papierkorb> Wasn't Unity C++ at its core with many frontends for C# and JS etc?
<RX14> thats what I thought
<Groogy> Well not really?
<Groogy> I mean the definition of scripting layer there is vague
<Groogy> I mean the die hard "C++ is master race, purge any unbelievers"
<Groogy> would call it a scripting layer
<Groogy> But yeah at its core it is C++
<Groogy> but I mean what I would define as a scripting layer is like in our games
<RX14> well the rendering is done in C++
<RX14> and the game logic in C#
<Groogy> it lets you fiddle a little bit
<RX14> i think is the correct thing to say
<Groogy> but you can't make completley new features
<RX14> that's why the funnest game to mod is minecraft
<RX14> because you can do whatever you want
<RX14> because the JVM is extrodinarily flexible
<RX14> lots of rewriting each other's functions at classload time
<Groogy> yeah but that's a hack in JVM isn't it xD
<FromGitter> <sdogruyol> does Crystal have a change at game dev with a GC @Groogy ?
<RX14> pfft
<Groogy> it technically supports it but it is technically a hack as well
<RX14> we have to decompile and remap the MC source regardless
<RX14> the whole thing's a hack
<RX14> I know, I worked on tooling for it
<Groogy> @sdogruyol what do you mean? Have a chance?
<Groogy> oh definetly, I mean I did a game in C#
<Groogy> so the GC is not a problem, it is just something you have to learn how to deal with
<Papierkorb> RX14: I built a program (in Qt actually) back in the beta days which let you enable mods and it'd patch it for you. Fuck that shit.
<RX14> that's not really what we do any more
<RX14> now you just drop jar files in a mod directory
<RX14> and we have multimc
<Groogy> done in C#
<RX14> which is in Qt
<Groogy> dealing with the GC was an experience xD
<RX14> which is basically a version manager
<FromGitter> <sdogruyol> :D
<Papierkorb> Yeah that's what I built too back then basically
<RX14> there's no patching over files, just patching other classes by replacing the classloader
<Groogy> and keep in mind that C# will probably be slower than Crystal
<RX14> which is much more "fun"
<Groogy> and in C# to keep the speed we had to keep everything publuic
<Groogy> and tons of ugly hacks in the language
<Groogy> because of how bad it was at optimizing back then
<RX14> lol
<RX14> it's not even a jit
<RX14> it's an AOT
<RX14> but it has the time constraints of a jit
<Groogy> yep
<RX14> which is the worst possible idea
<Groogy> it's bad
<RX14> almost as bad as go
<Groogy> it couldn't even inline property methods if they were bigger than one statement
<Groogy> if I remember correctly
<RX14> implementing a compiler without SSA
<RX14> in the 21st century
<Groogy> but yeah @sdogruyol if it comes to performance
<Groogy> I am pretty sure Crystal is gonna be good enough
<Groogy> are the next AAA games gonna be made in it, probably not because Humans
<Papierkorb> The AAA market is probably a bit too big in any case
alex`` has quit [Ping timeout: 255 seconds]
<Groogy> yeah and now I just need to figure out how would one configure the framework to use a specific renderer
<Groogy> in a nice way
<Papierkorb> YAML and a factory
<RX14> i dislike having seperate configuration and code in frameworks
<RX14> it's great in daemons but please not in frameworks
<RX14> crystal is fantastic at creating DSLs
<Groogy> yeah no I want it to be definable in code so you can provide your own renderer
sz0 has joined #crystal-lang
<Groogy> I do however let you configure what kind of backend, because theoretically it shouldn't matter what backend you have
<Papierkorb> oh I thought you were talking about the end-user..
<Groogy> (OpenGL, Vulkan, DirectX, etc.)
<Groogy> ah no the coder
<FromGitter> <sdogruyol> lol
<Groogy> oh I just answered myself as I was gonna pose the question
<Groogy> "How do I make it fit here" and then I realized I already have the derived application class where I could put the logic for how to create the renderer
<Groogy> i.e because renderer is going to need a shader etc which you have to provide
<FromGitter> <simaoneves> why isnt the crystal homepage updated with the lastest releases?
<RX14> nothing overly noteworthy of a blog post for the releases
<FromGitter> <simaoneves> you are right maybe
<FromGitter> <simaoneves> but still, it seems outdated, because the last release that is there is from Nov 2016
<FromGitter> <simaoneves> new devs might perceive the project as dead maybe
<FromGitter> <codenoid> ^ agree
<FromGitter> <dbackeus_twitter> trying to figure out how to deal get YAML parsing to be correctly casted
<FromGitter> <dbackeus_twitter> my yaml structure is basically Hash(String, Hash(String, String))
<FromGitter> <dbackeus_twitter> but when parsed it's YAML::Any
<FromGitter> <dbackeus_twitter> any suggestions?
<RX14> use YAML.mapping if you can
<RX14> if you know you want a Hash(String, Hash(String, String)) then use Hash(String, Hash(String, String)).from_yaml
<RX14> YAML.parse and JSON.parse are not the primary tools for JSON/YAML parsing in crystal
<RX14> it really depends exactly on your usecase tho
<FromGitter> <mgarciaisaia> Having a rough time on public relationships :)
<RX14> @mgarciaisaia hmm?
<FromGitter> <mgarciaisaia> We're lagging a bit about communication - re @simaoneves comment about the blog and latest releases
<FromGitter> <sdogruyol> @mgarciaisaia I can help you with that πŸ˜„
<Papierkorb> `def self.tr_utf8(s : UInt8*, c : UInt8*? = nil, n : Int32 = -1) : String` it actually worksβ„’
ShalokShalom has joined #crystal-lang
<FromGitter> <dbackeus_twitter> thanks RX14
hightower3 has quit [Ping timeout: 240 seconds]
<FromGitter> <mgarciaisaia> @sdogruyol you know we know ;-)
ShalokShalom has quit [Remote host closed the connection]
ducklobster_ has quit [Ping timeout: 260 seconds]
<FromGitter> <dbackeus_twitter> any way of getting a reference to a method, ie in ruby you can do `MyClass.method(:foo)`
<RX14> as a proc?
<RX14> ->method(Argument, Types)
<FromGitter> <dbackeus_twitter> well in ruby it's a Method instance
<FromGitter> <johnjansen> yeah @dbackeus_twitter think about this, :foo with what signature?
<FromGitter> <dbackeus_twitter> don't understand the significance of the question, the compiler can already figure out what the method does and returns, but can I reference that method in a variable?
<RX14> but when you call a method you do so in a static location
<RX14> as soon as you detach the method into a variable it can be called in all sorts of dynamic contexts
p0p0pr37 has joined #crystal-lang
p0p0pr37 has quit [Read error: Connection reset by peer]
<RX14> which the compiler has no way of tracking at compile time
<RX14> (essentially it recreates the halting problem)
p0p0pr37 has joined #crystal-lang
<RX14> so when you specify a method you have to specify exactly which overload you want
<RX14> the exact concrete types
<RX14> s/specify/take a proc of/
<RX14> because taking a proc of a method is the only way to pass a method around in a variable
<FromGitter> <faustinoaq> > but JS ecosystem is like 1000x time bigger maybe ⏎ ⏎ @sdogruyol So, a JS backend for Crystal would be very useful πŸ˜„
p0p0pr37_ has joined #crystal-lang
p0p0pr37_ has joined #crystal-lang
p0p0pr37 has quit [Ping timeout: 252 seconds]
p0p0pr37_ is now known as p0p0pr37
ShalokShalom has joined #crystal-lang