Simple Phoenix LIveView App: PubSub & Index

Part 5 of the Simple Phoenix LiveView App series.

In this episode, we’ll add some PubSub functions to the Accounts Context for user-related LiveViews. Then we’ll write a LiveView for the users index page.

https://alchemist.camp/episodes/phoenix-live-view-index

Thoughts on simple GenServer uses

https://medium.com/@damonvjanis/elixir-genservers-for-web-developers-255d37a3699c

A few thoughts and opinions about uses for GenServers in web development. Summary: use them for simple recurring background jobs and sparingly otherwise!

Simple Phoenix LiveView App: Scaffolding Users & Content

Part 5 of the Simple Phoenix LiveView App series.

This episode we’ll use generators to scaffold the following for users, podcast episodes and comments:

  • contexts
  • schemas
  • migrations
  • controllers
  • views
  • templates

We’ll also set up a few basic validations.

https://alchemist.camp/episodes/reactor-scaffolding

Shameless plug: Check out @elixirstatus' other community project:

Credo, a new static code analysis tool that acts as a code linter, but also focusses on teaching coding practices and code consistency.

Elixir Wizards S3E18 Sophie and Meryl Takeover: Sean Callan and Steven Nunez on Elixir Education

Check out the latest episode of the Elixir Wizards Podcast focused on Elixir Education: https://podcast.smartlogic.io/s3e18-nunez-callan

Covid - Epidemic Mitigation in Elixir

https://github.com/seanmor5/covid

Epidemic Mitigation in Elixir using a Genetic Algorithm to eliminate most impactful connections in a graph.

LiveView click event and offsetX, offsetY coordinates

LiveView click event and offsetX, offsetY coordinates

I made a tiny tiny contribution to the Phoenix LiveView project (just two lines of code available from release 0.5.0), which adds offsetX and offsetY coordinates to the click event metadata.

These coordinates are useful to know exactly where the click happened inside the element. In this article I show how to use phx-click and offsetX,Y coordinates, letting users interact with SVG elements

COVID-19 announcements on Ecuador with Elixir and Absinthe.

Thanks to the lockdown I’m working in my free time on a project to have a curated chronology of the official announcement related with the COVID-19 on Ecuador.

The repository lives here: https://github.com/mijailr/alertas.ec

The tech stack is:

  • Elixir
  • GraphQL
  • Typescript
  • React
  • Docker
  • Heroku
  • GitHub Actions

You can see the prod environment on Alertas.EC

Any feedback, suggestions or help, is welcome.

How to Use gRPC in Elixir

In today’s post, we’ll learn what gRPC is, when you should reach for such a tool, and some of the pros and cons of using it.

https://blog.appsignal.com/2020/03/24/how-to-use-grpc-in-elixir.html

Playing with GPX tracks in Elixir and PostGIS

Lately, I’ve been thinking about the idea of creating a web app for storing and visualizing my cycle rides.

In this blog post, I would like to present my findings on how to store and visualize GPX tracks using Elixir/Phoenix, PostgreSQL and a little bit of JavaScript. The plan is to parse the GPX file and extract track data. Save it in PostgreSQL as a geometry type, which comes with PostGIS. Finally, visualize track using an interactive web map.

https://caspg.com/blog/playing-with-gpx-tracks-in-elixir-and-postgis

Shameless plug: Check out @elixirstatus' other community project:

Credo, a new static code analysis tool that acts as a code linter, but also focusses on teaching coding practices and code consistency.

gen_rmq 2.5.0 version release

GenRMQ is a set of behaviours meant to be used to create RabbitMQ consumers and publishers.

Changelog:

  • Deprecate uri config attribute and introduce connection option for Consumer and Publisher
  • Add example and more detailed description for GenRMQ.Processor
  • Handle redeclaration errors from the broker

The Bell

This is an app I built last weekend while stuck indoors. It’s called The Bell; a way to stay connected when you’re apart.

https://www.thebellisringing.com/

For my fellow mixologists, it’s a Phoenix app with channels, hosted on Gigalixir. 💜 Elixir!

Anyone for Waffles? An open-source file upload library for Elixir

Do you work on Elixir projects that need to handle file uploads from users?

Waffle is a flexible library, developed by one of our engineers — Boris Kuznetsov — which does the hard work of handling file uploads for you, whilst providing easy integration with storage services such as Amazon S3, Google Cloud Storage, Azure, RackSpace Cloud, as well as image manipulation tools such as ImageMagick, so that uploaded files can be optimised on-the-fly!

Waffle grew out of a fork of a now-unsupported library, to which we’ve added complete documentation, fixed outstanding issues, merged open pull requests, added integrations with other parts of the Elixir ecosystem (in particular Phoenix and Ecto). We’ve also working on new features, such as file validation based upon content rather than the type supplied by the browser.

This release of Waffle is v1.0.0. If you’ve previously used Arc, you’ll find the transition to Waffle very straightforward, although note that the dependencies have been upgraded, and Poison has been removed in favour of Jason.

https://evrone.com/waffle-elixir-library

Elixir Wizards S3E17 Saša Jurić on Training

Latest episode of the Elixir Wizards podcast out today! Check it out: https://podcast.smartlogic.io/s3e17-juric

Updates of Deep Work Hours

Add ability to update time entry and make sure start time doesn’t later than the end time |> Formatting with mix format |> Refactor to improve readability with mix credo

https://github.com/co0lsky/deep-work-hours-phoenix

ElixirMix Podcast 090: Data pipelines through Broadway with Alex Koutmos

In this episode of ElixirMix, we visit with Alex Koutmos about data processing pipelines in Elixir using Broadway. His multi-part blog posts go beyond “making it work” to monitoring and visualizing the flow. We discuss using RabbitMQ to process, Grafana to visualize, and much more!

Podcast Episode

Oban UI Generally Available

The Oban UI is no longer in beta and is now generally available through a license. There are options for the solo developers and successful businesses building products on top of Oban.

https://oban.dev

Agency :: abstraction on top of Agent

Agency is a tiny library reducing a boilerplate on top of Agent.

It backs up any container implementing Access and exposes transparent CRUD/Access-like methods, as well as before_***/1 and after_***/1 callbacks for clean client API implementation.

https://hexdocs.pm/agency/Agency.html

phoenix liveView 0.9.1 breaking changes

If you recently updated your mix dependencies to use {:phoenix_live_view, “~> 0.9.0”} you might be surprised that …the web socket connection is gone.

Here’s a simple fix:

https://rafalgolarz.com/blog/2020/03/16/phoenix_live_view_0.9.1_breaking_changes/

Elixir Wizards Bonus Episode: Outlaws and Wizards

Elixir Outlaws invited us to join them for a special crossover episode, recorded live at Lonestar Elixir 2020! Check it out here: https://podcast.smartlogic.io/s3-bonus-outlaws-and-wizards

8 things to get you started with the Elixir’s interactive shell (IEx)

Learn about all the tips to get you started with IEx.