Only the Y seems to work. I guess they didn't consider that someone might hit N. :)
1,429 karma · joined December 1, 2011
https://github.com/bratsche
Only the Y seems to work. I guess they didn't consider that someone might hit N. :)
I'm not sure I would say elegance is the main feature of Rails, but I think productivity is. IMO nothing out there beats Rails in terms of productivity on a new project. Phoenix is clearly inspired by Rails, but if you'll permit me to pull a semi-random number out of my ass I don't think Phoenix will ever be able to do better than about 80% of Rails's productivity. Some things are just not as simple (for example, just due to the nature of things Ecto is not as simple to write with as ActiveRecord is).
That said, I've totally moved away from Ruby on Rails and over to Elixir/Phoenix for my stuff. I absolutely love Elixir. So far in my experience I'm finding it more performant, easier to maintain, but a little less productive to write in. But still plenty productive enough.
Here is the official React binding (or whatever you call it) for ReasonML: https://reasonml.github.io/reason-react/
Using this you would still be using React, just in a different language. But my understanding is that you would not be using redux (if you are now) because it doesn't make sense in a language like ReasonML.
Maybe stupid question, but why would AT&T block it?
Wikipedia seems to agree with you on the key: https://en.wikipedia.org/wiki/Suite_in_G_minor,_BWV_995
I agree. There's a fantastic recording of one of my favorite violists today, Antoine Tamestit, playing Bach's second partita. It's his appropriately named album "Chaconne", and it also includes the Ligeti viola sonata, which is probably one of the hardest things I've seen written for viola. Ugh, it's one piece that I just don't even know how to begin practicing. :)
fwiw on cello it's BWV 1011.
But as a violist I found this interesting. I like to play his violin sonatas and partitas but on viola but people have discouraged me from this because it means changing the key and everyone insists that Bach is very deliberate in his choice of key and it's almost blasphemy to think about playing his music in a different key. But the lute/cello suite is a direct contradiction to this.
Erlang's concurrency model is amazing. It's like having micro-microservices running inside your virtual machine. And you can distribute across nodes. Nothing else really has this kind of thing.
Pattern matching is beautiful and it's easy to use. Other languages have this too, so it's not like this is unique. This is one of my favorite things though; you can destructure things, you can pattern match inside a function using case, and you can pattern match on functions themselves like:
def say("Hi"), do: IO.puts("Hello")
def say("Bye"), do: IO.puts("Goodbye")
def say(_msg), do: IO.puts("Where am I?")
That's basically the equivalent of having a single say() function that then does a switch/case on the input.And a more recent addition to the language is "with". This is fantastic, it's one of my favorite things now. Usually you might have code that sets a variable from something, checks to make sure it's valid, sets another variable, checks to make sure it's valid, etc, etc... until finally you're function is ready to actually perform its purpose. Any of those checks might cause it to exit early or to switch paths. So Elixir has this "with" feature that looks sort of like this:
def create(conn, %{"id" => group_id, "friend_id" => friend_id}) do
with {:ok, user} <- current_user(conn, groups: [memberships: [:user, :group]]),
{:ok, group} <- Groups.fetch_for_user(user, group_id),
{:ok, friend} <- Friendship.fetch_friend(user, friend_id),
{:ok, member} <- Groups.add_member(group, friend)
do
render(conn, "success.json", msg: msg)
else
{:error, msg} ->
conn
|> put_status(:unprocessable_entity)
|> render("failure.json", msg: msg)
end
end
I love this feature. It makes code so much more readable and maintainable in my opinion.But if you don't, that's cool too. There are mix tasks for using the older style generators and mix tasks for the newer context style generators. Use whichever you prefer.
Title II was instituted basically as a last resort. And nobody has been coming forward saying, "Okay.. we have a plan here to undo the Title II but still preserve net neutrality."