faustinoaq changed the topic of #amber to: Welcome to Amber Framework community! | https://amberframework.org | Developer happiness, productivity and bare metal performance | GH: https://github.com/amberframework | Docs: https://docs.amberframework.org | Gitter: https://gitter.im/amberframework/amber | IRC Logger: https://irclog.whitequark.org/amber | Amber::Server.start
<FromGitter> <anamba> @Blacksmoke16 ⏎ ⏎ > hows that going? ⏎ ⏎ was that one for me? if so... i was a CS major, but I never really "got" functional programming in college. now, after a couple decades of OO, it's finally making sense. no global state + everything being immutable does make it easier to hold everything in your mind as you work while also eliminating entire categories of silly mistakes. I like how much the erlang VM
<FromGitter> ... does for you in terms of concurrency and scheduling. obviously the raw performance can't touch crystal, but since I primarily build web apps, this is not a huge deal for me. the nerves project is also interesting as I'd like to get into embedded systems. [https://gitter.im/amberframework/amber?at=5d8c11cda929c26bf4cad1ca]
<FromGitter> <Blacksmoke16> im not familiar with it either, I imagine it takes a big shift in thought?
<FromGitter> <anamba> indeed. but once i got the hang of it i got very productive very quickly
<FromGitter> <anamba> great resources out there these days. started with pragprog books and then codewars was very helpful to see how other people do things
<FromGitter> <anamba> one thing i did notice is that incremental compilation makes a huge difference in my workflow. i am not sure that is going to be possible in crystal, but near-instant compilation for small changes makes life wonderful
<FromGitter> <anamba> so anyhow, i still have two large amber-based projects that i maintain (one internal, one not quite released yet, so can't show them) and thus i will continue to maintain the shards i created along the way, but it does seem like elixir is the way forward for me.
<FromGitter> <Blacksmoke16> 😢
<FromGitter> <Blacksmoke16> right tool for the right job tbh
<FromGitter> <Blacksmoke16> and crystal isnt the right tool for everything
<FromGitter> <anamba> yep. and definitely elixir isn't the right tool for a lot of things either. you gotta boot up a whole erlang VM to do anything
<FromGitter> <Blacksmoke16> my best use case for crystal is REST APIs
<FromGitter> <Blacksmoke16> they can be kinda isolated and power all sorts of other stuff
<FromGitter> <anamba> currently juggling crystal, ruby, javascript, elixir. i have a couple projects that combine 3 of those
<FromGitter> <Blacksmoke16> binary and docker makes it easy to deploy/manage as well
<FromGitter> <anamba> js for everything was a promising idea except that... js is so weird
<FromGitter> <Blacksmoke16> TS is pretty nice
<FromGitter> <anamba> i guess i haven't tried writing TS myself, that could solve some of the weirdness
<FromGitter> <Blacksmoke16> im a big fan
<FromGitter> <Blacksmoke16> makes it feel a bit more crystal like imo
<FromGitter> <Blacksmoke16> adds that type safeish feel to it
<FromGitter> <anamba> now that i kinda get functional programming i've been looking at elm. but haven't dived in yet
<FromGitter> <tflem> Is there a way to write JavaScript or tip toe into the JS ecosystem and maintain sanity? I've never had hatred for the language overall, but node, angular, react, etc. and all the dependencies are just a turn off or me.
<FromGitter> <anamba> @tflem almost no stdlib -> "all the dependencies"
<FromGitter> <anamba> one of the things i always liked about ruby and crystal. very healthy amount of built-in functionality greatly reduces dependencies
<FromGitter> <tflem> That's pretty much what I meant lol, no standard library.
<FromGitter> <anamba> ```code paste, see link``` [https://gitter.im/amberframework/amber?at=5d8c1b3a34a7236bf5c047b5]
<FromGitter> <anamba> SIGH
<FromGitter> <tflem> Yep, that in a nutshell.
<FromGitter> <anamba> terrible but unavoidable
feepbot has quit [Ping timeout: 245 seconds]
feepbot has joined #amber
feepbot has quit [Ping timeout: 240 seconds]
feepbot has joined #amber
<FromGitter> <nsuchy> ```code paste, see link``` [https://gitter.im/amberframework/amber?at=5d8d178fdeb6da63d7b262f5]
<FromGitter> <nsuchy> Any idea on what's going on with granite?
<FromGitter> <Blacksmoke16> moment
<FromGitter> <Blacksmoke16> what causes this?
<FromGitter> <nsuchy> running amber watch
<FromGitter> <Blacksmoke16> its a bug
<FromGitter> <Blacksmoke16> can you file it?
<FromGitter> <nsuchy> What do I say?
<FromGitter> <Blacksmoke16> basically that `Granite::Adapter::Base#select` params argument is not restricted to an array
<FromGitter> <Blacksmoke16> which allows scalar values thru
<FromGitter> <Blacksmoke16> which fails since the value of `args:` is expected to be an Array
<FromGitter> <nsuchy> Would it help to know 0.30.1 Crystal is where I'm encounting it
<FromGitter> <nsuchy> my mac isn't running 0.31.0 because of the Amber issues
<FromGitter> <Blacksmoke16> would be more interested in what granite/crystal-db version its with
<FromGitter> <Blacksmoke16> would have that CI would have caught that, ill have to look when i get home if i can reproduce it locally
<FromGitter> <Blacksmoke16> 👍 i dont suppose you could narrow down what query you're making is causing it?
<FromGitter> <nsuchy> no query is being made
<FromGitter> <nsuchy> this is happening as the program compiles
<FromGitter> <Blacksmoke16> but you're not doing like `User.find user_id` anywhere?
<FromGitter> <nsuchy> current_user = context.current_user
<FromGitter> <nsuchy> The session create logic is ⏎ ⏎ ```code paste, see link``` [https://gitter.im/amberframework/amber?at=5d8d19f7d97d8e3549b90dd1]
<FromGitter> <Blacksmoke16> does it compile if you comment out `user = BlestaUser.find_by(username: params["username"].to_s)`
<FromGitter> <Blacksmoke16> like ⏎ ⏎ `````` [https://gitter.im/amberframework/amber?at=5d8d1a2524509b6046621449]
<FromGitter> <Blacksmoke16> like ⏎ ⏎ ```# user = BlestaUser.find_by(username: params["username"].to_s) ⏎ exit ⏎ ````` [https://gitter.im/amberframework/amber?at=5d8d1a2fc45b6e14e6cfe7a5]
<FromGitter> <nsuchy> Even if it did, we can't disable signins over a framework bug
<FromGitter> <Blacksmoke16> ofc not, but if you're able to compile it with that commented out that tells me the issue is with `find_by`
<FromGitter> <nsuchy> there are a huge amount of find_by queries in my app
<FromGitter> <nsuchy> it's not limited to current user
<FromGitter> <Blacksmoke16> ok
<FromGitter> <nsuchy> Several database tables are refered per page for different information so it's not as simple as commenting out one query
<FromGitter> <Blacksmoke16> im not sure what to do then, CI passes on latest crystal on master
<FromGitter> <nsuchy> i can update crystal
<FromGitter> <Blacksmoke16> let me see if i can downgrade
<FromGitter> <nsuchy> i really wish there was more coordination between the Crystal Team and Amber Team
<FromGitter> <nsuchy> So breaking changes don't break all sorts of apps every month
<FromGitter> <Blacksmoke16> im trying it now with `0.30.1`
<FromGitter> <Blacksmoke16> what could they do differently?
<FromGitter> <Blacksmoke16> does amber CI run against nightly?
<FromGitter> <nsuchy> I don't know
<FromGitter> <Blacksmoke16> if not doing that would be a good indication that something coming up would break amber and give people time to fix it
<FromGitter> <nsuchy> I really want to see Amber and Crystal get adopted by other businesses but that won't happen until there's some stability in the releases processes :\
<FromGitter> <Blacksmoke16> thats more of crystal itself having breaking changes most releases
<FromGitter> <Blacksmoke16> i.e. its not 1.0.0
<FromGitter> <Blacksmoke16> CI on granite passes for both versions
<FromGitter> <nsuchy> im waiting on crystal on my mac to update
<FromGitter> <nsuchy> it's downloading LLVM again
<FromGitter> <nsuchy> this could potentially be a macos specific bug
<FromGitter> <Blacksmoke16> i was running my stuff in a container container, so maybe
<FromGitter> <Blacksmoke16> any luck?
<FromGitter> <nsuchy> no
<FromGitter> <nsuchy> I can't even install Amber in a fresh VM
<FromGitter> <nsuchy> So idk what to do here
<FromGitter> <nsuchy> macos version gave the same error after the update
<FromGitter> <nsuchy> so now im stuck at what to do next
fyber has joined #amber
<FromGitter> <nsuchy> I imagine anyone trying amber for the first tie
<FromGitter> <nsuchy> might be discouraged by this
<FromGitter> <nsuchy> I think I can install the old version of crystal from snapcraft
<FromGitter> <nsuchy> although this might be worthy of a temporary inclusion in update notes that 0.31.0 isn't compatble
<FromGitter> <nsuchy> so I went through the effort
<FromGitter> <nsuchy> of installing an old crystal version
<FromGitter> <nsuchy> and amber no longer works
<FromGitter> <Blacksmoke16> Hmm
<FromGitter> <nsuchy> this is amber at this point
<FromGitter> <nsuchy> not my app
<FromGitter> <nsuchy> that's broken
<FromGitter> <Blacksmoke16> Dunno, is kinda out of my domain