An Opinionated Way of Organizing GraphQL APIs using Absinthe and Phoenix
REST has been the predominant architectural choice for API development on the web. GraphQL being the new kid in town has been continually gaining traction over the last few years as an alternative way to build APIs. GraphQL is - "A query language for...
A picture's worth a thousand words. It can be confusing to explain to a LiveView newbie just what the lifecycle of a LiveView process looks like. I made a flow chart to help visualize how an HTTP Request becomes a stateful LiveView
How can I measure the similarity between two images?
I would like to compare a screenshot of one application (could be a Web page) with a previously taken screenshot to determine whether the application is displaying itself correctly. I don't want an...
Given a set of r random values from a large set (of size N), I have been using the formula 1-exp(-r**2/(2N)) to approximate the probability of a collision. It assumes that r is much smaller than N. The formula suggests that if you have hundreds of millions of random 64-bit numbers, you will start getting … Continue reading How accurate is the birthday’s paradox formula?
Building Self-referential Associations in Elixir/Phoenix
Self-referential association is used to associate a model with itself. It's pretty common to have this kind of association to build relationships in today's social media applications - Twitter, Mastodon, Facebook, etc. However, the association model ...
If you take a square and rotate it 90 degrees, you get back an identical square. We say the square is rotationally symmetric. Similarly, if you reflect it...
Coding of domain names to wire format at gigabytes per second
When you enter in your browser the domain name lemire.me, it eventually gets encoded into a so-called wire format. The name lemire.me contains two labels, one of length 6 (lemire) and one of length two (me). The wire format starts with 6lemire2me: that is, imagining that the name starts with an imaginary dot, all dots … Continue reading Coding of domain names to wire format at gigabytes per second