28 comments

[ 3.5 ms ] story [ 65.3 ms ] thread
This post is 13 months old btw.
I'm not sure what's up with all the old re-posts lately. It's pretty lame.
Is there an option to be able to mark such posts clearly as reposts?. Great for refreshing the memory and may even useful for new joiners.
As I understand it, reposts are fine as long as a reasonable amount of time passes between submissions. I swear I've seen a few stories that get submitted almost every year, although I can't remember any off the top of my head.

That's "past" button lets you quickly search for previous discussions.

Never seen the "past" button before. Thanks!
Who is using Phoenix Framework in production?
These companies are: http://bleacherreport.com/ https://www.brightcove.com/en/ http://cargosense.com/ https://www.inverse.com/ Apple has listed it in the stack in some job descriptions over the last year
What benefit does Elixir provide to content companies (50% of these examples) given the low technical requirements of their product?
I think I remember a Bleacher Report engineer talking about this on an Elixir podcast. They use it to power their push notifications and pride themselves in being consistently the fastest among their competitors.
Me. Feel free to ask me anything.
Us as well, I'll answer what I can!
How good is the "dynamic but functional and immutable" nature of the language good at catching potential bugs?
The immutable nature helps with 1) reasoning locally (you can always understand exactly what happens in a function by reading the function itself) and 2) debugging. Additionally, dialyzer provides a very nice (optional) typing system for erlang / Elixir.
And with the new deprecation in 1.4 of bare words, a disambiguation goes away where when looking at a function you sometimes had to go "is this a variable or a function". Now functions with 0 args have parens, always.

I've found the locality of everything in the function that you mentioned helps IMMENSELY in refactoring. Just give a function a namespace and call it, and then figure out where it actually belongs later as you figure out your implementation.

We do at TalkJS (https://talkjs.com). It's a pluggable user-to-user messaging service, and the concurrency that Phoenix and notably Elixir offer have been really helpful in keeping our infrastructure simple.
Tinfoil Security! All of our release engineering is orchestrated through a small Phoenix app that calls out to docker images to perform various types of deployments (Heroku, EC2, ECS, building docker images, etc).

I'll probably do a write-up on it at some point, because it is now trivial for anyone on the team to deploy any of our services to any environment (or a new one!), and to integrate new services into the platform.

(comment deleted)
Has there been any progress since then? The blog has been awfully quiet.
Yes! Phoenix creator here. We need to give the blog some love, but in 2015 we had a big year. We released the "Programming Phoenix" book for pragprog and our big "Phoenix Presence" feature, a CRDT backed eventually consistent process group:

https://dockyard.com/blog/2016/03/25/what-makes-phoenix-pres...

We also have been working on Phoenix 1.3 which I laid out in my ElixirConf keynote. Ask me anything!

What does presence use for its persistence layer? For its gossip protocol? Are you using plumtree, a fork, or something home rolled? Are you aware of Christopher's work with Lasp and the delta-CRDTs?

This sounds great and it's very idiomatic to OTP, it's like a web app VM.