<FromGitter>
<straight-shoota> let's just say you can do it, but you can't use the stdlib (or most of it).
<RX14>
i don't think most sane people would call crystal crystal without the stdlib
<RX14>
I don't think crystal is just it's syntax
<FromGitter>
<xfbs> Well crystal is the combination of a pretty good stdlib, a sweet ruby-inspired syntax to call them and a gitter channel where I can ask dumb questions
<FromGitter>
<aisrael> Gitter channel rules
<RX14>
I feel like I should really apply for gsoc even though crystal didn't get in...
<FromGitter>
<xfbs> Such a shame crystal didn't get in, that would have been my first choice tbh
<RX14>
yeah
<Papierkorb>
When I applied (years ago), I wasn't chosen and later the project owner/founder ran away with the foundations money lawl. Bullet dodged I guess.
<RX14>
it'd be nice if there was a longer explanation why
<Papierkorb>
To be fair, I guess a billion or so more projects applied, giving a reason for each which boils down to "the others were first and have 20 more devs and at least quadruple the user base" isn't much more helpful
<RX14>
yeah there are quite a few small prjects in there too
<RX14>
like terasology
<RX14>
I should apply for them, they have a cool CI problem
<RX14>
and I've had a few long chats with the main dev before
<RX14>
i'll just apply to everyone I guess lol
<FromGitter>
<xfbs> Seems like a smart thing to do tbh
<FromGitter>
<xfbs> Eh I found a few select ones that actually interest me
<FromGitter>
<xfbs> But I'm not expecting to get any of them seeing as if they interest me they probably interest others as well
<Papierkorb>
Whatever you choose to do, not doing something cause someone else might snatch it isn't a reason for not tryin'
<FromGitter>
<xfbs> Yep that's true
<FromGitter>
<xfbs> So I sent a couple emails
<RX14>
i'd be cool to work on crystal over the summer though
<RX14>
perhaps someone using crystal at work needs an intern *hint hint* :)
<FromGitter>
<xfbs> No travel plans in the summer for you?
<FromGitter>
<xfbs> I'd be cool to work on crystal until the summer
<RX14>
travel plans require money
<FromGitter>
<xfbs> Well, in the age of ryanair and airbnb, not so much
<FromGitter>
<xfbs> I flew to israel this year for 20 euros and my friend hitchhiked from germany all the way to croatia and back
<FromGitter>
<xfbs> Three days each way, that's what I call dedication to the cause
<Papierkorb>
If you don't have to pay for nothing, I guess that's easy
maattdd has quit [Ping timeout: 248 seconds]
<FromGitter>
<xfbs> Would you try it?
<FromGitter>
<xfbs> I mean hitchhiking in general
<RX14>
I don't think i'd survive hitchhiking
maattdd has joined #crystal-lang
<Papierkorb>
Sounds rather boring by yourself. Not much to see along the path
<RX14>
yeah
<RX14>
i'd totally do it with a friend
<RX14>
well I hope there's at least a crystal convention in europe somewhere this year
<RX14>
or something crystal's going to
<RX14>
it'd be cool to meet anyone who's heard of crystal ever irl
<FromGitter>
<xfbs> True that.. I've never actually checked if there are crystal user groups somewhere
<FromGitter>
<xfbs> Possibly in Berlin?
<Papierkorb>
Guess as part of RUGs where Elixir also resides
<RX14>
elixir is a terrible ruby
<RX14>
*sigh*
<RX14>
it's an awesome language
<Papierkorb>
I mean I can see the point if you're a rails shop but want some more oomph
<FromGitter>
<xfbs> Is Elixir even considered 'a ruby'?
<RX14>
but using "def" and "end" doesn't magically make a language like ruby
<Papierkorb>
The syntax is highly inspired, although heavily changed in parts to accomodate for the functional nature of the VM
<FromGitter>
<CodeTrooperMC> So Windows isnt out yet... but would it be possible to use Crystal on Windows by downloading the source code and then compiling? Sorry I'm kinda new to stuffs and things.
<RX14>
Papierkorb, sure but you can say the same for rails shops and JS
<FromGitter>
<xfbs> @CodeTrooperMC you can try!
maattdd has quit [Ping timeout: 256 seconds]
<RX14>
elixir is probably as fireign to ruby as JS
<RX14>
perhaps more
<Papierkorb>
Elixir is FP for one
<RX14>
exactly
<RX14>
at least java and ruby are oo
<RX14>
kinda
<RX14>
js's like both
<RX14>
@CodeTrooperMC not really
<FromGitter>
<xfbs> Ruby is `very` oo
<RX14>
crystal is largely OO
<Papierkorb>
That's the point about ruby
<RX14>
js is both
<RX14>
and elixir is mostly fp
<FromGitter>
<CodeTrooperMC> Why not? Does it depend on linux stuff?
<Papierkorb>
Eh kinda
<RX14>
yes @CodeTrooperMC
<Papierkorb>
You can either use a Linux VM (e.g. Ubuntu in a Virtualbox), or use the Windows Subsystem for Linux
<RX14>
if it was just a case of compiling crystal for windows
<RX14>
crystal for windows would have been done years ago
<RX14>
porting the standard library to windows is the problem
<RX14>
and I ran out of steam on that effort
<RX14>
I need to rework my File::Info PR
<RX14>
but ehh
<FromGitter>
<CodeTrooperMC> So the standard lib for linux is different from windows?
<RX14>
it's been "tomorrow" for too long
<RX14>
@CodeTrooperMC C's standard library is different from unix/linux to windows
<RX14>
thats why it's so hard for linux software to run on windows
<Papierkorb>
CodeTrooperMC, barely any dev who works or worked on Crystal even uses Windows at all, so there's no one whose immediate interest is to get it to run on "their favorite redmond OS"
<RX14>
but it's easy for linux software to run on mac
<RX14>
linux and mac are both unixes
<RX14>
windows is not
<FromGitter>
<CodeTrooperMC> Yaeah
<RX14>
Papierkorb, eh
<RX14>
it's surprisingly fun to port
<Papierkorb>
CodeTrooperMC, Windows is different than anything else. It's easy to run Crystal on Mac OS, it even runs on BSDs and stuff
<FromGitter>
<xfbs> I'm launching a windows VM to see what breaks there
<RX14>
because you get the good feeling of kicking everything platform-specific out of the stdlib
<RX14>
and I love deleting things
<FromGitter>
<bew> \o/
<Papierkorb>
xfbs, "Basically everything"
<FromGitter>
<CodeTrooperMC> Is the C standard lib for windows named differently than linux?
<FromGitter>
<xfbs> Well the fun part is that in almost 10 years of programming 'experience' I have never in my whole life compiled anything on windows
<RX14>
@CodeTrooperMC yeah
<RX14>
but it's more than just the name
<RX14>
on windows it's called msvc
<Papierkorb>
xfbs, Because why would you. Windows is just awful to develop on if you're not buying into the .Net ecosystem
<RX14>
on linux you have glibc or musl
<FromGitter>
<xfbs> I think a large problem with windows is also the the compiler is a little odd, at least until like 2016 or something I think MSVC didn't support C99 (I think?)
<Papierkorb>
MSVC doesn't, no
<FromGitter>
<CodeTrooperMC> You don't have to do .net
<Papierkorb>
And yes, it's a joke
<FromGitter>
<CodeTrooperMC> Aren't there other stuff
<RX14>
.net is cool
<RX14>
I need to play with F#
<Vexatos>
I mean it's awful to develop even .net on windows
<Papierkorb>
You don't have to, but it's absurd how complicated it is to be productive in anything but
<RX14>
Vexatos, lies
<RX14>
visual studio is pretty good
<Vexatos>
well yes
<FromGitter>
<xfbs> Weird question but I just launched a windows server 2016 vm, but I have no idea how to connect to it, SSH doesn't work right, so I have to use screensharing or something?
<Papierkorb>
If it wasn't for QtCreators excellent package I would've never even began writing code on Windows
<RX14>
although why bother these days
<Vexatos>
but there are plenty of alternatives
<RX14>
since you have dotnetcore
<RX14>
and you can just do it all on linux
<Papierkorb>
xfbs, erm .. Windows RDP I guess
<RX14>
and emacs
<FromGitter>
<CodeTrooperMC> Lol I am realizing how much more I have to learn in programming.
<RX14>
yep
<RX14>
people say i'm knowledgable but sit me infront of the sourcecode for a game and i'll look like a monkey on a typewriter
<RX14>
the field is so vast that nobody can know everything
<FromGitter>
<CodeTrooperMC> I probably know less than 1/4 of what you guys know.
<RX14>
it's just experience
<RX14>
go break stuff
<RX14>
it's fun and educational
<Vexatos>
What I do is look like a monkey on a typewriter until I understand it, and then work on it
<RX14>
that's why it's best to start young, you get a good 5+ years of breaking stuff before you have to get a job and stop breaking stuff
<FromGitter>
<xfbs> `git clone` is the key to the kingdom
<RX14>
also breaking stuff is more fun with friends
<FromGitter>
<CodeTrooperMC> I started learning basic stuff (Javascript) at about 11yo but then it got boring so I did scratch for about 1 1/2 years. Then I went back to real programming and learned C++ and Java and whatever else is similar a year ago.
<RX14>
learning new programming languages is just about the coolest thing about programming in my experience
<Papierkorb>
CodeTrooperMC, Find a project (think something up), and whatever it is, work towards getting something to work.
<RX14>
the way I learnt crystal was writing a prject in it
<RX14>
I remember joining this IRC
<RX14>
and seeing people benchmarking their IRC parsers
<RX14>
and so I wrote fast_irc.cr
<Papierkorb>
CodeTrooperMC, and do something that interests you. You don't feel like building the umpteenth calculator? Then don't, there's a ton of interesting shit
<Vexatos>
I learn most languages by reading the documentation :/
<RX14>
maybe it's just me but i always seem to have a project suitable for learning a new programming language
<RX14>
Vexatos, yeah
<Vexatos>
and that tends to work pretty well
<RX14>
you read the docs cover to cover
<Vexatos>
yup
<RX14>
then just write the project
<RX14>
it's "simple"
<FromGitter>
<xfbs> Lemme chip in too :p My break in programming was when I convinced an older freelance programmer to mentor me every sunday, that was super cool cause I was like 15 with no experience and this guy basically sat me in front of vim and git
<Vexatos>
Except I don't have any project
<Vexatos>
I just read the docs
<Papierkorb>
CodeTrooperMC, I care less about languages (They're tools), but what you can pull of with it, and where they excell and where they fall flat.
<RX14>
Vexatos, lol
<FromGitter>
<CodeTrooperMC> Yeah Ive used tutorialspoint
<FromGitter>
<xfbs> @CodeTrooperMC do you like maths?
<FromGitter>
<CodeTrooperMC> To learn stuff.
<Vexatos>
When I was 15 I basically just taught myself programming out of boredom
<RX14>
Papierkorb, programming languages are excellent ways to force yourself to learn concepts and tools though
<RX14>
learning C# and java and C++? that's just boring
<FromGitter>
<CodeTrooperMC> Maths? You mean the subject or something else?
<FromGitter>
<CodeTrooperMC> @xfbs
<RX14>
learning C# and haskell and prolog?
<Papierkorb>
Not really, I like to actually know my tools
<RX14>
now that's more fun
<Papierkorb>
And Haskell is awful
<Vexatos>
It is
<RX14>
disagree
<Papierkorb>
The memory system can't even model interesting projects without imploding
<Vexatos>
Haskell is a proof of concept
<FromGitter>
<xfbs> @CodeTrooperMC yeah, check out projecteuler.net, I used that to teach myself python as a kid, it's basically maths puzzles you solve by programming
<FromGitter>
<xfbs> Gets harder as you progress
<Vexatos>
Just because you can make a pure functional language doesn't mean you should, etc etc
<FromGitter>
<CodeTrooperMC> Cool
<RX14>
maths puzzles are a terrible way to learn to code though
<Papierkorb>
Without having to resort back to that devilish mutable data it shuns so much, it's like satire
<RX14>
write something real
<RX14>
someting useful
<Vexatos>
adventofcode was nice
<RX14>
something with IO
<FromGitter>
<xfbs> I learnt crystal with project euler
<FromGitter>
<CodeTrooperMC> Okay gtg
RX14 has quit [Ping timeout: 256 seconds]
RX14 has joined #crystal-lang
RX14 is now known as Guest31433
alex`` has quit [Ping timeout: 255 seconds]
bijan_ is now known as bijan_awaaaay
bijan_awaaaay is now known as bijan_
bijan_ is now known as bijan_awaaaay
bijan_awaaaay is now known as bijan_
bijan_ has quit [Quit: System has gone to sleep. ZZZzzz…]
vivus has quit [Quit: Leaving]
DTZUZO has quit [Quit: WeeChat 2.0]
robacarp has joined #crystal-lang
DTZUZO has joined #crystal-lang
<FromGitter>
<robacarp> anyone have any direction about what I'm doing wrong here? https://carc.in/#/r/3ksu
dragonkh has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
Voile has joined #crystal-lang
Voile has quit [Ping timeout: 260 seconds]
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
maattdd has joined #crystal-lang
snsei has quit [Ping timeout: 276 seconds]
maattdd has quit [Ping timeout: 264 seconds]
alex`` has joined #crystal-lang
<FromGitter>
<silentworks> I am currently trying to use this library https://github.com/russ/base58 in my project, but whenever I `require "base58"` I get the following error `in lib/base58/src/base58.cr:2: while requiring "big_int": can't find file 'big_int' relative to '/app/lib/base58/src'`
<jsn->
silentworks, require "big_int" doesn't work in crystal 0.24, it's either require "big" or perhaps require "big/big_int" now
flaviodesousa has joined #crystal-lang
<FromGitter>
<silentworks> Ah I see, I will make that change in my code and see if it makes a difference, then send a PR to that repo in that case
sz0 has quit [Quit: Connection closed for inactivity]
dannyAAM has quit [Quit: znc.saru.moe : ZNC 1.6.2 - http://znc.in]
faustinoaq has quit [Quit: IRC client terminated!]
jradd has quit [Ping timeout: 256 seconds]
DTZUZO has quit [Ping timeout: 256 seconds]
rohitpaulk has joined #crystal-lang
maattdd has joined #crystal-lang
yopp has quit [Ping timeout: 265 seconds]
maattdd has quit [Ping timeout: 248 seconds]
thi_ has quit []
thi_ has joined #crystal-lang
hightower3 has joined #crystal-lang
hightower2 has quit [Ping timeout: 240 seconds]
<FromGitter>
<xfbs> What should I do if I get segfaults in crystal?
<crystal-gh>
[crystal] MakeNowJust opened pull request #5719: Improve Ctrl-C handling of spec (master...fix/spec/improve-ctrl-c-handling) https://git.io/vA3nQ
<FromGitter>
<bararchy> What's the best way to convert JSON::Any to hash ?
snsei has joined #crystal-lang
Take_Your_Freedo has quit [Remote host closed the connection]
snsei has quit [Ping timeout: 255 seconds]
<FromGitter>
<mamantoha> Hi! I've written code. And it works, but I still not happy with such implementation. Literally, I specify every possible combination of values in the hash. It seems to me that there should be a more elegant solution to this. Any ideas? - https://play.crystal-lang.org/#/r/3kwu
greengriminal has quit [Quit: This computer has gone to sleep]
greengriminal has joined #crystal-lang
greengriminal has quit [Client Quit]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 252 seconds]
<FromGitter>
<elorest> Sometimes I it define a method with a union type like `def mymethod(val : String | Int32 | Nil)` and then try calling it with `mymethod("elorest")` I get the error ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ I don't understand this error as String type is clearly part of the union. What would cause it to expect the entire union instead? [https://gitter.im/crystal-lang/crystal?at=5a833ad1b3c4a0d3761b90e8]
<FromGitter>
<Fryguy> @elorest that's weird...is it consistently reproducible (i.e. can you put it on carc.in ?)
<FromGitter>
<elorest> @Fryguy Unfortunately it's only reproducible within complex environments. Exact same code works in crystal play or just a single file. I've ran into this multiple times over the last 10 months and have always found some work around. I really would like to get to the bottom it though.
<FromGitter>
<straight-shoota> hm, then maybe push a failing version in a special branch on github so somebody can take a look at it
<FromGitter>
<elorest> For instance I currently get this error here. ⏎ `packed = MessagePack.pack(hash.as(Hash(String, String)))` unless I cast it as shown above. Weird thing is that the Hash is already defined as Hash(String, String) and `hash.class` verifies that. Even when it's directly defined above as `hash = {"name" => "elorest"}` it fails unless I cast it first. ⏎ ⏎ The exact same code works in every other situation.
<FromGitter>
<elorest> I'm trying to get it to fail in the simplest way possible in not proprietary code then I'll send post it. Thanks. ⏎ ⏎ Mostly I'm trying to find advanced rules for union types or something. There must be some reason this is happening. One thing I can think of is that it's inside of a proc...
greengriminal has quit [Client Quit]
snsei has quit [Ping timeout: 276 seconds]
<FromGitter>
<straight-shoota> might be
<FromGitter>
<alexanderadam> Any advice how to test whether an JSON mapper maps *all* possible values? ⏎ I wanted to do something like this (i use spec2 as the testing framework) ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5a834156ce68c3bc7480f7b8]
<Papierkorb>
"all possible values"?
rohitpaulk has quit [Ping timeout: 256 seconds]
return0e has quit [Read error: Connection reset by peer]
return0e has joined #crystal-lang
<FromGitter>
<alexanderadam> sorry, I meant all keys of the provided json hash
<Papierkorb>
Why are you trying to do that? If you really want to test the json mapper, and not your code, you can give it a sample document to map and then individually check for the correct results
<Papierkorb>
That at least lets you verify that the mapping is correct. The JSON mapper will create the correct getters, that's for sure - otherwise, almost every crystal application would break instantly.
<FromGitter>
<alexanderadam> You mean without a loop? This way the provided JSON would already document the required fields and I wouldn't have to "ask" for the properties again.
<FromGitter>
<alexanderadam> Oh, so you wouldn't recommend a generic approach with inflection?
<Papierkorb>
that may work in a dynamic language, but not in a static language. You could abuse macros for it, but I already pointed out why doing just that doesn't actually test something useful
<Papierkorb>
Crystal doesn't have reflection.
<FromGitter>
<alexanderadam> well, something like `"".respond_to? :blank?` is inflection, isn't it?
<Papierkorb>
No, because that code only works with that exact notation
<Papierkorb>
Try it with a variable.
<FromGitter>
<alexanderadam> hm, okay
<FromGitter>
<alexanderadam> thank you
snsei has joined #crystal-lang
<FromGitter>
<straight-shoota> reflection means to have access to the program's structure at runtime. All you can do with macros and `responds_to?` happens at compile time.
snsei has quit [Ping timeout: 255 seconds]
rohitpaulk has joined #crystal-lang
[spoiler] has quit [Quit: Cheers!]
[spoiler] has joined #crystal-lang
[spoiler] has quit [Client Quit]
[spoiler] has joined #crystal-lang
snsei has joined #crystal-lang
<FromGitter>
<alexanderadam> okay
snsei has quit [Ping timeout: 276 seconds]
duane has quit [Ping timeout: 255 seconds]
jradd has quit [Ping timeout: 255 seconds]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 252 seconds]
mounibec has joined #crystal-lang
mounibec has left #crystal-lang [#crystal-lang]
snsei has joined #crystal-lang
<watzon>
Crystal doesn't have anything like node's `os.homedir()` does it?
<watzon>
To get the home directory for the current user
LastWhisper____ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
snsei has quit [Ping timeout: 255 seconds]
jradd has joined #crystal-lang
<FromGitter>
<straight-shoota> no
<FromGitter>
<straight-shoota> it's suggested as `Path.home` in #5635
<FromGitter>
<aisrael> Yep. I used `IO.copy` for something similar in a Cossack middleware that recorded HTTP interactions
<crystal-gh>
[crystal] Wulfklaue closed pull request #5515: Returns the effective, real group and user ID of the current process (master...master) https://git.io/vbjBK