Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Piotr Solnica
@solnic
I only wish gh had notifications for gist comments heh
Chase Gilliam
@Ch4s3
yeah, that seems like an oversight. I wonder if gist might be a separate application
Piotr Solnica
@solnic
they had notifications in gists, then they were removed O_o
but that was before “unsubscribe” was introduced,
too bad they never re-introduced it with unsubs feature this time
Chase Gilliam
@Ch4s3
Odd
Chase Gilliam
@Ch4s3
@solnic I just posted some notes, mostly about grammar/phrasing and a small note about the argument around abstraction. Overall I really like it!
Piotr Solnica
@solnic
@Ch4s3 oh thanks! This is very helpful :) glad you liked it
Chase Gilliam
@Ch4s3
Anytime. I like that the discussion is happening
Chase Gilliam
@Ch4s3
So what is your involvement with Hanami?
Piotr Solnica
@solnic
dry-rb and rom-rb integrations
libs that I've been working on are being integrated as backends for some of the hanami pieces
Piotr Solnica
@solnic
@Ch4s3 I’m not really happy with the last part about Rails, it ends rather abruptly and begs for a couple more sentences, just not sure what to write here w/o going too much into details and another rails-bashing-by-accident ;)
Chase Gilliam
@Ch4s3
hum...
depends, do you want to be prescriptive and point to where Rails could better serve it purpose? Or, do you want to better define the scope in which you think Rails is the appropriate choice?
Piotr Solnica
@solnic
both, actually, but that’s too much for this post
I think I’m gonna remove this paragraph, I may write something more dedicated later
Chase Gilliam
@Ch4s3
So the crux to me seems to be that if you plan to build an app like Basecamp, Rails is a good choice. If you plan on building something drastically different, or don't know then Rails may be a bad choice especially in the medium to long term
Yeah, may be best left to a different post
Piotr Solnica
@solnic
yep :)
Chase Gilliam
@Ch4s3

If you remove it, I would suggest a quick closing summary.

Something along the lines of:
I'm not here to bash Rails, I'm trying to drive a conversation about diversifying the Ruby ecosystem. Ruby needs new frameworks and libraries built on top of solid abstractions. These abstractions should provide services with which a developer can build applications suited to a diverse range of domains. I'm currently building (some projects) to accomplish those goals. If you're interested in a more robust Ruby ecosystem, join us (point to the projects, gitter, or wherever).

Or if that's not quite your goal, just summarize the importance of good abstractions in frameworks

Chase Gilliam
@Ch4s3
I'd also hold off publishing it until Tuesday if you want people to discuss it
Piotr Solnica
@solnic
This message was deleted
@Ch4s3 thanks, yeah I’ll be adding some ‘sum up’ paragraph thanks :)
Piotr Solnica
@solnic
re promoting our libs, not sure, maybe it won’t hurt to do it :) i was thinking about writing a separate post about some of libs and explain “what and why” there, but a quick mention here would be cool I guess
Piotr Solnica
@solnic

http://solnic.eu/2016/05/30/abstractions-and-the-role-of-a-framework.html

^^ a follow-up to my prev post, related to what we’re doing here

Piotr Solnica
@solnic
Tim Riley
@timriley
Yeah, looks like a lot of thought has gone into it.
I’ve been meaning to ask you for some examples of how you’ve actually used pub/sub with your transflow transactions
Piotr Solnica
@solnic
the author told me he extracted this from real projects
monad approach is more straight forward, but there are use cases for pub/sub, but my brain is elsewhere now so hard to come up with a concrete example
Tim Riley
@timriley
No worries. I’ll file an issue at some point so we can share some examples.
Actually, let me do that now.
Christopher Dennl-Ortega Arrieta
@cdennl
rectify looks like trb, am I right?
Alexander Gräfe
@rickenharp
What’s the point behind the auto-registration in dry-component? Since the key is derived from the filenames, I don’t see the big win that Application['logger’] gives you over using Application::Logger. I do get why dry-container is great, but there you can use generic keys, that you can point to different implementations without having to change those classnames all over your codebase.
Piotr Solnica
@solnic
Convention Over Configuration, removes heaps of boilerplate
and it's not enforced, so don't use it if you don't like it :)
Alexander Gräfe
@rickenharp
Well, the problem is, I have introduced the people at my current project to dry-rb, in the hopes they could use it to cleanup their chthonic legacy rails app. Unfortunately, if something has a feature, they use it… And now I feel obligated to make them use all the nice dry-rb things correctly, while not really understanding everything myself… :sweat_smile:
Piotr Solnica
@solnic
happy to clarify, just ask
I used dry-container/auto-inject in a rails app, see my rom-rails-skeleton on github
but I haven't used dry-component in a rails app, no idea if it will Just Work™ in its current form
Alexander Gräfe
@rickenharp
The biggest hurdle at the moment is instantiating something you get out of dry-container with parameters. Something like Container[’validate’](String) or Container[’validate’](Array)
Piotr Solnica
@solnic
what's validate there?
Alexander Gräfe
@rickenharp
It’s a dry-transaction step that should validate its input against the given class. I told them to use explicit StringValidator and ArrayValidator steps, but apparently that is ‘too much typing'
Basically, I am doing damage control at the moment :D
Piotr Solnica
@solnic
what kind of parameters does it need?
Alexander Gräfe
@rickenharp
I don’t quite understand that question, sorry. :(
Piotr Solnica
@solnic
you said you're getting objects from the container with parameters
Alexander Gräfe
@rickenharp
Yes, they used dry-component to define the step objects, and since those are auto-registered, they can’t influence the instantiation of those step objects.
Piotr Solnica
@solnic
if you need custom instantiation logic, register objects yourself