This is exciting! I've been meaning to host some things on FreeBSD. Coming from a Linux background, the question of how to ship and run my applications on there becomes quite a bit more familiar through this milestone.
HN user
juhatl
I recently started a new job working on a Elixir codebase. While it took me a while to understand the architecture and conventions (just like with any language, I guess), dealing with types was not a concern when it came to navigating the codebase.
Granted, the codebase uses pattern matching, type specs and Dialyzer extensively, which all definitely contribute towards making the navigation easier. Without those tools in use, I can definitely imagine navigation being more difficult.
Is it possible to share more details about your particular setup? I believe you, but this doesn't sound right. I've used the plugin on all three major operating systems in a wide variety of projects and configurations, and have never had this happen to me. Curious to learn more about what could be the culprit for you.
Apparently an incident took place in 1831 where a bridge collapsed under soldiers marching, but the Wikipedia article [1] notes that "The conclusion of the investigation was that the vibration caused by the marching precipitated the bolt's failure, but it would have failed eventually anyway".
There's more interesting information on synchronization and bridges on Veritasium's video, The Secret of Synchronization [2].
[1] https://en.wikipedia.org/wiki/Broughton_Suspension_Bridge [2] https://www.youtube.com/watch?v=t-_VPRCtiUg
This is exciting! Really excited about the collaborative nature of the Livebooks, as well as the version control -enabling .livemd format.
Are there any specific collaborative features the team is planning for future releases?
My hunch echoes that of other commenters here. That is, it seems like many core libraries have been quite steady and "complete" for a while now, and many people are just using them today to get work done. That isn't to say the language ecosystem would have stagnated, however.
One interesting piece of data comes from Elixirforum.com, arguably the central hub for the Elixir community. In their recent MOTY update [1], they announced that "..to give you an idea of how far we’ve come and how fast Elixir has been growing, in the forum’s first year we served just over 1M pages for the entire year, now, we’re serving a million a month".
The official Elixir language site has also been steadily accumulating more and more case studies [2], which one might consider as sign of health in terms of Elixir being used in the industry. Obviously it's only the success stories being told, though.
Recent news regarding Nx [3], Livebook and Axon suggest there are new doors being opened for Elixir as a language in the AI/ML space. This expands what the language can be used for, and as such, could be considered as another sign of health and vibrancy in the ecosystem.
Looking at something like GitHut [4], it seems like Elixir has maintained a steady position on its rankings in terms of pull requests. This suggests that usage of the language hasn't declined in the recent past.
Lastly, the 10-year Dashbit blog post [5] by José might highlight some other development. While "development" is not synonymous with "health", I feel like the contents can suggest lack of death :)
[1] https://elixirforum.com/t/2020-motys-and-our-5th-birthday-up... [2] - https://elixir-lang.org/cases.html [3] - https://dashbit.co/blog/nx-numerical-elixir-is-now-publicly-... [4] - https://madnight.github.io/githut/#/pull_requests/2020/4 [5] - https://dashbit.co/blog/ten-years-ish-of-elixir
I'm really excited about this project. Seeing Elixir inch this much closer to being a viable option for machine learning and related fields is great.
In case someone here wants to read rather than listen to all the details, I wrote down some notes over at: https://elixirforum.com/t/anyone-who-wants-to-speculate-abou...
This topic of success and what contributes to it always makes me think back to this great video by Veritasium (aka. Derek Muller) titled "Is success luck or hard work?" [1].
While it's probably impossible to prove one way or another, I've personally grown to accept that I will never be fully satisfied with everything in my life. Accepting that fact has given me some kind of peace, because I no longer dwell on the what-ifs as much as I used to. It doesn't matter if I reach the goals I have in mind right now, as I'm bound to come up with new ones that are just out of my reach. I believe bettering oneself is good, but I also believe it's important to accept that there's never a goal to be reached there.
I've dabbled in Elixir for quite a lot over the past few years, and I have to agree with the general trail of thought you're showing. If I have a question about Elixir, I don't even think about going to StackOverflow for it. I either go ask on ElixirForum, or Google for my problem (which, in most cases, lands me to an ElixirForum thread rather than a StackOverflow one). I think the surge in the use of ElixirForum is inversely correlated with the use of StackOverflow: the more the forum has grown, the less reason there has been to use SO.
I do worry about the impact it has on these "popularity tracking" services though, since the discussion living elsewhere might (falsely?) indicate that the language isn't attracting developers.
One major thing would probably be OTP, which would be very difficult to implement as-is on top of Go. A recent comment thread [1] over at Lobste.rs explored this in more depth.
Saša Jurić made an absolutely wonderful hands-on presentation [2] of what (oftentimes rather unique) value propositions Erlang/Elixir/BEAM bring to the table. It's a very tightly-packed presentation, but I strongly recommend having a look if you're curious.
1. https://lobste.rs/s/ntati1/even_go_concurrency_is_still_not_...
To reiterate what others here already said, success really isn't anything "universally great" to aim for. There's probably no real way to do that either, since there isn't even any universal definition of what success really means. This is especially true when everyone comes up with their own unique set of requirements for considering themselves successful. It is also way too easy to fall for the trap of moving the goalpost once you're there.
And if you felt like you hadn't reached your own definition of success, then what of it? Would that really, honestly change your life in any measurable way, or is the feeling of "not being enough" all in your head? If it is, then that also means your head holds the means to get rid of such a feeling.
I really want to recommend the book "Man's Search for Meaning" by Viktor Frankl. It was one of the greatest assets for me overcoming my own depression, and I hope it can help you battle your suicidal thoughts all the same.
You make a good point, and this is one of the reasons why I really like the Phoenix web framework (of the Elixir ecosystem). It firmly guides you towards building applications where Phoenix is only a single interface to your underlying Elixir application, and the web layer, by design, doesn't contain business logic, but rather just gives you a web-friendly way to talk to the application itself. The community has come up with the mantra of "Phoenix is not your application" to drive this point home.
This approach and separation of concerns also means that building e.g. REST or GraphQL APIs on top of your application is simple, as your web framework has no say in how the data is actually structured or queried.
Are there any specific libraries or tools written in PHP that you use in your day-to-day life? Perhaps having a look into their state could yield some interesting opportunities for you to contribute. That way you'd also get an extra incentive to keep contributing, as you'd personally get to enjoy the results, too.
Thank you for the tool and the details you've shared! Is there any particular reason you opted to run your own instances of Lighthouse rather than use the PageSpeed Insights API provided by Google? API quota limitations, perhaps?
I watched the ElixirConf 2019 keynote [1] as soon as it came up. While I was left excited about Lumen in general, I wasn't entirely sure what kinds of things Lumen would be most useful for.
Being able to ship a single binary (like with Go or Rust) sounds handy, but shipping a tarball hasn't been that much of a challenge either. Being able to run BEAM code in the browser also sounds handy, but due to size issues I probably wouldn't want to ship the entire BEAM to my users either, right?
Can someone with a more thorough understanding of Lumen share some thoughts on this?
Thank you for the write-up! I've been looking for an excuse to dig deeper into Scenic, and the allure of combining that with eInk makes it sound even more fun. Ordering an Inky right away.
Earlier HN discussion from 2017 on the same post: https://news.ycombinator.com/item?id=14748028
Being able to say I’ve overcome my nearly 15 years of depression. I did some pretty neat things in and out of work too, but none of them can really compare to finally feeling happy and healthy again.
I learned that if I’m not happy, then nothing else in life will really matter to me, and that my own happiness and health are the most important things that I can have. I always knew this on some abstract intellectual level, but it wasn’t until after I had actually gotten better that I truly, deeply understood it.
Take care of yourselves out there. You’re the most important thing you’ve got.
Elixir. The ecosystem has been steadily growing (and, more importantly, becoming more robust and mature) throughout 2018 with continuously improved tooling, libraries and frameworks. I'm excited for many of the upcoming things [1] in the Elixir world, and how those things can improve the way I build (web) software in 2019.
[1] For one example, https://dockyard.com/blog/2018/12/12/phoenix-liveview-intera...
Thank you for the write-up! When starting The Outline, did you investigate other languages for building the system, or were you set on Elixir from the start? What were these other options you evaluated (if any)? Which aspects of Elixir convinced you that it was the right choice?
In case you haven't heard yet, there's ongoing work [1] from Paul Schoenfelder for just that! Dockyard (employer of Chris McCord, father of the Phoenix framework) hired him some time back for this very reason.
[1] https://dockyard.com/blog/2018/02/28/elixir-deployment-tools...
I might've misunderstood what you referred to in this particular case, but you generally don't need to even have Erlang installed on the target machine to ship Elixir (and/or Erlang) applications. Tools like Distillery make it easy (a boolean config value) to include the ERTS with your deployment, leaving you with a single .tar.gz to move to your target environment. The only caveat here is that the build machine and target machine architectures must match.
You mention that the state management is far from ideal. How did you choose to manage state in this project (or is there a GitHub repo to have a look at)?
Excellent recommendation. For the people who are considering getting this book, I would like to point out that a 2nd edition of the book is also available in the Manning Early Access Program (MEAP) [1]. OTP-wise things haven't really changed much, but the new edition addresses changes in the Elixir language over the past few years.
[1] https://www.manning.com/books/elixir-in-action-second-editio...
it seems that the alpha release of v0.19 will drop any moment...
Could you please elaborate on this a bit? What makes you believe that the 0.19 alpha release is just around the corner?
Would you care to elaborate on the complications you've experienced?
I'm curious because my personal experience has been very much the opposite. I've built nothing but small projects using Phoenix, and I've considered it to be a very straightforward companion whenever I've needed to add a web interface to my Elixir apps.
As an avid Elixir user, your comment got me thinking about how and where I look for help. I realized that it wouldn't even really occur to me to use Stack Overflow for answers regarding Elixir, as the other platforms you mentioned tend to be so active and well suited for that purpose.
This isn't to say that I wouldn't use SO for other purposes, as I actively visit the site for JS/PHP content. Anecdotal evidence to support your insight by all means, of course.
The series of articles "Writing a Blog Engine in Phoenix and Elixir" [1] can be quite fast-paced at times, but in the end (and far before that, too) you'll have a blog platform that you can use and you'll understand how some of the different Phoenix & Elixir pieces fit together.
For a more thorough experience, however, I would absolutely recommend you to have a look at the books the Elixir community has produced. As you're specifically asking for tutorials (and not other sources for learning), my best recommendation would be Programming Phoenix [2], a book written by the creators of Elixir and Phoenix.
The book is structured so that most of it is focused on building one specific web application, so you can follow along from start to finish and build something far more interesting than just a run-of-the-mill blog (and learn a lot about Elixir and Phoenix in the progress).
[1] https://hackernoon.com/introduction-fe138ac6079d [2] https://pragprog.com/book/phoenix/programming-phoenix