Neuron: A GraphQL client for Elixir
Hi there!
I just published v0.1.0 of neuron
, a tiny GraphQL client for Elixir.
Contributions are always welcome, I’ll keep adding features in the future :)
https://github.com/uesteibar/neuron https://hex.pm/packages/neuron
New book - Phoenix Inside Out
I am happy to announce that I am completing final rounds of my Phoenix book and am opening up pre-order for my book with 15% off.
You can read more about the book at https://shankardevy.com/phoenix-book/
Topics covered in the book are:
- Learn just enough Elixir to dive into Phoenix
- Create a mini-Phoenix framework using Elixir and Cowboy
- Plug magic in Phoenix Endpoint, Router and Controller
- Develop an ecommerce site in Phoenix using Test Driven Development
- Practical Ecto Cookbook
- Blueprints to help you better design your project
- Access to lots of handy reference cheatsheets!
- Full access to all code repos used in this book.
Phoenix Inside Out is approx 350 pages and is organised in three parts as follows:
-
Part I. (Introduce) Readers might come to Phoenix without knowing Elixir. So teach them just enough basic to understand Phoenix code. Knowing the language fully well is indeed necessary for mastery but it’s very easy to get lost in learning Elixir.
-
Part II. (Demystify) The book explains the internals of Phoenix by showing user how to create something like Phoenix. I believe the best way to learn how a framework works is to create it yourselves. And the best way to use it in your project is to learn how it works.
-
Part III. (Empower) The book demonstrates building an commerce site using TDD. Hound is used for acceptance testing. This part also introduces Ecto and Contexts as in Phoenix 1.3. I also explain various deployment options that you can put to use in your project.
Practical Ecto cookbook is approx 120 pages with about 60+ recipes under the following headings
- Schema
- Embedded Schema
- Migration
- Changeset
- Association
- Query
How to use Elixir's Enum.filter_map
https://niallburkley.com/blog/elixir-filter-map/
I wrote a short post to (hopefully) make it a little easier to understand how to use Elixir’s Enum.filter_map/3 to filter and map a collection.
Refactoring for Tests in Elixir
http://www.devonestes.com/refactoring-for-tests-in-elixir/
Need to test that tricky function? Here’s a story of a refactoring that allowed us to add some good new tests for a new feature in Benchee.
Writing a Custom Action in #ExAdmin
https://davejlong.com/2017/05/24/writing-a-custom-action-in-exadmin/
How to customize actions of ExAdmin resources.
Talk: Monoliths to Services with Elixir and Phoenix
https://bit.ly/elixir-microservices
Transitioning monolithic apps into a micro-service architecture isn’t straightforward – in fact, it is often quite difficult. In this intermediate talk, we’ll learn how Elixir umbrella apps and Phoenix utilize the Erlang VM (BEAM) to make building services less painful and more productive.
Pattern Matching And State Machines
How to build a template engine (using simple string interpolation), leveraging pattern matching and state machines while measuring overall performance.
https://nerds.stoiximan.gr/2017/05/24/pattern-matching-and-state-machines/
Blog: Using ASDF-vm
In our latest embedded-elixir blog post, Connor Rigby describes how to manage multiple versions of Elixir and Erlang/OTP using ASDF-vm. http://embedded-elixir.com/post/2017-05-23-using-asdf-vm/
Modules & Functions | Zero to Hero #4
Let’s learn how to build a module in Elixir
Modules & Functions | Zero to Hero #4 https://youtu.be/Ipddkt5DR2w
Sending Email with Bamboo - Part 2
Part 2 of our series on sending email with Bamboo. Watch how easy Bamboo makes it to use layouts and templates to compose emails: https://elixircasts.io/sending-email-with-bamboo-part-2
Elixir for Java Developers, Episode I
I’m starting a series of posts to people from Java learn Elixir faster. I hope you guys like it.
https://medium.com/@dojusa/elixir-for-java-developers-episode-i-66b65c862652
Sobelow, the Phoenix vulnerability scanner - v0.2.5
Changes include:
- Flag for an additional SQL injection vector
- Small addition to XSS checks
- Minor bug fixes and refactoring
You can now install with mix archive.install hex sobelow
, and if you want (or need) to install an older version, you can do so with mix archive.install hex sobelow 0.2.4
.
retort 2.1.0
Install: https://hex.pm/packages/retort/2.1.0<br/> Docs: https://hexdocs.pm/retort/2.1.0<br/> Changes: https://github.com/C-S-D/retort/compare/v2.0.0…v2.1.0
Changelog
Enhancements
-
Extract
Retort.Resources.timeout/2
toRetort.Resources.Timeout.get_or_default(module, function)
.Retort.Resources.Timeout
also has functions for deleting and putting module-wide and function name specific timeouts, to make testing easier and less boiler plate needed in override examples.-
Retort.Resources.Timeout.delete(module)
will deletetimeout
s set byRetort.Resources.Timeout.put(module, timeout)
ORRetort.Resources.Timeout.put(module, function_name, timeout)
. -
Retort.Resources.Timeout.delete(module, timeout)
will deletetimeout
set byRetort.Resources.Timeout.put(module, function_name, timeout)
OR remove thetimeout
forfunction_name
and leave it for the other function names whenRetort.Resources.Timeout.put(module, timeout)
is called. -
Retort.Resources.Timeout.put(module, timeout)
will set thetimeout
for allRetort.Client.Generic
calls bymodule
that calleduse Retort.Resources
. -
Retort.Resources.Timeout.put(module, function_name, timeout)
will set thetimeout
for allRetort.Client.Generic
function_name
calls bymodule
that calleduse Retort.Resources
. -
Retort.Resources.Timeout.put(module, function_name, timeout, func)
will only temporarilyRetort.Resources.Timeout.put/3
, but for the duration passed function only. This can be used to test timeout handling.
-
-
Update to
credo
0.7.4
.
Bug Fixes
- Fix formatting of timeout override example code.
Deprecations
-
Retort.Resources.timeout(module, function_name)
is deprecated; useRetort.Resources.Timeout.get_or_default(module, function_name)
instead.
When to use processes in Elixir - Part 2: Running concurrent tasks
In the second instalment of “When to use processes in Elixir” I wrote about using processes to run concurrent tasks.
In case you missed it, you could already send emails with attachments using Swoosh 0.8, all adapters supported
Checkout docs at https://github.com/swoosh/swoosh#attachments
The adapters list:
-
SMTP
Swoosh.Adapters.SMTP
-
Sendgrid
Swoosh.Adapters.Sendgrid
-
Mandrill
Swoosh.Adapters.Mandrill
-
Mailgun
Swoosh.Adapters.Mailgun
-
Postmark
Swoosh.Adapters.Postmark
-
SparkPost
Swoosh.Adapters.SparkPost
Startup Job, a sample project to search startup jobs
Hi there,
I just published my first Phoenix project Startup Job, an umbrella project to search startup jobs which scraped from various websites.
You can find out more on the GitHub repo.
Streaming Data with Ecto
Let’s build a small CSV exporter to show how you can stream data from your database using Ecto!
Blog: Poncho Projects
New blog post on Embedded-Elixir - Why we prefer ponchos over umbrellas on Nerves-based projects. http://embedded-elixir.com/post/2017-05-19-poncho-projects/