ChanServ changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.32.1 | 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
<FromGitter> <Blacksmoke16> OH
<FromGitter> <Blacksmoke16> so `users/:id/information` is the path
<FromGitter> <j8r> Right
<FromGitter> <j8r> I didn't manage to make more type safe than this
<FromGitter> <Blacksmoke16> `get` is a macro i assume?
<FromGitter> <j8r> Athena is even better type safe, but at the expense of being more verbose
<FromGitter> <j8r> It's is a method :P
<FromGitter> <Blacksmoke16> ah, was going to say you could use https://crystal-lang.org/api/master/Crystal/Macros/TypeDeclaration.html
<FromGitter> <j8r> There is a `*path : *T` argument
<FromGitter> <Blacksmoke16> `get "users", UserID : Int32, "information", ...`
<FromGitter> <j8r> In fact, `UserID` is a struct, which holds also class metadata for Swagger
<FromGitter> <Blacksmoke16> > Athena is even better type safe, but at the expense of being more verbose ⏎ ⏎ dunno if you saw it or not, but i also added kemal/sinatra style route definitions
<FromGitter> <Blacksmoke16> ah, as like class methods/
<FromGitter> <j8r> Really? I must look at this :)
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e3f4d7bb612cc7bb1565f64]
<FromGitter> <Blacksmoke16> https://athena-framework.github.io/athena/Athena/Routing/Controller.html#get(path,*args,**named_args,&)-macro
<FromGitter> <Blacksmoke16> essentially just defines the method with the annotation and stuff for you
<FromGitter> <Blacksmoke16> so can also add other annotations above it, like for param converters or query param etc
<FromGitter> <j8r> Great, looks very cool!
<FromGitter> <j8r> One use case I had is to group routes together, to avoid having to add the base path each time
<FromGitter> <Blacksmoke16> 😉
<FromGitter> <j8r> Wow
<FromGitter> <j8r> You have thought of everything
<FromGitter> <Blacksmoke16> i try :p
<FromGitter> <Blacksmoke16> wont really know until people start to use it in ways i didnt think of ha
<FromGitter> <Blacksmoke16> prefix also inherits prefixes of parent types, including route path params ^
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e3f4f54c900d747abf2ad33]
<FromGitter> <j8r> Ho
<FromGitter> <j8r> And how authentication is handled?
<FromGitter> <Blacksmoke16> define a listener on the `Request` event
<FromGitter> <Blacksmoke16> probably could go higher on the priority, would want this to run before the router for example
<FromGitter> <j8r> Thanks. I remember now, it was part of your blog post
<FromGitter> <Blacksmoke16> as no sense in resolving the route if the user doesnt have permissions to access it anyway
<FromGitter> <Blacksmoke16> yea, updated everything last night
<FromGitter> <Blacksmoke16> deff a diff approach than other frameworks but im super happy with how it turned out
<FromGitter> <Blacksmoke16> listener versus `HTTP::Handler` makes it much more flexible
<FromGitter> <j8r> We can't define an interface to define class methods?
<FromGitter> <Blacksmoke16> sadly no :/
<FromGitter> <Blacksmoke16> would be perfect for the `subscribed_events` method
return0e has quit [Remote host closed the connection]
<FromGitter> <rurounijones_gitlab> So I am not very familiar with the state of Windows support right now. Is it possible to compile a crystal binary for Windows from Linux?
<FromGitter> <tenebrousedge> apparently someone did that in the past (https://pryp.in/blog/23/how-to-build-video-games-for-windows-using-crystal.html)
<FromGitter> <Daniel-Worrall> Yes, but only very basic programs will work
<FromGitter> <Daniel-Worrall> That's how testing the windows specs works for now
<FromGitter> <rurounijones_gitlab> Will give it a go, my program isn't hideously complex
martinium has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<FromGitter> <Daniel-Worrall> By basic, I mean hello world
<FromGitter> <rurounijones_gitlab> Ah, right.
return0e has joined #crystal-lang
return0e has quit [Ping timeout: 272 seconds]
martinium has joined #crystal-lang
return0e has joined #crystal-lang
<FromGitter> <Blacksmoke16> fwiw
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e3f991762e9db4bf788ed5c]
<FromGitter> <Blacksmoke16> triggered when a release is created, builds a static prod binary, and uploads it to that release
<FromGitter> <watzon> 👏
<FromGitter> <watzon> Very nice
<FromGitter> <Blacksmoke16> feel free to adapt as needed
return0e has quit [Ping timeout: 268 seconds]
<FromGitter> <Blacksmoke16> reasoning for updating libxml2 and libyaml is i want to make sure the binary gets the most up to date versions of them, since the image itself would only include the version that was available when it was built correct?
_whitelogger has joined #crystal-lang
martinium has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
martinium has joined #crystal-lang
<FromGitter> <halfdan> How do I convert a String to a Pointer(UInt8)?
<FromGitter> <halfdan> pointerof() gives me a Pointer(String)
<FromGitter> <watzon> Are you trying to do that for a C library?
<FromGitter> <watzon> `to_unsafe` should do it though
<FromGitter> <halfdan> Yeah. ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ I have this signature and am trying to pass expression [https://gitter.im/crystal-lang/crystal?at=5e3fa894ecfa4461c04c2b3c]
<FromGitter> <watzon> https://crystal-lang.org/api/0.32.1/String.html#to_unsafe:Pointer(UInt8)-instance-method
<FromGitter> <halfdan> Ah perfect, I somehow missed that
martinium has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
return0e has joined #crystal-lang
return0e has quit [Ping timeout: 260 seconds]
<FromGitter> <c910335> How to create an empty NamedTuple as an instance variable?
<FromGitter> <c910335> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e3fb68fdf1153705e2428b0]
<FromGitter> <c910335> I have tried these but they all got failed
<FromGitter> <ezrast_gitlab> I'm not sure, but what's your use case?
<FromGitter> <c910335> I want to generate the NamedTuple by macro
<FromGitter> <c910335> But it fails if it is empty
<FromGitter> <grkek> Try avoiding named tuples
<FromGitter> <grkek> since they are a huge pain in the ass to maintain
<FromGitter> <c910335> By the way, it works fine if it is local variable or constant
<FromGitter> <grkek> It is a painful topic
<FromGitter> <grkek> which I experienced by myself
<FromGitter> <ezrast_gitlab> Ha, yeah me too
<FromGitter> <ezrast_gitlab> Type inference happens for class/instance variables in an earlier phase of compilation than locals, for technical reasons
<FromGitter> <grkek> Use hashes
<FromGitter> <grkek> fuzzy
<FromGitter> <grkek> warm
<FromGitter> <grkek> cuddly hashes
<FromGitter> <grkek> <3
<FromGitter> <ezrast_gitlab> Guessing that won't work here for type safety reasons
<FromGitter> <grkek> For type safety use reflection
<FromGitter> <c910335> Hash is slower though
<FromGitter> <grkek> But way better
<FromGitter> <grkek> does it really matter at this point ?
<FromGitter> <ezrast_gitlab> @c910335 You might be able to finagle something with a record instead of a named tuple: https://carc.in/#/r/8j68
<FromGitter> <grkek> Nice
return0e has joined #crystal-lang
<FromGitter> <grkek> If I take parts of code from other sources
<FromGitter> <grkek> should I still add them to the license ?
<FromGitter> <grkek> I think yes
<FromGitter> <grkek> right ?
<FromGitter> <grkek> https://github.com/grkek/iu
<FromGitter> <grkek> my stupid attempt at making an ui framework
<FromGitter> <j8r> @c910335 use records instead of NamedTuples
JuanMiguel has joined #crystal-lang
JuanMiguel has quit [Remote host closed the connection]
alex`` has quit [Ping timeout: 272 seconds]
alex`` has joined #crystal-lang
sorcus has quit [Quit: WeeChat 2.7]
sorcus has joined #crystal-lang
uu91 has quit [Remote host closed the connection]
<FromGitter> <j8r> nice, in an initial benchmark test it seems there is no huge performance regression. ⏎ For now my router is more efficient in about 20% than Kemal, but we can't take any conclusion since it is a micro-benchmark. Plus, there are a lot less features
_whitelogger has joined #crystal-lang
<FromGitter> <grkek> Nice
<FromGitter> <j8r> I just hope there is interest of having a router with swagger api docs support 😅
<FromGitter> <Daniel-Worrall> Whew, I was getting ssl issues on a minimal install, solved it by installing curl :^)
<FromGitter> <Daniel-Worrall> I'm not a devops guy
<FromGitter> <j8r> how does installing curl will solve the issue?\
<FromGitter> <Daniel-Worrall> it resolves local ssl certs during install
<FromGitter> <j8r> maybe it installs the ca certificates package too
<FromGitter> <j8r> ho ok, stange
<FromGitter> <Daniel-Worrall> ah, ca-certificates will be it
<FromGitter> <Daniel-Worrall> I only grabbed curl to try installing crystal
<FromGitter> <Daniel-Worrall> was confused cause I built statically
<FromGitter> <Daniel-Worrall> well I'm learning things every day
<FromGitter> <j8r> no need to install crystal if the binary is statically linked
<FromGitter> <j8r> the linkage is only supported on Alpine Linux though
<FromGitter> <Daniel-Worrall> yeah, I'm using the new official docker image for it
<FromGitter> <Daniel-Worrall> I didn't get to installing crystal anyway, had to install curl to get the install script so that helped me work out my issues
<FromGitter> <Daniel-Worrall> oddly enough, this minimal install has nano and not vim
<FromGitter> <Daniel-Worrall> yup, definitely the ca-certs
<FromGitter> <grkek> @j8r That is actually what I was making for grip
<FromGitter> <grkek> but then decided too much pain
<FromGitter> <grkek> to generate the swagger json :D
<FromGitter> <grkek> if you do that I might adapt it
<FromGitter> <grkek> that would be nice
<FromGitter> <grkek> Did some work on IU, it is slowly getting into shape
<FromGitter> <grkek> https://github.com/grkek/iu
<FromGitter> <j8r> I m using https://github.com/icyleaf/swagger @grkek
<FromGitter> <grkek> Same here
<FromGitter> <grkek> but I got stuck with how I would implement it :D
<FromGitter> <j8r> I thought at the very beginning to generate API docs, the design of my router make it not that hard :)
<FromGitter> <grkek> what project are we talking about again
<FromGitter> <grkek> is it public ?
<FromGitter> <j8r> I'm working on it, it will be public next week :)
<FromGitter> <j8r> not ready yet https://github.com/j8r/ricr
<FromGitter> <grkek> Is it a router ?
<FromGitter> <j8r> it's a minimal web framework with a custom router inside
<FromGitter> <grkek> have you seen grip ?
<FromGitter> <j8r> yes, quite quickly
<FromGitter> <grkek> I really like how the routing turned out
<FromGitter> <grkek> I feel so confident when using crystal it is unreal
<FromGitter> <grkek> I feel like I am dreaming :D
<FromGitter> <j8r> I got with: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e4018dbecfa4461c04d1667]
<FromGitter> <j8r> Quite funny, it is written "Super Simple" on the Grip README, above an example of 130 lines
<FromGitter> <j8r> one other issue I can this is using top level methods
<FromGitter> <j8r> it will pollute all objects, if we have any will to use this names as methods on a given object
<FromGitter> <btihen> @grkek - cool! `https://github.com/grkek/iu`
<FromGitter> <grkek> @bitmappergit thank you mate
<FromGitter> <grkek> @j8r it is funny
<FromGitter> <grkek> but I just wanted to display all the cool features
<FromGitter> <grkek> :D
<FromGitter> <grkek> I mean it might be long but at least it is easy
<FromGitter> <j8r> IMHO it will be better to have a very simple, basic example, and then eventually a longer, more complex one
<FromGitter> <grkek> Now tell me how is that example hard
<FromGitter> <grkek> 3 identical classes
<FromGitter> <grkek> and a 1 websocket class
<FromGitter> <grkek> displaying all the routes
<FromGitter> <grkek> you can get
<FromGitter> <grkek> and displaying the router abilities
<FromGitter> <grkek> plus the params and etc
<FromGitter> <j8r> the issue is not really because hard
<FromGitter> <j8r> but if we don't know anything about the project
<FromGitter> <j8r> we may think of having lot of boilerplating for just having a basic, simple server
<FromGitter> <grkek> When you are looking for an REST API framework you might have a basic understanding of what
<FromGitter> <grkek> get, post, put, update and routing is
<FromGitter> <grkek> right ?
<FromGitter> <grkek> I mean you can ignore other methods
<FromGitter> <grkek> can just put one
<FromGitter> <Daniel-Worrall> A readme isn't documentation
<FromGitter> <Daniel-Worrall> Wait, so you forked kemal and didn't even fix the global pollution?
<FromGitter> <Daniel-Worrall> Super Simple: 4 pages of text *close*
<FromGitter> <j8r> I mean, we even have to scroll to copy paste the simple example 😕
<FromGitter> <j8r> but this one would be good on a guide/documentation
<FromGitter> <Daniel-Worrall> ^
<FromGitter> <j8r> I agree with @Daniel-Worrall 👍
<FromGitter> <j8r> a way to avoid pollution and having a good DSL is using `with self yield`
<FromGitter> <grkek> Global pollution is not a concern rn but I might change the readme a bit :)
<FromGitter> <tenebrousedge> it's fair if it's not one of your concerns. It's clearly not the worst idea for a framework; lots of people do it. Personally I find it a bit obnoxious
<FromGitter> <grkek> Ill work on that mate
<FromGitter> <dscottboggs_gitlab> does the stdlib offer a timeout facility? I.E. only wait 30 seconds for user input and then just move on?
<FromGitter> <grkek> Fixed the global pollution for the IU framework @tenebrousedge thank you for the tip
<FromGitter> <grkek> Now I am going to work on grip
<FromGitter> <tenebrousedge> :plus1:
<FromGitter> <grkek> I didnt even know that was an issue :D sorry
<FromGitter> <grkek> if I upset you
<FromGitter> <tenebrousedge> oh, not at all
<FromGitter> <grkek> I am glad about that
<FromGitter> <dscottboggs_gitlab> uh, does `forall` not work anymore?
<FromGitter> <dscottboggs_gitlab> just for block arguments https://carc.in/#/r/8j85
<FromGitter> <dscottboggs_gitlab> well shit
<FromGitter> <grkek> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e402821d4daaa26c19243b6]
<FromGitter> <grkek> is that normal :D ?
<FromGitter> <grkek> @dscottboggs_gitlab that feature looks really old
<FromGitter> <grkek> might be removed
<FromGitter> <grkek> @Blacksmoke16 what do you think will that solve the pollution ?
<FromGitter> <grkek> ;)
<FromGitter> <dscottboggs_gitlab> I don't see why it would be removed, but I kinda need it for what I'm trying to do...
<FromGitter> <Blacksmoke16> Hm?
<FromGitter> <Blacksmoke16> Where are you including those modules tho?
<FromGitter> <Blacksmoke16> @dscottboggs_gitlab oh?
<FromGitter> <j8r> @dscottboggs_gitlab it didn't work on older versions too
<FromGitter> <grkek> @Blacksmoke16 its the example
<FromGitter> <j8r> Procs are special, this won't work
<FromGitter> <dscottboggs_gitlab> yeah I didn't think it got removed, I just didn't realize that it didn't work until I needed it
<FromGitter> <dscottboggs_gitlab> not sure there's an alternative in this case
<FromGitter> <j8r> it is `Proc(*T, R)` https://crystal-lang.org/api/master/Proc.html
<FromGitter> <j8r> procs are not very flexible
<FromGitter> <Blacksmoke16> Can you just type it as `Proc`
<FromGitter> <j8r> No
<FromGitter> <dscottboggs_gitlab> I need `T` to new up the `Channel(T)`
<FromGitter> <Blacksmoke16> And not care about the generic
<FromGitter> <Blacksmoke16> @grkek I mean are they included into another type or in the top level?
<FromGitter> <Blacksmoke16> Did you try it without t?
<FromGitter> <Blacksmoke16> Nvm
<FromGitter> <tenebrousedge> @dscottboggs_gitlab maybe do like `Timeout(Int32).new` ?
<FromGitter> <grkek> @Blacksmoke16 in the top level
<FromGitter> <dscottboggs_gitlab> ah, that would work.
<FromGitter> <Blacksmoke16> `typeof(block)`?
<FromGitter> <dscottboggs_gitlab> oooooh
<FromGitter> <dscottboggs_gitlab> I think that will work too!
<FromGitter> <tenebrousedge> o.o
<FromGitter> <grkek> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e402a84ecfa4461c04d3d3e]
<FromGitter> <grkek> looks normal to you @Blacksmoke16
<FromGitter> <grkek> ?
* FromGitter * tenebrousedge is attacked by a code block
<FromGitter> <Blacksmoke16> I think you can do a timeout in the select directly btw
<FromGitter> <grkek> @tenebrousedge how did you do that :o
<FromGitter> <j8r> > @tenebrousedge is attacked by a code block ⏎ ⏎ lol
<FromGitter> <tenebrousedge> "/me does an action"
* FromGitter * grkek WOAH
* FromGitter * grkek This is like skype
<FromGitter> <dscottboggs_gitlab> @Blacksmoke16 idk there's no documentation anywhere
<FromGitter> <grkek> @tenebrousedge does that fix the pollution what I did up there ?
<FromGitter> <tenebrousedge> rather, Skype and gitter are like IRC
<FromGitter> <grkek> ;)
<FromGitter> <dscottboggs_gitlab> gah `typeof(block)` is `Proc(T)` not `T` I'll have to go with the generic struct idea
<FromGitter> <tenebrousedge> @dscottboggs_gitlab or use a macro to snag the type
<FromGitter> <tenebrousedge> @grkek I'm not entirely sure what's going on in your code, but it's probably okay if the `get` and `post` methods can be included at the top level, just as long as they're not defined there
<FromGitter> <Blacksmoke16> the problem would require prob a redesign of the framework
<FromGitter> <Blacksmoke16> that example is more of just a bandaid
<FromGitter> <grkek> Hm you are right
<FromGitter> <grkek> It will require a redesign
<FromGitter> <Blacksmoke16> which at that point it's not really a kemal clone anymore ;p
<FromGitter> <grkek> For now I will just update the readme
<FromGitter> <Blacksmoke16> since you're using inheritance, couldnt you define them in that parent class?
<FromGitter> <grkek> You are right
<FromGitter> <grkek> But
<FromGitter> <grkek> you would still need the macros
<FromGitter> <grkek> to define routes
<FromGitter> <Blacksmoke16> you can make the macros private in the parent type
<FromGitter> <grkek> What do you mean ?
<FromGitter> <Blacksmoke16> would still be usable by children types
<FromGitter> <grkek> Yes but you would still need the global pollution at this point to define macros
<FromGitter> <grkek> without including a thing
<FromGitter> <Blacksmoke16> https://play.crystal-lang.org/#/r/8j8f
<FromGitter> <dscottboggs_gitlab> 🎉 https://github.com/dscottboggs/timeout
<FromGitter> <Daniel-Worrall> Grip.get
<FromGitter> <grkek> oh no that looks ugly @Daniel-Worrall
<FromGitter> <Daniel-Worrall> no, global pollution is ugly
<FromGitter> <grkek> I would rather implement a grip application
<FromGitter> <grkek> and then
<FromGitter> <grkek> make them define inside the application
<FromGitter> <grkek> yeah it needs a redesign
<FromGitter> <halfdan> In my lib (wrapping Hyperscan) I have: ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ I have a variable `error` of type `Pointer(HsCompileErrorT)`. How do I access message? The compiler crashes when I do `error.value.message`. ... [https://gitter.im/crystal-lang/crystal?at=5e402e88df1153705e252a3a]
<FromGitter> <grkek> @Blacksmoke16 that makes sense but i need the global pollution lmao
<FromGitter> <tenebrousedge> @dscottboggs_gitlab how do you feel about using macro magic to snag the proc type?
<FromGitter> <dscottboggs_gitlab> I thought the whole point of grip was to enclose the macros in classes so that your code would be more well-organized? If you're just `include Grip`-ing in the top level what's the advantage over kemal?
<FromGitter> <Blacksmoke16> @dscottboggs_gitlab https://crystal-lang.org/api/master/toplevel.html#timeout_select_action(timeout:Time::Span)-class-method its a `0.33.0` feature tho
<FromGitter> <dscottboggs_gitlab> @tenebrousedge not sure what you mean.
<FromGitter> <Daniel-Worrall> Is there a way to tell what the source address is in kemal or any other http server? I'm looking at the `Response#remote_address` but it's giving me my internal router ip. Not tested it on my remote host yet
<FromGitter> <dscottboggs_gitlab> @Blacksmoke16 oh come on
<FromGitter> <tenebrousedge> @dscottboggs_gitlab the type of the proc is known at compile time
<FromGitter> <dscottboggs_gitlab> wtf is that lol
<FromGitter> <grkek> @dscottboggs_gitlab Advantage over kemal is that you can turn everything into its own class
<FromGitter> <grkek> instead of dsl shilling
<FromGitter> <Blacksmoke16> to be fair you can already do that in kemal iirc
<FromGitter> <Blacksmoke16> ```class MyController ⏎ get "foo" do ⏎ "FOO" ⏎ end ⏎ end``` [https://gitter.im/crystal-lang/crystal?at=5e402f9145000661fcadf4ec]
<FromGitter> <dscottboggs_gitlab> also isn't that what you're doing by including it globally?
<FromGitter> <tenebrousedge> @halfdan can you do `error.message` ?
<FromGitter> <grkek> Hm it turns out I just cloned kemal and renamed it
<FromGitter> <straight-shoota> @dscottboggs_gitlab Why does your timeout library use a proc instead of yield?
<FromGitter> <grkek> hm
<FromGitter> <dscottboggs_gitlab> @straight-shoota spawn captures the block
<FromGitter> <grkek> I am going to redisgn the shit out of it >:)
<FromGitter> <Daniel-Worrall> Oh okay, it resolves properly when it's actually a remote address
<FromGitter> <grkek> @tenebrousedge https://github.com/grkek/grip/blob/master/README.md
<FromGitter> <grkek> looks better ? ;)
<FromGitter> <halfdan> @tenebrousedge Negative. ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ Is it because I do `type HsCompileErrorT = HsCompileError`? [https://gitter.im/crystal-lang/crystal?at=5e4030a6cd2d737bb069485e]
<FromGitter> <tenebrousedge> @halfdan maybe use extern (http://tw.crystal-lang.org/docs/syntax_and_semantics/attributes.html) ?
<FromGitter> <j8r> @dscottboggs_gitlab how does it relates to https://github.com/crystal-lang/crystal/pull/8506 ?
<FromGitter> <tenebrousedge> @halfdan no, it's because c structs are not the same thing as normal crystal structs
<FromGitter> <dscottboggs_gitlab> @j8r I didn't know about that and I'm going to archive my library with a link to that issue. Thanks for finding it for me! 😀
<FromGitter> <j8r> @dscottboggs_gitlab you're welcome 👌
<FromGitter> <halfdan> @tenebrousedge No dice. Same error
<FromGitter> <tenebrousedge> @halfdan did you declare the struct outside the `lib` section?
<FromGitter> <dscottboggs_gitlab> @halfdan does the same thing happen to a `Pointer(HSCompileError)`?
<FromGitter> <grkek> look at nim go
<FromGitter> <halfdan> @tenebrousedge I didn't, but if I do all of a sudden struct members collide. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e403419ecfa4461c04d5c12]
<FromGitter> <dscottboggs_gitlab> what the shit
<FromGitter> <dscottboggs_gitlab> way to find a zillion bugs haha
<FromGitter> <grkek> Oh rip
<FromGitter> <asterite> Please report as a bug, it should be easy to fix
<FromGitter> <halfdan> Will do
<FromGitter> <j8r> what do you prefer? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e403554d4daaa26c1926a77]
<FromGitter> <dscottboggs_gitlab> I like the slash delimiters for the path, but not the `| ->(context : Ricr::Context)` part. why is that there?
<FromGitter> <j8r> because can't otherwise
<FromGitter> <dscottboggs_gitlab> well shoot
<FromGitter> <j8r> not compatible with the tokens `/`, `&` etc
<FromGitter> <tenebrousedge> > src/meow.cr:8:5 ⏎ ⏎ 😸
return0e has quit []
return0e_ has joined #crystal-lang
<FromGitter> <halfdan> Heh, not gonna waste time trying to name a temporary script :)
<FromGitter> <halfdan> Also created https://github.com/crystal-lang/crystal/issues/8774
<FromGitter> <tenebrousedge> there's a lot of files on my system named `meow.cr` 😸
* FromGitter * Daniel-Worrall concern
return0e_ has quit [Ping timeout: 272 seconds]
* FromGitter * grkek Oh
<FromGitter> <Daniel-Worrall> Is `HTTP::Request#remote_address` guaranteed to be in format `ip:port` if no middlewares are involved?
<FromGitter> <tenebrousedge> that's what `HTTP::Server` does
<FromGitter> <Daniel-Worrall> ye
<FromGitter> <Daniel-Worrall> it's just mentioning it's not guaranteed to be in that format
<FromGitter> <Daniel-Worrall> Wondering if that's just a middleware symptom or something I need to handle otherwise
<FromGitter> <halfdan> Is the crystal compiler self hosted?
<FromGitter> <Daniel-Worrall> yes
<FromGitter> <Daniel-Worrall> Okay
<FromGitter> <Daniel-Worrall> So don't load a 60MB file into an IO::Memory
<FromGitter> <Daniel-Worrall> It was fine with the 3MB, so I thought... hey why not
<FromGitter> <dscottboggs_gitlab> why would you do that lol
<FromGitter> <Daniel-Worrall> To package a file within the binary
<FromGitter> <dscottboggs_gitlab> Hm? I'm asking why you would load it into memory instead of just using the `File` object itself and streaming it. What's the point in loading a `File` into `IO::Memory` when they are both `IO`?
<FromGitter> <Daniel-Worrall> In essence, the lib I'm using would handle it normally as a file, or it'd take Bytes/IO:Mem, and I wanted to package the file in the binary with the `read_file` macro
<FromGitter> <dscottboggs_gitlab> oooh
<FromGitter> <dscottboggs_gitlab> so what went wrong?
<FromGitter> <Daniel-Worrall> stack overflow
<FromGitter> <Daniel-Worrall> and a lot of console spam
<FromGitter> <dscottboggs_gitlab> oh
<FromGitter> <dscottboggs_gitlab> you need to put it on the heap instead
<FromGitter> <Daniel-Worrall> enough to halt my console
<FromGitter> <Daniel-Worrall> yeah
<FromGitter> <Daniel-Worrall> I'll just read it as a file
<FromGitter> <dscottboggs_gitlab> yeah I don't think that can work in a macro :/
<FromGitter> <Daniel-Worrall> that's fine, it was an effort in laziness tbh
<FromGitter> <Daniel-Worrall> Less files to manage in shippig
<FromGitter> <Daniel-Worrall> shipping
<FromGitter> <dscottboggs_gitlab> fair
<FromGitter> <Daniel-Worrall> Aww yee, got my GeoIP working
ua has quit [Ping timeout: 265 seconds]
<FromGitter> <dscottboggs_gitlab> cool!
<FromGitter> <dscottboggs_gitlab> crap apparently I was a little premature in archiving my shard https://github.com/crystal-lang/crystal/milestone/40
<FromGitter> <Daniel-Worrall> hm?
<FromGitter> <dscottboggs_gitlab> it hasn't been merged yet.
return0e has joined #crystal-lang
<FromGitter> <j8r> *the release PR
<FromGitter> <ImAHopelessDev_gitlab> #2 easily. #1 doesn't even look liek valid syntax
<FromGitter> <Daniel-Worrall> Been making a timezone aware rss feed
<FromGitter> <Daniel-Worrall> It's finally coming together
<FromGitter> <j8r> @ImAHopelessDev_gitlab both compiles
<FromGitter> <dscottboggs_gitlab> hooray for crazy operator overloading!
<FromGitter> <ImAHopelessDev_gitlab> `get / "users" / UserID / "information" & Height` this compiles?
<FromGitter> <j8r> yes, `get` creates an object, which implements `#/` and `#&`
<FromGitter> <dscottboggs_gitlab> `get` returns something which responds to `#/()` and `#&()` operator/methods
<FromGitter> <j8r> I stick with `#2`, since it is more explicit when adding metadata (supports kwargs), easier to implement
<FromGitter> <dscottboggs_gitlab> It was a cool example of really interesting DLS syntax, thanks for sharing
<FromGitter> <j8r> thanks, yes it was worth trying.
<FromGitter> <j8r> I will release my router / web framework I hope in the following weeks
ua has joined #crystal-lang
<FromGitter> <ImAHopelessDev_gitlab> @grkek how is javascript beating c
<FromGitter> <dscottboggs_gitlab> Node has a crazy-good JIT
<FromGitter> <dscottboggs_gitlab> C's API is tough to use? idk
<FromGitter> <dscottboggs_gitlab> that is really impressive no matter what
<FromGitter> <ImAHopelessDev_gitlab> php ahead of crystal???
<FromGitter> <ImAHopelessDev_gitlab> something smells fishy with these benchmarks
<FromGitter> <ImAHopelessDev_gitlab> look here https://github.com/the-benchmarker/web-frameworks
<FromGitter> <tenebrousedge> PHP is one of the faster scripting languages right now. It's not too far from C performance
return0e has quit [Ping timeout: 240 seconds]
<FromGitter> <dscottboggs_gitlab> I think I read it makes heavy use of C bindings these days to acheive that.
<FromGitter> <tenebrousedge> it's a stupid-simple language too, so that helps
<FromGitter> <ImAHopelessDev_gitlab> nim is #1 in that benchmark because of multithreading right
<FromGitter> <ImAHopelessDev_gitlab> they have @async syntax, basically mt's your code
<FromGitter> <dscottboggs_gitlab> go has that too, with different syntax.
<FromGitter> <dscottboggs_gitlab> green threads and whatnot
<FromGitter> <ImAHopelessDev_gitlab> nim almost double go's
<FromGitter> <ImAHopelessDev_gitlab> that's crazy
<FromGitter> <dscottboggs_gitlab> probably does give it a bump
<FromGitter> <ImAHopelessDev_gitlab> err. 200 more, not double. didn't see #2
<FromGitter> <ImAHopelessDev_gitlab> #3
<FromGitter> <ImAHopelessDev_gitlab> fack benchmarks though, depressing af
<FromGitter> <dscottboggs_gitlab> in what way?
<FromGitter> <ImAHopelessDev_gitlab> i am not moving away from crystal cause of this
<FromGitter> <ImAHopelessDev_gitlab> colossal waste of time and energy to re-write everything
<FromGitter> <ImAHopelessDev_gitlab> and most importantly, learning a language. why throw it all away. i'm happy with crystal, and i'm happy i moved from javascript
<FromGitter> <dscottboggs_gitlab> I'd write Crystal over Go any day, even if its twice as fast. The Go router that I've used before (gorilla/mux) is way slower than Kemal and Amber
<FromGitter> <dscottboggs_gitlab> but I might try Nim because I saw this
<FromGitter> <dscottboggs_gitlab> and I might try microexpress next time I need to write a webserver for work (I don't even try to bring up languages like Crystal or Nim at work, maybe someday 😅 )
<FromGitter> <dscottboggs_gitlab> > why throw it all away ⏎ ⏎ what do you mean? You don't lose the ability to write one language because you learned another.
<FromGitter> <dscottboggs_gitlab> good to see you btw girng it's been awhile
<FromGitter> <ImAHopelessDev_gitlab> ofc you do
<FromGitter> <ImAHopelessDev_gitlab> all the time you helped me, and others just all gone
<FromGitter> <ImAHopelessDev_gitlab> doesn't make sense
<FromGitter> <dscottboggs_gitlab> well, it's not gone, it's just dusty. If you went back to JS it would take you less time to learn it this time around.
<FromGitter> <dscottboggs_gitlab> I just kept switching back and forth a bunch of times and eventually I got more than one to click at once.
<FromGitter> <ImAHopelessDev_gitlab> the reason i switched from js to crystal cause of the websockets benchmarks and just fed up with async/callback hell. now, if i see benchmarks of javascript above crystal it's depressing af. but to be fair to myself, that benchmark seems a little fishy, cause the websocket benchmark i saw from sdrol, blew js out of the water. ⏎ ⏎ i don't know why i find looking at benchmarks depressing, but
<FromGitter> ... i do. i don't like that urge or feeling to learn a new language. in fact, i'm quite sick of it. because it means i have to re-write my gameserver/hobby projects all over again, which is a waste of time. now.. if it's for a job or a new project, or just wanting to learn a new language, then yeah i could see it as being fun
<FromGitter> <Blacksmoke16> benchmarks dont really mean much
<FromGitter> <Blacksmoke16> as they arent testing actual applications, plus the chances of needing 800k requests/sec is quite low
<FromGitter> <j8r> a language it is not all about performance, other aspect are equally or even more important
<FromGitter> <dscottboggs_gitlab> > other aspects are equally or even more important ⏎ ⏎ ☝️
<FromGitter> <tenebrousedge> assembly language is super fast, yet for some reason people don't write many applications in asm
<FromGitter> <j8r> at the end, for micro services, performance/memory consumption are mainly to reduce costs, by having to scale later on
<FromGitter> <j8r> @tenebrousedge haha right 👍
<FromGitter> <ImAHopelessDev_gitlab> i become emotionally attached to languages. just like how some people feel funny if they mispronounce a word out loud for the first time. or, how some people are introverts and just not social. ⏎ now, these concepts/abstractions don't really exist in a programming language since its *code* and not a speaking language, however, the level of emotional attachment is still there. just in different
<FromGitter> ... ways
<FromGitter> <j8r> and we have to be very very good to write fast ASM
<FromGitter> <ImAHopelessDev_gitlab> thus, learning / re-writing a project with a new language feels very daunting and emotionally draining. not something i want to put myself through. now, if it's for a new project, or just for fun, then yeah i'll give it a try
<FromGitter> <Blacksmoke16> rewriting is the fun part :p
<FromGitter> <Blacksmoke16> usually results in better implementation as you can apply your learnings from the initial implementation
<FromGitter> <ImAHopelessDev_gitlab> that happened a couple times when i re-wrote some functions from js to crystal
<FromGitter> <Blacksmoke16> the harder part of learning a language isnt the syntax. its more so learning the best practices/features
<FromGitter> <ImAHopelessDev_gitlab> now that i think of it, i've looked back at some code from when i first started crystal and changed some up cause it was weird. one example was i was doing `Random.new.rand` i nstead of just rand
<FromGitter> <ImAHopelessDev_gitlab> that's just off the top of my head, there were others much more complex / doing it so bad
<FromGitter> <Blacksmoke16> to be fair thats still essentially what `rand` doess :S
<FromGitter> <ImAHopelessDev_gitlab> eh, for me it's the syntax
<FromGitter> <ImAHopelessDev_gitlab> syntax is the most daunting
<FromGitter> <ImAHopelessDev_gitlab> look at rust for crying out loud
<FromGitter> <Blacksmoke16> a bigger issue for you is CSVs and tuples 😉
<FromGitter> <ImAHopelessDev_gitlab> :D
<FromGitter> <Blacksmoke16> versus JSON and structs
<FromGitter> <grkek> Rewriting grip entirely
<FromGitter> <grkek> > .>
<FromGitter> <grkek> > >.>
<FromGitter> <grkek> > . >. >. >. >. >. >. >. >.
<FromGitter> <grkek> hehe
<FromGitter> <grkek> > > > > > > > > >
<FromGitter> <grkek> damn
<FromGitter> <Blacksmoke16> 🎊?
<FromGitter> <grkek> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
<FromGitter> <grkek> > > > > >
<FromGitter> <grkek> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
<FromGitter> <grkek> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
<FromGitter> <grkek> did I just crash the gitter
<FromGitter> <grkek> lmao
<FromGitter> <ImAHopelessDev_gitlab> what is going on
<FromGitter> <grkek> I can write
<FromGitter> <grkek> invisible messages
<FromGitter> <grkek> > > > > >
<FromGitter> <grkek> > > > > >
<FromGitter> <grkek> > > > > >
<FromGitter> <grkek> > > > > >
<FromGitter> <grkek> > > > > >
<FromGitter> <dscottboggs_gitlab> wtf
<FromGitter> <grkek> > > > > > 1
<FromGitter> <grkek> `> > > > > `
<FromGitter> <grkek> just use these
<FromGitter> <ImAHopelessDev_gitlab> i see white spaces and quote css style
<FromGitter> <grkek> > > > > >
<FromGitter> <Blacksmoke16> yea can we not do this
<FromGitter> <grkek> >
<FromGitter> <grkek> > >
<FromGitter> <grkek> > >
<FromGitter> <grkek> Okay
<FromGitter> <Blacksmoke16> 😐
<FromGitter> <grkek> Sorry :D
<FromGitter> <halfdan> Are there any docs on how to get started with the compiler? Might as well try and fix those bugs myself
<FromGitter> <Blacksmoke16> gl :P
<FromGitter> <Daniel-Worrall> There's a blog post from a few years back that's still relevant
<FromGitter> <Daniel-Worrall> Request: Time::Span#positive?
<FromGitter> <Blacksmoke16> `.future?` would prob make more sense?
<FromGitter> <halfdan> Fantastic. I'll dive in tomorrow and see how far I get :)
<FromGitter> <Daniel-Worrall> probably
return0e has joined #crystal-lang
HumanG33k has joined #crystal-lang
<FromGitter> <tenebrousedge> okay, whoever is doing a snow dance needs to knock it off >_____<
return0e_ has joined #crystal-lang
return0e_ has quit [Client Quit]
<FromGitter> <eliasjpr> I have been trying to run a program como liked with docker crystal alpine image and I keep getting an error about I need glibc 2.29. Can anyone help me figure this out?
<FromGitter> <eliasjpr> Compiled*
<FromGitter> <eliasjpr> I have been trying to run a program compiled with docker crystal alpine image and I keep getting an error about I need glibc 2.29. Can anyone help me figure this out?
<FromGitter> <Blacksmoke16> whats the command you're running
<FromGitter> <eliasjpr> Shards build target
<FromGitter> <eliasjpr> Inside docker
<FromGitter> <eliasjpr> With —production flag
<FromGitter> <eliasjpr> The local machine is ubuntu 19.19
<FromGitter> <eliasjpr> 1) 10
<FromGitter> <Blacksmoke16> using the official crystal image?
<FromGitter> <eliasjpr> Yes
<FromGitter> <eliasjpr> Latest and alpine versions
<FromGitter> <eliasjpr> I might have to upgrade my docker version
<FromGitter> <Blacksmoke16> hm
<FromGitter> <eliasjpr> Since I think have the apt package version
return0e has quit []
return0e_ has joined #crystal-lang
<FromGitter> <eliasjpr> I think that shouldn’t matter
<FromGitter> <Blacksmoke16> can you share the command/error?
ur5us has joined #crystal-lang
ur5us has quit [Read error: Connection reset by peer]
<FromGitter> <dscottboggs_gitlab> I use `crystal build --static` and `jrei/crystal-alpine` image when building statically
<FromGitter> <Blacksmoke16> `shards build --production --static --no-debug` works fine for me
<FromGitter> <Blacksmoke16> with the official image
<FromGitter> <Daniel-Worrall> I use `docker run --rm -it -v $(pwd):/app -w /app jrei/crystal-alpine:0.32.1 crystal build --static --release src/app.cr`
<FromGitter> <Daniel-Worrall> oops, wrong tag
<FromGitter> <Daniel-Worrall> `docker run --rm -it -v ${pwd}:/app -w /app crystallang/crystal:0.32.1-alpine-build crystal build --static --release src/app.cr`
<FromGitter> <Blacksmoke16> prob dont need the `-build` one, only need that for building the compiler
<FromGitter> <eliasjpr> I’ll try with those images
ur5us has joined #crystal-lang
<FromGitter> <Daniel-Worrall> oh, huh
<FromGitter> <Daniel-Worrall> top one doesn't exist cause he jrei didn't tag 0.32
<FromGitter> <Daniel-Worrall> stopped at 0.31 iirc
<FromGitter> <Daniel-Worrall> 1) 31.1 that is
<FromGitter> <eliasjpr> Daniel so you don’t use a dockerfile just simply the docker image to compile statically
<FromGitter> <Daniel-Worrall> correct
<FromGitter> <eliasjpr> I want to deploy with Kubernetes
<FromGitter> <Daniel-Worrall> What dockerfile are you using
<FromGitter> <eliasjpr> I guess I can copy the program into a docker image
<FromGitter> <eliasjpr> I created one
<FromGitter> <Daniel-Worrall> can you provide it?
<FromGitter> <eliasjpr> Will do in a little while
<FromGitter> <eliasjpr> The dockerfile is super simple
<FromGitter> <Daniel-Worrall> Huh, I thought Int had a #positive method
<FromGitter> <eliasjpr> It points to the crystal official image copied the src files and the shard.yaml
<FromGitter> <eliasjpr> Then runs the build inside
<FromGitter> <Blacksmoke16> official alpine imagine i assume?
<FromGitter> <Daniel-Worrall> it's still worth verifying
<FromGitter> <eliasjpr> I tried both alpine
<FromGitter> <eliasjpr> And ubuntu
<FromGitter> <Blacksmoke16> it would have to be alpine
<FromGitter> <Blacksmoke16> if you want static linked
<FromGitter> <Blacksmoke16> however if the end goal here is just to get a static binary you dont need a whole Dockerfile
<FromGitter> <Blacksmoke16> @Daniel-Worrall https://github.com/crystal-lang/crystal/pull/7917
<FromGitter> <Daniel-Worrall> aww
<FromGitter> <Daniel-Worrall> I think positive? is idiomatic
<FromGitter> <Daniel-Worrall> oh well
<FromGitter> <eliasjpr> I need the docker image to deploy with kubernetes
<FromGitter> <Blacksmoke16> could do a two stage build then, build static binary and just copy that into a scratch image or whatever
<FromGitter> <Blacksmoke16> or plain alpine + other deps if any
<FromGitter> <eliasjpr> That’s what I’m thinking of doing
<FromGitter> <eliasjpr> Hopefully it will run fine
chachasmooth_ has quit [Quit: Quit]
chachasmooth has joined #crystal-lang
<FromGitter> <eliasjpr> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e40688137545d247d2c73d6]
<FromGitter> <Blacksmoke16> Need to use the Alpine imagine
<FromGitter> <Blacksmoke16> Image
<FromGitter> <eliasjpr> I did
<FromGitter> <eliasjpr> I can try again
<FromGitter> <Blacksmoke16> Oh, but preview Mt mode won't work
<FromGitter> <eliasjpr> ahh yeah let me remove that
<FromGitter> <eliasjpr> I was testing locally
<FromGitter> <eliasjpr> maybe thats the issue
<FromGitter> <Daniel-Worrall> Elias, running rm -rf on a separate run won't reduce the image size, all the files will be in the previous layers
<FromGitter> <Daniel-Worrall> It'll only save space on image size if it's all done on the same run
<FromGitter> <eliasjpr> Got it
<FromGitter> <grkek> Finally rewrote the grip framework
<FromGitter> <grkek> god damn
<FromGitter> <Blacksmoke16> :thinking: that was quick
<FromGitter> <grkek> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e4072ee37545d247d2c8889]
<FromGitter> <grkek> it looks something like that
<FromGitter> <grkek> No pollution
<FromGitter> <grkek> self contained
<FromGitter> <Blacksmoke16> not too shabby
<FromGitter> <Blacksmoke16> i assume you can have multiple applications that each handle their own set of actions?
<FromGitter> <grkek> probably
<FromGitter> <grkek> the routers aren't singletons anymore
<FromGitter> <grkek> the config is a singleton
<FromGitter> <grkek> so basically ill have to change up somethings for the config
<FromGitter> <grkek> the design of it is flawed
<FromGitter> <grkek> hm
<FromGitter> <btihen> @tenebrousedge - send the snow to us - we are having a low snow year :( not so good for skiing
jrayhawk has quit [*.net *.split]
coderobe has quit [*.net *.split]
Vexatos has quit [*.net *.split]
badeball_ has quit [*.net *.split]
wmoxam has quit [*.net *.split]
ancorgs has quit [*.net *.split]
jrayhawk has joined #crystal-lang
badeball_ has joined #crystal-lang
ancorgs has joined #crystal-lang
wmoxam has joined #crystal-lang
Vexatos has joined #crystal-lang
Vexatos has quit [Remote host closed the connection]
coderobe has joined #crystal-lang
woodruffw has quit [Ping timeout: 240 seconds]
baweaver has quit [Ping timeout: 240 seconds]
Vexatos has joined #crystal-lang
Vexatos has quit [*.net *.split]
coderobe has quit [*.net *.split]
_ht has quit [*.net *.split]
lunarkitty has quit [*.net *.split]
melthelesbian has quit [*.net *.split]
Seich has quit [*.net *.split]
dannyAAM has quit [*.net *.split]
fifr[m] has quit [*.net *.split]
erdnaxeli has quit [*.net *.split]
jhass has quit [*.net *.split]
asterite has quit [*.net *.split]
woodruffw has joined #crystal-lang
_ht has joined #crystal-lang
jhass has joined #crystal-lang
asterite has joined #crystal-lang
Vexatos has joined #crystal-lang
coderobe has joined #crystal-lang
erdnaxeli has joined #crystal-lang
fifr[m] has joined #crystal-lang
lunarkitty has joined #crystal-lang
Seich has joined #crystal-lang
dannyAAM has joined #crystal-lang
melthelesbian has joined #crystal-lang
badeball_ has quit [Ping timeout: 268 seconds]
chachasmooth has quit [*.net *.split]
HumanG33k has quit [*.net *.split]
alex`` has quit [*.net *.split]
Andriamanitra has quit [*.net *.split]
confact has quit [*.net *.split]
MasterdonX has quit [*.net *.split]
alex`` has joined #crystal-lang
chachasmooth has joined #crystal-lang
MasterdonX has joined #crystal-lang
HumanG33k has joined #crystal-lang
confact has joined #crystal-lang
Andriamanitra has joined #crystal-lang
beepdog has quit [*.net *.split]
Stephie has quit [*.net *.split]
fifr has quit [*.net *.split]
oprypin has quit [*.net *.split]
oprypin has joined #crystal-lang
erdnaxeli has quit [Ping timeout: 270 seconds]
olbat[m] has quit [Ping timeout: 256 seconds]
fifr[m] has quit [Ping timeout: 248 seconds]
fifr has joined #crystal-lang
bazaar has quit [*.net *.split]
olbat has quit [*.net *.split]
Liothen has quit [*.net *.split]
blackbeard420 has quit [*.net *.split]
issyl0 has quit [*.net *.split]
oz has quit [*.net *.split]
raz has quit [*.net *.split]
bougyman has quit [*.net *.split]
snapcase has quit [*.net *.split]
Flipez has quit [*.net *.split]
edr has quit [*.net *.split]
dom96 has quit [*.net *.split]
Xeago has quit [*.net *.split]
livcd has quit [*.net *.split]
adam12 has quit [*.net *.split]
Nekka has quit [*.net *.split]
oz has joined #crystal-lang
snapcase has joined #crystal-lang
bougyman has joined #crystal-lang
Liothen has joined #crystal-lang
raz has joined #crystal-lang
blackbeard420 has joined #crystal-lang
issyl0 has joined #crystal-lang
Liothen has quit [Max SendQ exceeded]
woodruffw has quit [*.net *.split]
Groogy has quit [*.net *.split]
sagax has quit [*.net *.split]
DTZUZU has quit [*.net *.split]
repo has quit [*.net *.split]
twistedpixels has quit [*.net *.split]
olbat has joined #crystal-lang
bazaar has joined #crystal-lang
edr has joined #crystal-lang
Flipez has joined #crystal-lang
dom96 has joined #crystal-lang
Xeago has joined #crystal-lang
adam12 has joined #crystal-lang
Nekka has joined #crystal-lang
livcd has joined #crystal-lang
return0e_ has quit [*.net *.split]
lvmbdv has quit [*.net *.split]
commavir has quit [*.net *.split]
go|dfish has quit [*.net *.split]
ancorgs has quit [Ping timeout: 270 seconds]
commavir has joined #crystal-lang
lvmbdv has joined #crystal-lang
go|dfish has joined #crystal-lang
return0e_ has joined #crystal-lang
DeBot has quit [*.net *.split]
antoszka has quit [*.net *.split]
f1refly has quit [*.net *.split]
dostoyevsky has quit [*.net *.split]
hpyc9 has quit [*.net *.split]
OvermindDL1 has quit [*.net *.split]
maxpowa has quit [*.net *.split]
daemonwrangler has quit [*.net *.split]
justinmcp_ has quit [*.net *.split]
woodruffw has joined #crystal-lang
twistedpixels has joined #crystal-lang
repo has joined #crystal-lang
sagax has joined #crystal-lang
DTZUZU has joined #crystal-lang
Groogy has joined #crystal-lang
DTZUZU has quit [Max SendQ exceeded]
DeBot has joined #crystal-lang
antoszka has joined #crystal-lang
f1refly has joined #crystal-lang
daemonwrangler has joined #crystal-lang
hpyc9 has joined #crystal-lang
maxpowa has joined #crystal-lang
dostoyevsky has joined #crystal-lang
OvermindDL1 has joined #crystal-lang
justinmcp_ has joined #crystal-lang
dostoyevsky has quit [Max SendQ exceeded]
DTZUZU2 has joined #crystal-lang
dostoyevsky has joined #crystal-lang
Stephie has joined #crystal-lang
jetpack_joe has quit [Ping timeout: 240 seconds]
OvermindDL1 has quit [Ping timeout: 245 seconds]
jetpack_joe has joined #crystal-lang
OvermindDL1 has joined #crystal-lang
Liothen has joined #crystal-lang
alex`` has quit [Quit: WeeChat 2.7]
alex` has joined #crystal-lang
alex` is now known as Guest65381
Guest65381 is now known as alex``
<FromGitter> <grkek> Switched the config from a singleton to a non single ton
Human_G33k has joined #crystal-lang
HumanG33k has quit [Ping timeout: 272 seconds]
<FromGitter> <grkek> Might just keep it a wip
<FromGitter> <grkek> for now
<FromGitter> <grkek> :D
dostoyevsky has quit [Quit: leaving]
dostoyevsky has joined #crystal-lang
Groogy has quit [Quit: WeeChat 2.7]
<FromGitter> <grkek> Also guys if anyone hasn't seen it yet
<FromGitter> <grkek> https://github.com/grkek/iu
<FromGitter> <grkek> check this horrible
<FromGitter> <grkek> garbage of a software out
<FromGitter> <grkek> which makes literally zero sense
<FromGitter> <grkek> thank you
<FromGitter> <grkek> Ill go sleep now
<FromGitter> <grkek> good night
<FromGitter> <grkek> the ? gives me Nil compilation error flashbacks
<FromGitter> <grkek> thank you crystal
<sorcus> grkek: :-)
ur5us has quit [Ping timeout: 240 seconds]
ur5us has joined #crystal-lang