LiveView Talk at Empex 2019

May 18, 2019

My talk at Empex 2019 is Live(View). Click on Read More to get the links to related articles and GitHub Repos.

Andrew Forward's talk on LiveView at Empex 2019

Phoenix LiveView Examples

May 29, 2019 (originally posted May 18)

LiveView for Phoenix on Elixir is definitely scratching an itch in the world of rich client apps, without having to go full-on client-side framework. Here’s a list of open source projects, some with online demos and other where you can (easily) run the code locally.

ScreenshotDescriptionReferences
Empex DisplayManipulating a SVG graphic for the 2019 Empex NY conferenceEmpex SVG Demo
Empex SVG Source

HackerRank Template in Elixir

May 27, 2019

Here’s a template for answering HackerRank in Elixir. This is based on the Two Character question

defmodule Solution do
  def go() do
    num = input(:int)
    text = input(:string)
    IO.puts("INPUTS #{num} and #{text}")
  end

  def input(:string), do: IO.read(:line) |> String.trim()
  def input(:int), do: input(:string) |> String.to_integer()
end

# Now run your code
Solution.go()

Now go forth and HackerRank!!!

LiveView storing Session Data on Redirect

May 21, 2019

How can you have your LiveView login form update the user’s session across pages?

Adding authenticated user to flash

Run Custom JS on LivePage Reload

May 20, 2019

In your LiveView LEEX, you can add a script tag and append a @tick to the id. This will force for the MorphDOM differ to always re-render (aka re-run) that code on the client.

Create a script with tick ID

Continuous Testing with Elixir

Dec 2, 2015

There is great power in having your tests always run, all the time when writing code, it stops the minor interruptions.

$ mix test.watch

Running tests...
..................................................
..................................................
....
Finished in 0.04 seconds (0.04s on load, 0.00s on tests)
104 tests, 0 failures
Randomized with seed 386800

Tags:

Simple encryption in Elixir

October 24, 2015

Of course you don’t know anyone that actually stores user passwords in plaintext, or database passwords directly in a repository, so this is more for those theoretical developers to provide them with just a little bit more security; without adding much more complexity.

# Encrypt a password and store it in pwd
iex> pwd = Safetybox.encrypt("helloworld")
"fc5e038d38a57032085441e7fe7010b0"

# Later on, you can validate the user provided password
# against the encrypted stored password
# Oopses, not the same
iex> Safetybox.is_decrypted("goodbyeworld", pwd)
false

# Ok, validated!
iex> Safetybox.is_decrypted("helloworld", pwd)
true

Tags: