DynamoMigration has been released. -Version management tool for DynamoDB migrations.-

DynamoMigration is simple version management tool for dynamo_db migration files.

Links

Usage

  1. Create migrations table.

    $ mix dynamo.setup
  2. Generate and rewrite migration file.

    $ mix dynamo.gen.migration create_tests_table
    # priv/dynamo/migrations/20220130083004_create_tests_table.exs
    defmodule Dynamo.Migrations.CreateTestsTable do
      def change do
        # Rewrite any migration code.
        # Examples.
        ExAws.Dynamo.create_table(
          "Tests",
          [id: :hash],
          %{id: :number},
          1,
          1,
          :provisioned
        )
        |> ExAws.request!()
      end
    end
  3. Migrate.

    # Executes `priv/dynamo/migrations/*` if there had not migrated.
    $ mix dynamo.migrate

Help To Test Your Library

Simple yet quite effective approach to make your library a charm to test. DummyWorker that sends a message back to testing process instead of performing a real action.

▸ https://rocket-science.ru/hacking/2022/01/30/help-to-test-your-library

Video explainer - What Is: Elixir

Put together this video to try and explain Elixir to developers that aren’t familiar. Please share it to those who have expressed interest and you think could benefit. By underjord.io

https://youtu.be/2uvScmCrouk

REnum 0.7.0 has been released! ~REnum is Enum extended with convenient functions inspired by Ruby and Rails ActiveSupport~

In this release, we have expanded the convenience functions related to Range.

This almost completes the expansion of major Enumerables such as Enum, List, Range, Map.

Thanks😆

https://hex.pm/packages/r_enum

[Elixir Wizards S7E11] Arthi Radhakrishnan on the Value of Collaborative Learning for Software Engineers

“Hands down my favorite way to learn is through pair programming.” - Arthi Radhakrishnan joins us this week for a passionate conversation on the types of learning in the software industry that inspire her the most. https://smartlogic.io/podcast/elixir-wizards/s7e11-arthi/

And don’t forget to take our Audience Survey! https://smr.tl/survey

How to leverage from on_mount and reduce your code in LiveView

Phoenix LiveView has implemented some cool features, and one of them is the on_mount/1 callback function… https://til.simplebet.io/posts/emefbhudrx-how-to-take-leverage-from-onmount-to-reduce-code

Elixir Meetup #1 ▶ Hosted by Curiosum

1st Elixir Meetup hosted by Curiosum

https://youtu.be/wz9aF0Kmwkk

Krzysztof Kempiński - RELIABILITY OF ELIXIR & ERLANG Michał Buszkiewicz - DEBUGGING ELIXIR CODE - THE TOOLS, THE MINDSET Szymon Soppa - STRUCTURING ELIXIR & PHOENIX PROJECT - OUR APPROACH

REnum 0.6.0 has been released!

In this release, we have expanded the convenience functions related to Map. Also, I changed the README. I’ve made a lot of examples, so I hope you’ll take a peek and think, “This is convenient!” https://hexdocs.pm/r_enum/readme.html

About RMap

RMap is Map extended with convenient functions inspired by Ruby and Rails ActiveSupport. All the functions are available defined in

dig/2

Returns the object in nested map that is specified by a given key and additional arguments.

iex> RMap.dig(%{a: %{b: %{c: 1}}}, [:a, :b, :c])
1

iex> RMap.dig(%{a: %{b: %{c: 1}}}, [:a, :c, :b])
nil

each_key/2

Calls the function with each key; returns :ok.

iex> RMap.each_key(%{a: 1, b: 2, c: 3}, &IO.inspect(&1))
# :a
# :b
# :c
:ok
# See also RMap.Ruby.each_value, RMap.Ruby.each_pair

except/2

Returns a map excluding entries for the given keys.

iex> RMap.except(%{a: 1, b: 2, c: 3}, [:a, :b])
%{c: 3}

invert/1

Returns a map object with the each key-value pair inverted.

iex> RMap.invert(%{"a" => 0, "b" => 100, "c" => 200, "d" => 300, "e" => 300})
%{0 => "a", 100 => "b", 200 => "c", 300 => "e"}

iex> RMap.invert(%{a: 1, b: 1, c: %{d: 2}})
%{1 => :b, %{d: 2} => :c}

values_at/2

Returns a list containing values for the given keys.

iex> RMap.values_at(%{a: 1, b: 2, c: 3}, [:a, :b, :d])
[1, 2, nil]

deep_atomlize_keys/1

Returns a list with all keys converted to atom. This includes the keys from the root map and from all nested maps and arrays.

iex> RMap.deep_atomlize_keys(%{"name" => "Rob", "years" => "28", "nested" => %{ "a" => 1 }})
%{name: "Rob", nested: %{a: 1}, years: "28"}

iex> RMap.deep_atomlize_keys(%{"a" => %{"b" => %{"c" => 1}, "d" => [%{"a" => 1, "b" => %{"c" => 2}}]}})
%{a: %{b: %{c: 1}, d: [%{a: 1, b: %{c: 2}}]}}
# See also RList.ActiveSupport.deep_symbolize_keys, RList.ActiveSupport.symbolize_keys, RList.ActiveSupport.deep_stringify_keys, RList.ActiveSupport.stringify_keys,

