Hacker Newsnew | past | comments | ask | show | jobs | submit | ck3g's commentslogin


Take a look at how many non-rails developers spend their time proving that Ruby and Rails are dead.


But that's not wasted time, they're just waiting for their async promises to finally return so the page actually renders.


So true


To be clear. I am not forcing her to use that app to much. We do that as much as she likes. And I can see she has fun seeing "a cat moving along the street".


Ok, hope you didn't interpret it as I was judgemental of parenting. If so, I apologize.


No, not at all.


I do it from time time. it does not take much effort. I think it's the question of self-discipline


To be honest I don't know yet =)

But I also curious why where is no devise-like library, because both Elixir and Devise comes from Plataformatec


You are right, I need to update the readme.

I have started the series of articles about learning Phoenix and the Prater is the example application I'm using to cover different topics in my learning way.

Prater is the chat application which should help me to cover many different topics about Phoenix and Elixir.

The series of articles are starting here http://whatdidilearn.info/2018/01/14/phoenix-first-steps.htm... or you can filter by [Phoenix] tag to see all related articles http://whatdidilearn.info/tags#Phoenix


These write-ups look really useful. There are many out there but they either tend to be too verbose, or cover too small an area. You cover a bit more end-to-end but in a concise and complete way.

Also, it's great to pick off-the-beaten-path topics: the Phoenix command-line one is one I recently actually had to sort out from bits I found here and there.

Other topics I'd be interested in (if you need some suggestions):

  - more advanced Ecto usage such has ways to work around some limitations (e.g. fragment() or execute(SQL) for migrations)
  - the whole GenServer thing. How these Erlang/Elixir tasks run in a logical machine seamlessly over the network with high uptimes.


Great suggestions. Thanks. Cannot promise anything right now, but I hope I will get to those topics someday.


I've started blogging not that long ago. I'm using jekyll and GitHub pages. Works fine so far for me.

http://whatdidilearn.info


Yes. That is correct. I am going to cover Agents, Tasks and OTP in the following articles. I thought the article would be too big if I cover all three topics at once.


I think you are right. Good point.

I am also in the process of learning, so your reply is a valuable for me.

Thanks

But does reliability in Elixir/Erlang come only from processes or is it result of the "teamwork" of several features of the platform itself?


You won't have Erlang-style reliability (predictable recovery after localized errors) without links, monitors, and supervisors, which themselves are built with links and monitors.


Plus immutability, plus message passing paradigm (and the associated distribution).

The immutability prevents entire classes of bugs, and helps enforce predictability on the part of your code. It also is assumed at least in part when it comes to message passing (else, what happens if you change a referenced binary after passing it in a message? Does the message change too, or remain static? Either way, complexity)

The message passing paradigm for interprocess communication ensures that the developer is forced to ask "What happens if this isn't received", i.e., if the process is down or missing or etc. Any sort of 'return', via a message sent back, could not happen; this is akin to a called function throwing, which again, requires the developer to ask 'what happens if we never get this response back'? The answer is never to wait indefinitely, it's to...what? Other languages make it very easy to ignore possible exceptions; in Erlang, not only are they likely handled (if you have your supervisor structure in place), but you're forced to decide how such a thing in another process affects the current process (if at all).

Because of the message passing paradigm, the distribution story is simplified; it's largely transparent as to whether the process you're sending a message to is local, or remote. This allows you to build in redundancy across nodes without many of the complexities (and thus, room for errors) that other languages give you, nor the lying abstractions many languages give you (such as RMI).

And having the distribution Erlang does helps with the reliability side of things, as it makes it comparatively straightforward (still complex, but far less so than most other languages) to get solid handling in the event of machine failure.


The page is not working in Safari for me. I was struggling for a bit to understand that.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: