Pubray — blogging powered by Elixir, Phoenix, LiveView and React
REPL? PERL? Regardless of the acronym, the stack behind Pubray is really something else — an exciting yet pragmatic mix of the bleeding edge and the battle proven that should literally make engineers beg for a chance to work with it (I know I would 😀).
Read the introductory article with a sneak peek of tech behind Pubray as well as the all-new Pubray Engineering blog.
And since this is the very first time that I’m posting about Pubray to the Elixir community, feel invited to give it a shot and become early adopters or just share your thoughts. Thanks!
Three real-world examples of distributed Elixir (pt. 3)
👋🏼Hi, there!
Here’s is the third part of the Three real-world examples of distributed Elixir series, in which we will build a distributed download requester and progress tracker, thanks to libcluster, Horde, Phoenix.PubSub, and Phoenix.LiveView.
https://bigardone.dev/blog/2021/06/18/three-real-world-examples-of-distributed-elixir-pt-3
Happy coding!
Connecting Observer to Production
For a long time, I wanted an easy way to run Observer connected to my production environment. I finally have that on http://Fly.io! I wrote up how I did it and showed how playing “chaos monkey” exposed some UX problems on my project.
New Elixir 1.12 - The developer’s point of view
The Elixir 1.12 version introduced some significant changes.
The main one is the ability to create scripts and import dependencies via Mix.install. The interactive console can be more helpful in the software development, prototyping and debugging processes.
How to distribute Mnesia between multiple nodes
Mnesia is a distributed database that’s embedded in Erlang and is super-easy to access — you don’t have to rely on a third-party service because it’s already available with your Elixir app. In this article, we want to share how we scaled our Mnesia usage in our different services, how we coupled the performances of Mnesia, and the persistence that was required to deploy our services with multiple nodes running.
https://medium.com/@wttj_tech/elixir-how-to-distribute-mnesia-between-multiple-nodes-cb7c851b1ed1
ThinkingElixir 052: IOList and Postgres with Nathan Long
In episode 52 of Thinking Elixir, Nathan Long takes us on a deep dive into IOLists in Elixir. We cover what they are, how they work, the power they have when concatenating strings, and how they are used in Phoenix and Logger. We even talk about improper lists and why they exist. And no, it isn’t a bug. We then talk about PostgreSQL features like materialized views, triggers, and using denormalized tables for solving complicated caching situations. Nathan shares some tips for when to use them and provides some cautions worth hearing.
https://thinkingelixir.com/podcast-episodes/052-iolist-and-postgres-with-nathan-long/
Elixir in Production: Glific
What are the benefits of using Elixir for building an open-source communication platform? Find out in our interview with Donald Lobo, the founder and chief architect of Glific.
Pure Elixir deployment strategy
Deploying an Elixir app to a free GCP instance and getting no-downtime deploys without leaning on Docker, Distillery, or Nginx.
This is a big refactor of the article, which previously relied on Nginx/Certbot for SSL and no-downtime deployment.
https://damonvjanis.medium.com/optimizing-for-free-hosting-elixir-deployments-6bfc119a1f44
Hands-on Elixir & OTP: Create a cryptocurrency trading bot - Ep. 16 - Add end-to-end tests
Hi everyone!
I’m extremely happy to announce that I’ve released the 16th episode in the series dedicated to creating a cryptocurrency trading bot in Elixir. In this episode, we will focus on creating end-to-end tests and all the issues that you can see on the way in case of caching the Binance response as well as cyclic dependencies in your umbrella.
https://www.youtube.com/watch?v=UFjGQLNgVUQ&list=PLxsE19GnjC5Nv1CbeKOiS5YqGqw35aZFJ&index=17
PS. Update to the book will follow soon!
Enjoy!
Erebus - Elixir implementation of the envelope encryption paradigm, utilising Google KMS or local keys
Erebus is an implementation of the envelope encryption paradigm. It uses a separate key (called DEK, short for data encryption key) for each encrypted struct. The key is regenerated on each save, making key encryption barely necessary. During each encryption, the DEK is encrypted using the KEK (key encryption key).
The DEK is a symmetric key (Erebus uses AES-256 with Galois mode (AES-GCM) with AEAD), which guarantees both the security and the integrity of the data. The KEK is an asymmetric key – Erebus uses the public key for encryption (for performance reasons when using external key storage) and the private key for decryption. The specific implementation depends on the backend.
Dynamic Styles with Phoenix Live View
Exploring (simple) ways to generate dynamic styling for your Phoenix Live View projects
https://iacobson.medium.com/dynamic-styles-with-phoenix-live-view-848ceca261e0
Elixir Wizards S6E6 From Developer to Director of Engineering with Estelle DeBlois
Latest episode of Elixir Wizards is out today! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s6e6-deblois/
Progressive Web Apps & Elixir Phoenix
Elixir Phoenix is one of the best choices out there for building server side web applications. So, how does one build progressive web apps on it?
Find out at https://iotready.co/blog/progressive-web-apps-elixir-phoenix/
Introduction to Phoenix
Phoenix is the main web framework in the Elixir ecosystem. Learn how it works and what’s special about it.
LiveView Uploads with CSV Data
A quick intro on using LiveView uploads to upload CSV files.
https://elixircasts.io/phoenix-liveview-uploads-with-csv-files
ThinkingElixir 051: Live Auctions with Alex Loukissas
In episode 51 of Thinking Elixir, Alex Loukissas talks about using Phoenix sockets to build a live auction system. We talk about the situation of flash-mob-like users coming to a system and needing to handle high traffic volumes for shorter durations. We talk about how the Horde library helps solve fun distributed clustering problems, we cover observability tools, how and why companies should support open source development through sponsorships and more!
Find popular beam projects on Github and top 100 downloads on hex.pm!
Are you curious about the most popular beam projects on Github and Top 100 downloads on hex.pm ? Find it out on beam-trending
How I develop ogp in Livebook
I developed ogp in last week, it is a very simple library, the joy is when I explore the idea in Livebook and finally made it. Although it is simple, it shows Livebook is an ideal way to write documents and explore ideas.
I write a post to record the development process: https://goofansu.medium.com/livebook-driven-development-50f82e66fbff
Geolocation search input + autocomplete + caching results with Phoenix LiveView
In this post, I want to share with you all the powerful machinery I’ve used to implement a geolocation search input with autocomplete using Here Maps API. With this approach, I’ve also implemented a browser’s geolocation to improve precision, as well as results caching for better performance and cost saving when hitting geolocation third-party backends.
