<FromGitter>
<Blacksmoke16> thats a new one :thinking:
<FromGitter>
<Blacksmoke16> oh nvm, had a `property` floating outside of a class/struct
<FromGitter>
<tenebrousedge> *nods*
f1refly has joined #crystal-lang
f1reflyylmao has quit [Ping timeout: 245 seconds]
chemist69 has quit [Ping timeout: 252 seconds]
chemist69 has joined #crystal-lang
DTZUZO has joined #crystal-lang
ht_ has joined #crystal-lang
_whitelogger has joined #crystal-lang
_whitelogger has joined #crystal-lang
ua has joined #crystal-lang
lvmbdv has quit [Quit: i bet i can punch that bear trap]
lvmbdv has joined #crystal-lang
<FromGitter>
<ilanpillemer> @ImAHopelessDev_gitlab I am busy reading the book by Bruce Tate, as he is writing it, in order to learn Crystal. (https://grox.io/)
ht_ has quit [Quit: ht_]
lvmbdv has quit [Quit: bruh]
lvmbdv has joined #crystal-lang
lvmbdv has quit [Ping timeout: 240 seconds]
lvmbdv has joined #crystal-lang
DTZUZO has quit [Ping timeout: 240 seconds]
absolutejam has joined #crystal-lang
absolutejam has quit [Ping timeout: 246 seconds]
alex`` has joined #crystal-lang
<FromGitter>
<ImAHopelessDev_gitlab> Good morning!!
<FromGitter>
<ImAHopelessDev_gitlab> It's Crystal time baby, let's go
<FromGitter>
<ImAHopelessDev_gitlab> Time to edit all my files to conform to the new PRs
<FromGitter>
<ImAHopelessDev_gitlab> i also want to create a server admin app on windows so i can load up my masterserver.cr and gameserver.cr in separate tabs. can use godot's ui for this, i think it will be cool. once i get it working, i'll release it on github
<FromGitter>
<ImAHopelessDev_gitlab> having to deal with 2 consoles is annoying af
<FromGitter>
<ImAHopelessDev_gitlab> > `arr[idx]?` doesn't work for `nil` since there isn't a way to tell that `nil` is a value or because its out of bounds
<FromGitter>
<ImAHopelessDev_gitlab> what's this mean
<FromGitter>
<Blacksmoke16> yea that doesnt work for `false` or `nil`
<FromGitter>
<tenebrousedge> I don't think you're missing anything, I think it's just weird
<dwdv>
Btw., what's wrong with each?
<FromGitter>
<tenebrousedge> there is almost always a better iterator
<FromGitter>
<tenebrousedge> if you're doing a complex loop with multiple external variables, or if there's really no possible return value from the loop that could be useful, `each` is fine
<FromGitter>
<tenebrousedge> but in most cases there's an iterator (`reduce` if nothing else) that will have a useful return value
<FromGitter>
<tenebrousedge> `reduce` can be used to write all other higher-order iterators
<FromGitter>
<ilanpillemer> dwdv, when I finish getting through a bunch more of exercise, I am going to do AoC2016 with Crystal. Just did 2018 in Go.
<FromGitter>
<ImAHopelessDev_gitlab> how do you live
<dwdv>
Almost as bad as my ugly emacs. :)
<FromGitter>
<ilanpillemer> I just changed to Acme from emacs over the last few months
<FromGitter>
<ImAHopelessDev_gitlab> i imagine @ilanpillemer you prefer function over form? :)
<FromGitter>
<ilanpillemer> yes
<FromGitter>
<ImAHopelessDev_gitlab> can't fault u there :)
<FromGitter>
<ImAHopelessDev_gitlab> actually, since you released crystal formatter for acme editor i might try it out lol
<FromGitter>
<ImAHopelessDev_gitlab> i gave u a star btw, thx
<FromGitter>
<ilanpillemer> next week, I want to look at seeing if I can link up a lsp server into it
<FromGitter>
<ilanpillemer> if there are any good Crystal LSP servers?
<FromGitter>
<ilanpillemer> though if you dont have Go, I would have have to add some travis CI and a download repo so you can get the binary for your OS
<FromGitter>
<ilanpillemer> and setting up Acme can send you down a crazy rabbit hole
<FromGitter>
<ilanpillemer> kakoune looks nice. There are 3 kinds of editors for different kinds of folks. GUI kinds (eclipse, vscode etc), char driven(emacs, vi), integrating (Oberon, acme)
<FromGitter>
<ilanpillemer> and they reflect I think the way the users think at quite a low level. I can get acme working for any kind of language even extremely experimental ones very fast.
<FromGitter>
<ilanpillemer> but I lose things like syntax colouring.
<FromGitter>
<ImAHopelessDev_gitlab> i was watching a video from jonathan blow's youtube channel. the way he navigates around emacs is kinda impressive tbh. i just use my mouse and click and drag, lol
<FromGitter>
<ilanpillemer> I used emacs for the last 20 years until I discovered Acme about a year ago
<FromGitter>
<ilanpillemer> the part I struggled the most with emacs is window management
<FromGitter>
<tenebrousedge> @ilanpillemer commented on finished solutions. The anagram and atbash solutions seem fine. I did them slightly differently, but there's no reason to prefer either method, as far as I know
<FromGitter>
<ilanpillemer> thanks!
<FromGitter>
<tenebrousedge> if you want a challenge, try the Forth
<FromGitter>
<tenebrousedge> I recommend a dual-mode interpreter rather than a two-pass interpreter
<FromGitter>
<ImAHopelessDev_gitlab> i was literally about to post that issue with the title "when dividing by 64 or higher" 😆 LOLL
<FromGitter>
<ImAHopelessDev_gitlab> wasn't even a dividend.. massive fail
<FromGitter>
<Blacksmoke16> rip
<FromGitter>
<ilanpillemer> @tenebrousedge tomorrow I will go through all your comments and update my solutions accordingly. Thanks again! Much appreciated.
<FromGitter>
<tenebrousedge> you are most welcome
<FromGitter>
<ilanpillemer> Having been using Go for the last year which is spartan by design, this plethora of methods in the standard library is fascinating.
<FromGitter>
<ilanpillemer> For example in Go you would roll your own max method for an Int.
<FromGitter>
<ilanpillemer> Or permutations.
<dwdv>
Same story with Ocaml. Stdlib is rather small, but atleast they have lazy seqs. :)
<FromGitter>
<ilanpillemer> You do get stuff for not trivial things like Ring Lists and Heaps.
<FromGitter>
<ilanpillemer> But if the authors of Go think it's 'trivial' you don't get it.
<FromGitter>
<ilanpillemer> I suspect it's because of the lack of generics
<FromGitter>
<ilanpillemer> Even a last seq can be seen as a trivial closure.
<FromGitter>
<ilanpillemer> Lazy seq I mean.
<FromGitter>
<tenebrousedge> Go is a mystery to me. I think I would need a lot of libraries to work in it effectively
<FromGitter>
<ilanpillemer> It's C with garbage collection and concurrency primitives.
<FromGitter>
<ilanpillemer> And improvements for various things.
<FromGitter>
<ilanpillemer> Imho
<FromGitter>
<ilanpillemer> Basically created by the authors of C.
<FromGitter>
<ilanpillemer> Based on lessons learned
<FromGitter>
<tenebrousedge> I'm aware of that much, I just question their choices
<FromGitter>
<ilanpillemer> And targeting large scale Google size cloud based system programming.
<FromGitter>
<ilanpillemer> Compilation time on massive distributed large code bases that require distributed compilation