deep_transform_keys/2

Returns a list with all keys converted to atom. This includes the keys from the root map and from all nested maps and arrays.

iex> RMap.deep_transform_keys(%{a: %{b: %{c: 1}}}, &to_string(&1))
%{"a" => %{"b" => %{"c" => 1}}}

iex> RMap.deep_transform_keys(%{a: %{b: %{c: 1}, d: [%{a: 1, b: %{c: 2}}]}}, &inspect(&1))
%{":a" => %{":b" => %{":c" => 1}, ":d" => [%{":a" => 1, ":b" => %{":c" => 2}}]}}
# See also RList.ActiveSupport.deep_transform_values

Come join our team at Enzai!

AI is sh*t scary. Let’s do something about it! We’re Enzai, and we’re on a mission to make sure artificial intelligence is safe and sustainable for the future.

Full description: https://github.com/enzai-technologies/public/wiki/Full-Stack-Developer-2022

Do you like Pokemon?

PokeMake is Command line tool to decorate your make commands with Pokemon made by Elixir. demo

Installation

$ brew install tashirosota/homebrew-tap/poke_make

Usage

$ poke -h
usage: poke [version | -v | --version]
           [help | -h | --help]
           <make command>

poke <make command> is to start make <make command>
$ cat Makefile
hello:
    echo hello
$ poke hello
# call make hello with pokemon ascii art.

Links

REnum 0.5.0 has been released.

REnum is Enum extended with convenient functions inspired by Ruby and Rails ActiveSupport. It also provides full support for native functions through metaprogramming.

Links:

Usage

carbon

Owl v0.2.0 - a toolkit for writing command-line user interfaces in Elixir

I didn’t post here the first announcement, so will start straight with v0.2.0 :)

Links:

Demo

asciicast

Changelog

Enhancements

  • Add Owl.Spinner widget with multiline frames support. asciicast
  • Support new sequences:
    • :blink_slow
    • :blink_rapid
    • :faint
    • :bright
    • :inverse
    • :underline
    • :italic
    • :overlined
    • :reverse
  • Add Owl.LiveScreen.await_render/1 function.
  • Add Owl.Data.tag/2 and Owl.Data.untag/2
  • Add padding_x, padding_y and padding options to Owl.Box.new/1
  • Calculate paddings and border size as a part of min/max width/height.
  • Align numbers in Owl.IO.select/2 and Owl.IO.multiselect by right-hand side.
  • Allow passing editor cmd to Owl.IO.open_in_editor/2 explicitly.
  • Add ability to specify primary and alternative answers in Owl.IO.confirm/2
  • Deprecate Owl.Tag.new/2. Owl.Data.tag/2 should be used instead.

Bug Fixes

  • They are present, but they are too small to be listed here

Securing Your Phoenix LiveView Apps

Explore how to group live routes in a secure live session and use function plugs to secure your live view routes.

https://blog.appsignal.com/2022/01/25/securing-your-phoenix-liveview-apps.html

ThinkingElixir 083: Zig and Zigler with Isaac Yonemoto

In episode 83 of Thinking Elixir, We talk with Isaac Yonemoto about the Zig language and his Zigler Elixir library. We learn where Zig came from, why it is capturing people’s interest, and how Zigler makes it easy to write native, cross-compiled NIFs in Elixir. At the end we shift into talking about his OpenAPI Elixir project that comes at the problem from a different direction than others. A fun get-to-know-you with Isaac and a great look into Zig and where it might go with Elixir in the future.

https://podcast.thinkingelixir.com/83

Play Wordle made with Phoenix LiveView

Everyone is playing Wordle, so I played with Phoenix LiveView and made a copy of this game with our amazing real-time experience.

Have fun and Happy coding!

Taking LiveView's JS commands for a spin

I’m excited about LiveView’s JS commands (introduced in 0.17). Wanted to test them out and wrote a short post.

✍️ https://www.germanvelasco.com/blog/taking-liveview-js-commands-for-a-spin

Come work with us at Team Engine

We’re a small team building a web app for managing film and TV productions, used by major studios as well as indie productions based in the UK.

More info: https://tinyurl.com/engine-elixir-job-description2

Event Driven Elixir

Over Christmas break - I had the opportunity to pick up Elixir- a fascinating programming language based on the Erlang VM. It has many interesting features such as a very unique concurrency model, built in distributed computing semantics and even basic tcp messaging. I took a stab at integrating it with the Solace PubSub+ event broker to make it even more powerful, you can read the results of my adventure below…

https://tkthetechie.io/event-driven-elixir/

How to process Phoenix conn after render before it is sent as a response

There are a bunch of operations you may want to perform before the rendered response in conn is sent to the client, such as minification. Check how to do it easily! https://curiosum.com/til/process-phoenix-conn-after-render-response

Estructura :: set of extensions for Elixir structures

Estructura conditionally brings to structs Access, Enumerable, and Collectable implementations, coercion, validations and test data generation via StreamData.

▸ https://hexdocs.pm/estructura
▸ https://github.com/am-kantox/estructura

Previous page Next page