Email or username:

Password:

Forgot your password?
9 posts total
Aleksei Matiushkin

Rambla is published with:

▹ full support of asynchronous guaranteed message delivery to Rabbit, Redis, S3, HTTP, SMTP + custom plugins ▹ infrastructure to ease testing on any granularity level (the target service mocks vs. on_publish/3 mocks) ▹ based on Finitomata.Pool to ensure the delivery. Channels allow publishing to several destinations at once (as per configuration.)

Aleksei Matiushkin

I am proud to finally introduce fully distributed, zero-effort scalable FSM aka Finitomata implementation. With Infinitomata being a drop-in replacement of Finitomata, one might scale the processes running FSM by adding nodes to the cluster. Technically, every process might be easily converted to FSM, making it drastically easy to scale without any effort (well, almost :)

https://elixirforum.com/t/finitomata-fsm-boilerplate-based-on-callbacks/46933/7?u=mudasobwa

Aleksei Matiushkin

I have the strongest opinion, that library authors must provide the Test API alongside the Code API.

The OSS library authors must supply the framework to make testing external code that uses their library a charm.

That’s how my library Finitomata talks to the code users who have not figured out yet how to use the testing framework shipped with Finitomata.

Aleksei Matiushkin
What I hate in OTP is the application might have been rotting from an exorbitant load, crashing processes and failing in all possible ways, and still your metrics would look like “it’s slightly slower than yesterday.”
Aleksei Matiushkin

On a scale from
On Error Resume Next
to
if _, err := f(); err != nil {}
how ugly your error handling is?

Aleksei Matiushkin
In case somebody is not aware, Brave browser has this speedreader feature and it’s absolutely amazing.

https://support.brave.com/hc/en-us/articles/360045031392-What-is-Speedreader-
Aleksei Matiushkin

I have created a helper for working with MapSet.

import MapSetEx
now = DateTime.utc_now()

checker = fn 
  mapset when is_empty_mapset(mapset) -> :empty_mapset
  mapset when mapset_size(mapset) == 3 -> :mapset_with_three_elements
  mapset([^now]) -> :now_mapset
  %MapSet{} -> :mapset 
  _ -> :unknown
end

checker.(MapSet.new([]))
#⇒      :empty_mapset
checker.(mapset([now]))
#⇒      :now_mapset

Gist: https://gist.github.com/am-kantox/03325197ff9608dfa83457dbe0d144e9

Go Up