RX14 changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.27.0 | Fund Crystal's development: http://is.gd/X7PRtI | GH: https://github.com/crystal-lang/crystal | Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/ | Gitter: https://gitter.im/crystal-lang/crystal
<oprypin> good idea
<oprypin> i was gonna post some introduction too but I'm not comfortable with it being indexed by search engines
<FromGitter> <anamba> @oprypin and... that is somehow more invasive than having all your irc messages being indexed? šŸ˜„
<oprypin> they are possible to index but usually don't show up, there's a lot of noise
<oprypin> the introductions are more personal than what i usually write on irc anyway
<FromGitter> <anamba> along those lines, PSA to everyone here: because of the IRC bridge, everything you post here ends up in public IRC logs
<FromGitter> <DanilaFe> oh
<FromGitter> <DanilaFe> that's neat
<FromGitter> <DanilaFe> there's probably a searchable history somewhere then that isn't through gitter
<FromGitter> <DanilaFe> Wasn't Vlad Faust working on a Crystal forum? Did he publish it at an unlucky time :(
_whitelogger has joined #crystal-lang
<FromGitter> <anamba> @DanilaFe it's still there https://forum.crystalcommunity.org/ he just got tired of waiting for the official one i think
<FromGitter> <DanilaFe> yeah, I'm sure he wouldn't just shut it down right away, but feels like now that there's an official forum, it's preferable to the community forum?
return0e has quit [Ping timeout: 240 seconds]
return0e has joined #crystal-lang
Raimondi has joined #crystal-lang
Raimondi has quit [Ping timeout: 240 seconds]
_whitelogger has quit [Ping timeout: 268 seconds]
_whitelogger has joined #crystal-lang
_whitelogger has joined #crystal-lang
<FromGitter> <Willyboar> Is there any CI written in Crystal?
<FromGitter> <Willyboar> I think crystal needs a really cool service to be self-founded.
<FromGitter> <vladfaust> Hey, yes, Iā€™m going to shut my forum down. The official one does the job šŸ™‚
<FromGitter> <proyb6> @Willyboar Crystal have been around but for business perspective, Golang is prefer for services
<FromGitter> <Willyboar> Well then for what crystal preferred?
<FromGitter> <bararchy> @proyb6 wait what? what do you mean by that?
return0e has quit [Read error: Connection reset by peer]
return0e has joined #crystal-lang
<FromGitter> <proyb6> Part of it is popular in China for the growing economy and marketing to push to adoption.
<FromGitter> <bararchy> Ok I just misunderstood you, all good
<FromGitter> <proyb6> Go is no friendly to beginner unlike Ruby and I think that could also generate some bad impression that most Ruby (not RoR) developers don't have a good portfolio or knowledge to deliver complex projects unless it's RoR? Kickstarter and Dev.to uses RoR are impressive stories but the only starting point we need is a lot of useful "libraries" to help startups gaining adoptions. Javascript grew too fast for that
<FromGitter> ... reasons, massive packages. Here, we really need an impressive marketing to push forwards in 2019.
<FromGitter> <Willyboar> @proyb6 that's what I say. Marketing will push crystal popularity.
<FromGitter> <Willyboar> Crystal needs Catchy software šŸ˜‚
ashirase has quit [Ping timeout: 240 seconds]
<FromGitter> <bararchy> What's a cool idea you would like to see in Crystal?
<FromGitter> <bararchy> as in, what would be a `wow` lib
<FromGitter> <Willyboar> It hasn't be a long
<FromGitter> <Willyboar> A few quick ideas is static generator, like hugo, jekyl etc, CI tool , ecommerce platform
ashirase has joined #crystal-lang
<FromGitter> <Willyboar> Project management, desktop application library
<FromGitter> <bararchy> also desktop-apps: http://shards.info/repos?query=ui
<FromGitter> <Willyboar> I have already checked 1,2 but I think they have a lot of time to committed
<FromGitter> <proyb6> I have tried Play Framework and left although I have participated in giving a cool PlayFramework tag but got changed a bit in their official tagline, it mean nothing to me now even if they have a cool marketing and it's not really high velocity. :) āŽ https://www.playframework.com/
<FromGitter> <Willyboar> I think web frameworks for crystal is in the right path. Most of them I tried is cool. Of course there are place for more.
<FromGitter> <kingsleyh> @bararchy and Oprypin - I've finally got my ECDSA openssl binding lib working - I've switched to using an older version of openssl so that it's easier to use - as I was using the latest convenience methods which were only available in openssl 1.1.1 - but now it should work with almost any version of openssl
<FromGitter> <kingsleyh> It only has sign and verify so far on the curve - but currently working on the diffie hellman stuff
tdc has quit [Quit: Leaving]
<FromGitter> <bararchy> nice!
<FromGitter> <bararchy> great job @kingsleyh
<FromGitter> <kingsleyh> Thanks for your collective help so far :)
<FromGitter> <bararchy> not sure how much I helped but I hope you manage that, I know multiple people talked about it
<FromGitter> <Willyboar> @kingsleyh give a link if you want please. I am checking any library I can
<FromGitter> <kingsleyh> I have written many libraries here: https://github.com/SushiChain
<FromGitter> <kingsleyh> and the crystal-ecdsa one is here too: https://github.com/SushiChain/crystal-ecdsa
<FromGitter> <Willyboar> OK I will check it . Thank you for sharing it. šŸ˜Š
<FromGitter> <j8r> @kingsleyh good job! Too bad the wrapper isn't OOP
<FromGitter> <j8r> `hex_private_key` can be an ivar
<FromGitter> <kingsleyh> @j8r thanks for the feedback :)
<FromGitter> <Willyboar> @kingsleyh Nice work but i am unfamiliar with crypto. But I liked your design.šŸ˜‚
<FromGitter> <bararchy> @Willyboar are you looking for a project to help out in?
<FromGitter> <Willyboar> @bararchy I will take a deeper look in Crystal holidays. I have created a team for open source projects and crystal attract my attention. Although I am open to help if it is possible.
<FromGitter> <bararchy> Sounds cool, what's your usual fields of interest?
<FromGitter> <Willyboar> Mostly web but I am curious for desktop apps and devops
akaiiro has quit [Ping timeout: 245 seconds]
Raimondi has joined #crystal-lang
Raimondi has quit [Ping timeout: 240 seconds]
akaiiro has joined #crystal-lang
JuanMiguel has joined #crystal-lang
JuanMiguel has quit [Read error: Connection reset by peer]
Yxhuvud has quit [Ping timeout: 250 seconds]
JuanMiguel has joined #crystal-lang
Yxhuvud has joined #crystal-lang
JuanMiguel has quit [Quit: Saliendo]
<Yxhuvud> Bleh. Todays AoC was even worse than day20. Part1 was trivial but the only consistent way to solve part2 seems to be to throw sat solvers at the problem :/
<mps> yxhuvud: please give me the url
early` has quit [Ping timeout: 268 seconds]
<mps> yxhuvud: thanks, will read
early has joined #crystal-lang
<oprypin> mps, yxhuvud, problem is u probably cant just read part 2?
<mps> oprypin: I just read and not tried to solve and will not try. don't like such exercises
<oprypin> yep
Jenz has joined #crystal-lang
non-aristotelian has joined #crystal-lang
non-aristotelian has quit [Client Quit]
DTZUZO has quit [Ping timeout: 250 seconds]
Jenz has quit [Quit: leaving]
<FromGitter> <girng> @proyb6 reddit is very mean to op in that thread. why i don't post there
JuanMiguel has joined #crystal-lang
JuanMiguel has quit [Client Quit]
return0e_ has joined #crystal-lang
return0e has quit [Ping timeout: 246 seconds]
JuanMiguel has joined #crystal-lang
JuanMiguel has quit [Client Quit]
<FromGitter> <j8r> Yep me too mps, remind me all this useless exercises in school
<mps> j8r: right :) I prefer real work where are needs to solve real problems. When read books about new programming where I need to grasp just concepts never do exercises and instead trying to make something what could be useful
* mps meant new programming languages
<oprypin> :)
<mps> btw, my daughter is a IT student, so I have to look (to help her) at really stupid^Wstrange exercises made by academic people :)
<FromGitter> <j8r> She is on Alpine, at least :P?
<mps> j8r: yes, but have two VMs, one with Debian for mysql and one with windows10 because professor insist on that crap, and I think he insist because he doesn't know to use anything else
<mps> 'she has' or 'she have', i'm not native speaker
<FromGitter> <j8r> What DE? KDE, Gnome?
<mps> she use Xfce, but I use awesomewm
<FromGitter> <j8r> My pref is (more->less): LXQt, KDE, Xfce, LXDE
<FromGitter> <j8r> Xfce is great
<mps> ah, remember from last night chat
<FromGitter> <j8r> She's probaly one of the few with Linux :(
<mps> you would like to have LXQt on Alpine
<FromGitter> <j8r> Haha yes :) Recently they have done a bit a refacto for they build scripts to be POSIX
<mps> i thought so, but she told me that there are some of her colleges who uses linux, ubuntu
<FromGitter> <j8r> Nice!
<mps> but most are on windows
<mps> can't remember if anyone tried to package lxqt to alpine
<FromGitter> <j8r> Hopefully it shares components with kde
<mps> Alpine doesn't have KDE :(
<FromGitter> <j8r> šŸ˜æ
<FromGitter> <j8r> Does she tried Crystal yet?
<mps> not yet, but i showed her some examples
<mps> she knows C, C++ and Java (and little perl) so could understand basic of crystal
<FromGitter> <j8r> And why Alpine and not BSDs like Freebsd?
<mps> i'm proud father, she was the best in the two first years at faculty
<mps> Alpine is musl based, doesn't use systemd and packaging is easy
<FromGitter> <j8r> That's good, nevertheless the most important is to be successful after that :)
<FromGitter> <j8r> Like BSDs ā€“ alpine remind me them
<mps> Alpine runs on x86_64, x86, armhf, armv7, aarch64, pppc64
<mps> i'm one of the early user of Linux, from 1993 year
<mps> or maybe 1994, can't remember exactly
<FromGitter> <j8r> the main difference in fact is the kernel vs other BSDs.
<mps> imo, not big difference
<mps> and i use some arm and mips small computers, linux is better for them
<mps> for example, now i type from alpine on chromebook
<FromGitter> <j8r> Have you tried redox?
<FromGitter> <j8r> A kernel in Rust, userspace components too
<mps> i read about it, but didn't thought to try it
<mps> because i'm conservative, i prefer systems which i understand and don't like to find perfect one, there is no perfect OS, imho
<mps> looked to learn Rust, but for now don't have something to push me there, probably in future will be forced to learn it, will see
<mps> and you, you know Rust?
<mps> from my superficial view it looks as better C++, but not sure
<FromGitter> <sam0x17> is there a way to call an overloaded version of initialize from initialize?
<FromGitter> <sam0x17> e.g., I want my 0 arg initialize to call my 2 arg initialize with some default values
<oprypin> sam0x17, no
<oprypin> well actually you can call it just fine, just that it won't "count" for anything
<oprypin> insize an `initialize` you MUST set every `@variable =` directly or through `super`
<oprypin> inside*
<FromGitter> <sam0x17> but if those variables have default values, will that "count"?
<FromGitter> <sam0x17> e.g.: āŽ āŽ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5c2014016649aa1f82beeb56]
<FromGitter> <sam0x17> this is a simplified example, btw, in reality initialize(something) sets var1 based on the result of a complex C call
<FromGitter> <sam0x17> edit: seems like it does work https://play.crystal-lang.org/#/r/5uiy
<FromGitter> <straight-shoota> @sam0x17 You should usually only define one `#initialize` method (multiple only if they are strictly different) and provide `.new` overloads.
<FromGitter> <straight-shoota> In your example, just rename the first method to `self.new` and call `new("a different value")`
<FromGitter> <sam0x17> yeah, can someone give me a high level explanation on the thinking behind new vs initialize, this was something I always didn't understand in ruby
<FromGitter> <sam0x17> so my most complex (most args) version should be the initialize, and then do new overloads for that basically?
<FromGitter> <sam0x17> thanks, btw @straight-shoota
<oprypin> sam0x17, yeah that was a good suggestion
<oprypin> i just didnt pick up on it cuz it was attacked from the wrong angle
<oprypin> sam0x17, so yeah, do that, and also don't forget that you can do helpers. `def helper; @a = foo(); end` won't work but `def helper(); foo(); end; def initialize; @a = helper(); end` will
<FromGitter> <straight-shoota> `#initialize` does the basic object initialization. The default `.new` implementation (typically not visible) cares about memory allocation etc. and calls `#initialize` which then bootstraps the object. You can provide `.new` overloads for nice API.
trashhalo[m] has joined #crystal-lang
trashhalo[m] has left #crystal-lang ["User left"]
trashhalo[m] has joined #crystal-lang
<oprypin> sam0x17, also something to help you understand, calling it `initialize` makes absolutely no difference, it's still just a `helper` like above
<oprypin> but yes, default values stop the requirement of initialization. it's not very nice though, you can end up fooling yourself while fooling the compiler