A brief description of how I made testing a charm with stream data generators supplied with my estructura library| rocket-science.ru
DIY Message Broker| ❖ |> 🌢
One of my friends pointed me to the solution of kinda popular nowadays interview task. It is “How would you design an URL shortener service like TinyURL?”| ❖ |> 🌢
Probably, the most irritating expierence in immutable languages for those coming from the OOP, would be updating the deeply nested structures. I have answered a ton of questions on StackOverflow related to how to deal with GraphQL-like structures.| ❖ |> 🌢
Last several months I’ve been lazily working on markdown parser. My goal was not to compete with earmark or any other markdown parser already existing in the wild. Even more, from the day one I knew I am not going to make it fully compatible with Commonmark. What I actually was after would be to produce a blazingly fast, customizable markup parser.| ❖ |> 🌢
Elixir 1.11 brought to us (amongst other very exciting features) is_struct/2 guard. It, by the way, might have been used as an example of more straightforward not backward compatible alternative in my yesterday’s writing, but I avoided it for a reason that will become clear below.| ❖ |> 🌢
Starting with Elixir 1.11 / OTP 23, one can easily define a guard to check the argument is a particular struct. That might be handy in rare cases when the single function clause is ready to accept a mixed argument, and pattern matching directly on the argument would not work.| ❖ |> 🌢
All I am going to say is biased and opinionated. Everyone is free to shut up and disagree.| ❖ |> 🌢
12 Jul 2018 the project :telemetry got its first initial commit. It was pushed by Arkadiusz Gil but the README states“Telemetry is copyright (c) 2018 Chris McCord and Erlang Solutions” and the last commit ATM was made by José Valim.| ❖ |> 🌢
There was a question published yesterday on Stack Overflow, asking| ❖ |> 🌢
Almost each successful business application sooner or later enters the phase when the horizontal scaling is needed. In many cases one might simply launch the new instance and decrease the average load. In most cumbersome cases we must ensure different instances know about each other and distribute the workload gently.| ❖ |> 🌢
Elixir provides MapSet module to handle sets—lists of unique elements (shall I say “arrays” instead of lists here?). They are very handy under many circumstances. During my work on the minor update in Exvalibur, I changed the list I mistakenly used before to be MapSet. And there was a pitfall. Everywhere is the code I used different function clauses for empty list. But MapSet is a module. That said, this code| ❖ |> 🌢
The detailed how-to on dealing with strings having accents nowadays| rocket-science.ru
How to make your application to easily support plugins| rocket-science.ru
Macro to the rescue: how to build the nested function call dynamically with a bit of metaprogramming| rocket-science.ru
One small step towards backward compatibility, one giant leap for mankind| rocket-science.ru
The library providing easy maintaining of the self-expiring cache for several time series| rocket-science.ru
A humanitarian story about how I decided to write my own markdown parser with a customizable grammar and how it went| rocket-science.ru
What would happen if there in the Poetry Industry the interviews were done the same way as in IT| rocket-science.ru
Property testing gives way more assurance in many cases than other testing techniques| rocket-science.ru
Quick and dirty howto on setting Github CI for Elixir projects| rocket-science.ru
2025| rocket-science.ru
When talking about erlang/elixir, people usually come up with three main associations: lightweight processes, an actor model, and fault tolerance. Erlang made it possible to run hundreds of thousands (with fine—tuning of a virtual machine, millions) of “processes” (what were later called greentreads, and even later goroutines)—almost forty years ago. Joe Armstrong, in his dissertation, half-jokingly characterized language through the catachresis of everything is a process. With the ac...| rocket-science.ru
Finitomata ships with a testing framework| rocket-science.ru
Why would one use Finite Automata for almost anything having state| rocket-science.ru
Перевод текста Балдура Бьёрнасона «Writing when tech has broken the web’s social contract»| rocket-science.ru
Synchronization points: the proper way to test FSM in details of how to control data flow (opinionated approach)| rocket-science.ru
A new library to manage statefull processes as Finite Automatæ and the impudent proposal for the HTTP verbs extentions| rocket-science.ru
How to make your library a charm to test with a minimal effort| rocket-science.ru
Elixir library for customizable blazingly fast markup parsing with callbacks| rocket-science.ru
A rant on why I do not use IDE (and think that IDE hinders the good developers more than helps)| rocket-science.ru
A rant on why I do not like donate-based reward systems in OSS| rocket-science.ru
DynamicManager provided by Tarearbol is extremely handy for FSM implementation| rocket-science.ru
DynamicManager provided by Tarearbol is extremely handy for handling asynchronous responses from external services| rocket-science.ru
Tempus is a library to deal with time slots, like doctor appointments and/or room reservations| rocket-science.ru
Use asynchronous traversal of a branched state graph to find a solution of a Lewis Carroll’s favorite puzzle| rocket-science.ru
Use metaprogramming to deal with erlang typespec at runtime| rocket-science.ru
Use metaprogramming to generate nifty types for generated structures| rocket-science.ru
Prove of that Elixir/Erlang can be not a mile behind C/Haskell| rocket-science.ru
What to look at when you interview people (spoiler: not their imminent knowledge)| rocket-science.ru
The FSM implementation that’s worth it to give a try| rocket-science.ru
“I’m back in USSR,” or the censorship to better maintain diversity| rocket-science.ru
The proper way to use FSM to control data consistency (opinionated approach)| rocket-science.ru
Не слишком технический рассказ о том, как я решил написать свой парсер маркдауна с настраиваемой грамматикой и что из того вышло| rocket-science.ru
The FSM implementation that exposes proper documentation| rocket-science.ru
handy way of making tuples enumerable| rocket-science.ru
that is not widely known, but an Either monad is already presented in Elixir| rocket-science.ru
what is the difference between an elegant hack and a nasty kludge on a linguistic example| rocket-science.ru
nifty trick that provides the same functionality as [not existing] is_empty guard| rocket-science.ru
copy-paste solution to start using credo linter in git pre-commit hook| rocket-science.ru
tiny library that provides the same binding mechanism as quote bind_quoted: [] does| rocket-science.ru
compile-time generated set of modules to ease an access to a predefined subset of UTF8 symbols| rocket-science.ru
building a robust FSM for a workflow| rocket-science.ru
How to see what erlang code was compiled to run your Elixir project| rocket-science.ru
At work, we have a slack channel named “morethings” where all team members are| rocket-science.ru
A response to “Clarity over brevity in variable and method names” by DHH| rocket-science.ru
How to memoize the function in Elixir| rocket-science.ru
How to tune up your project environment in Elixir| rocket-science.ru
How to pattern match a protocol in Elixir| rocket-science.ru
How to bulk pattern match structs in function clauses in Elixir| rocket-science.ru
Cumbersome pattern matching might be way better than parsing strings with regexps| rocket-science.ru
A list of some less evident advantages of immutability| rocket-science.ru
A couple of examples of flip-flop real applications| rocket-science.ru
A less known patter matching feature in Elixir| rocket-science.ru
How to stop procrastinating and start to be a good developer| rocket-science.ru
What operators can be used in Elixir for pipelining and how| rocket-science.ru
The tiny library (200 LOC) to iterate/map/filter deeply nested structures in Ruby| rocket-science.ru
The tiny elixir library to iterate/map/filter deeply nested structures in Elixir| rocket-science.ru
Why do I consider using if operator to be a code smell| rocket-science.ru
The selected challenges from our company’s weekly Monday greeting| rocket-science.ru
Publishing and subscribing to events with ease| rocket-science.ru
Tarearbol gracefully uses Envío’s functionality to subscribe to task execution results| rocket-science.ru
Ruby anti-pattern: cross references inside the same table must be avoided| rocket-science.ru
Don’t blindly follow the paradigms. Here is why.| rocket-science.ru
Dry-behaviour ruby library implementing Elixir protocols for Ruby going towards 1.0 release| rocket-science.ru
RFC for implementing API HTTP responses in 6xx codes area| rocket-science.ru
Hacky implementation of Elixir-like specs in pure ruby with examples| rocket-science.ru
The most intelligent library to process CSV files| rocket-science.ru
When in any incomprehensible situation—raise! Do not let the uncertainty propagate through.| rocket-science.ru
We developers tend to whine and claim for better life while we are extremely overpaid for doing neither complicated not important stuff| rocket-science.ru
Ruby REPL “pry” is way more powerful than “irb” and might be even better tuned| rocket-science.ru
The most intelligent library to process CSV files| rocket-science.ru
Quick how-to on bringing some ActiveRecord goodness into Elixir/Ecto| rocket-science.ru
Better and faster way to implement validation of incoming data than just looking it up in the global config map| rocket-science.ru
Use generated module with pattern matching clauses and guards to validate any input given as a map| rocket-science.ru
Why Abstract Syntax Tree is a core feature of any modern language| rocket-science.ru
Simple way to make the struct all Enumerable, Collectable and Accessable| rocket-science.ru
Exvalibur does now allow custom guards and pattern matching of values| rocket-science.ru
The step-by-step explanation of why Go language is not good at all| rocket-science.ru
How to make custom macro `use` calls safer by checking the conditions met| rocket-science.ru
How to expose some read-only data from the already existing Elixir application with zero code| rocket-science.ru
The main advice on how to keep a supervision tree immune to members crashes| rocket-science.ru
Using Iteraptor in test environment to test deeply nested maps/lists passed as JSON| rocket-science.ru
The beginner-friendly explanation of what concurrency is and why it ever matters| rocket-science.ru
Tiny library adding validation support, reasonable Access and Collectable implementations and more to Elixir Structs| rocket-science.ru
nil / null is a perfectly valid useful first class citizen in many languages, and here is why| rocket-science.ru
Imagine what could happen if a standalone GenServer came to the therapist's appointment| rocket-science.ru
Minimizing the boilerplate across your in-house library / applications is easy| rocket-science.ru
Post-mortem of one internal discussion on whether or not everything must be covered with tests| rocket-science.ru
How I implicitly helped Joe Armstrong a while ago| rocket-science.ru