ElixirCamp Australia is on in March

It’s on the beach just outside of sunny Melbourne.

Tickets are on sale now. More details at http://elixir.camp/

My recent performance story on Elixir

Perf tools in Elixir are wonderful! https://medium.com/@victor.nascimento/an-elixir-performance-tooling-story-c5c85479063a

Integration testing Phoenix application with Circle CI 2.0

How to run your Phoenix integration tests on Circle CI 2.0 with headless browser mode?

Check this blog: https://dev.to/vinhnglx/integration-testing-phoenix-application-with-circle-ci-20-50md

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.

Swoosh 0.13.0 is out! With a Dyn adapter.

The highlight of this new version is the addition of a Dyn adapter, thanks to a contribution from @jann.

Installation instructions

Please give it a try and feel free to open an issue in the Swoosh repo if you run into any trouble.

People are Processes

People are processes

When designing your Elixir systems, think about the processes as people. Now think of these people in an office all working together to serve the customer. That is how you can build your software systems in Elixir. It’s natural and intuitive!

Talking about system design, how processes work, some benefits of Elixir and Phoenix, and concurrency!

https://brainlid.org/elixir/2018/01/17/people-are-processes.html

How to test an elixir cluster, the easy way

How to test an elixir cluster? https://medium.com/@lorenzo_sinisi/how-to-test-elixir-cluster-of-nodes-using-slaves-69e59a77ec3f

Automated dependency update PRs with Dependabot

I just added support for Elixir to Dependabot!

Each day it will pull down your mix.exs and mix.lock files and check whether the dependencies in them are up-to-date. If there are any that could do with a bump it will create individual PRs for each update for you.

Would love beta testers - Dependabot has created a lot of Ruby and JS pull requests, but support for Elixir is brand new.

How to use Markdown as templates in Phoenix

In addition to finishing PhoenixMarkdown v1.0, I’ve also published a blog post on Medium describing how to use it.

https://medium.com/@boydm/markdown-templates-in-phoenix-25721a3bc682

enjoy!

PhoenixMarkdown v1.0 released to Hex

Continuing my roll of updating packages this week…

PhoenixMarkdown version 1.0 has just been pushed to Hex!

https://hex.pm/packages/phoenix_markdown

PhoenixMarkdown lets you use Markdown as first-class templates in Phoenix.

In addition to streamlining the code, you can now optionally process server-side tags in the Markdown file.

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

The Big Elixir Conference in New Orleans, November 2018

We are working on a site, but in the mean time would like anyone who is interested in attending, speaking or sponsoring to fill out our Google Form https://docs.google.com/forms/d/e/1FAIpQLSfRgC-654H30l4hJvnqug75AW0l3YFeCc-upTMhADHZmQbzXQ/viewform

Solution to Challenge 14: Flattening lists recursively in Elixir

https://youtu.be/ysgz0FdL99E

https://Alchemist.Camp covers two functions for flattening lists in Elixir. One is elegant and concise. The other is tail recursive and performant.

how to process an ets table in chunks or batches

how to process an ets table in chunks or batches https://goodcode.in/elixir/10/how-to-process-an-ets-table-in-chunks-or-batches

Things I wish ActiveRecord had after using Ecto

In this article, I wrote about few things I like about Ecto that aren’t available in Active Record. It’s not meant to be a “Phoenix is better than Rails” rant as both frameworks provide really great things and we can all learn from each of them. https://infinum.co/the-capsized-eight/things-i-wish-active-record-had-after-using-ecto

Functional mocking with Mox

How to use Mox in your test suite, and at which layers you should use them in: https://blog.carbonfive.com/2018/01/16/functional-mocks-with-mox-in-elixir/.

PhoenixIntegration 0.5 published to hex

Apparently I’m updating packages today…

Just published PhoenixIntegration 0.5 to hex. Features the following changes:

  • Adds click_button, which requests links in buttons in a test.
  • Adds follow_button, which follows requests through a button with redirection.
  • Improves error messages when requesting the wrong method.

Engaging the Community

Every year, we have an opportunity to engage the communities that we’re a part of. From Slack to meetups to conferences — everyone can contribute regardless of their experience. How will you contribute to the Elixir community in 2018? https://blog.echobind.com/how-to-engage-a-community-bc7333b6aaf5

Writing simple web services with Ace

Tutorial for getting started with Ace; a featherweight toolkit for developing web applications.

http://crowdhailer.me/2018-01-17/simple-web-services-with-ace/

PolicyWonk v1.0.0-rc.0 released

I just pushed PolicyWonk 1.0.0-rc.0 to hex.

This is a major update (re-write…) that has less code than the original.

v1.0 fixes several issues with the old architecture:

  • It wasn’t compatible with Phoenix 1.3 umbrella apps. Or rather, you couldn’t have separate policies for different apps in an umbrella.
  • It had a whole mess of complexity that simply wasn’t needed. I never used most of the “shortcut” options since the more explicit versions (with slightly more typing) were always clearer.
  • Returning errors from Policies was too vague. I want to know errors are being processed!
  • The config file data isn’t necessary in a more explicit model.
  • Naming was inconsistent between policies and resources.

If you use PolicyWonk, I would appreciate any feedback before declaring it done.

There are breaking changes, so make sure to read the docs on how to upgrade. Overall, the shape is similar, so there is minimal work to make the upgrade. The result works with Phoenix umbrella apps, is simpler, more flexible and has better consistency.

I think the upgrade will be well worth it.

Creating Ecto associations between profiles and stats (StatWatch)

Lesson 14: https://youtu.be/mYsYgNlRuEM

We finish migrating StatWatch from a CSV file-driven app to a database-driven app. We use Ecto to create associations between user profiles and their associated stats and streamline our stat saving by using Repo.insert_all to take in many rows en masse.

Don’t forget to submit your content requests! https://youtu.be/nauHI5omF2M

Peluquero gets v0.99.×

Deal with RabbitMQ like a pro. Sophisticated subscribing, publishing, shoveling and more with a simple config. Implement your business logic, Peluquero will handle the queues :)

https://github.com/am-kantox/peluquero — https://hexdocs.pm/peluquero/gettingstarted.html