Blockchain is a scorching topic in computer science these days. It becomes famous in 2008 thanks to the Bitcoin cryptocurrency, which (as you may know) uses a Blockchain to record every transaction into a public distributed ledger. But… how much do we know about Blockchain? I mean, what if we want to understand how Blockchain works and what makes it so powerful? How should we start? Let’s begin with the basics!
A Blockchain is literally a chain of blocks, where a block is a piece of information stored inside a public database, the chain. …
Don’t get scared by RegEx! They are easier than you think!
In computer science, some topics may sound scarier than others. Regular Expressions, in detail, may sound incredibly scary at first… but once you got it, you’ll find ’em incredibly easy and useful!
First of all: what is a RegEx? A Regular Expression is a sequence of characters that define a search pattern.
Let’s take an example: we have a string containing both numbers and letters, and we want to delete every non-letter character.
How can we delete every number from this string? …
Some thoughts about the “how would you recommend to begin with FP?” question after my speech at Codemotion 2019 in Milan.
On the 24th of October 2019, I made my first speech at the Codemotion conference in Milan, Italy. I talked about functional programming and how it can make our life easier when dealing with complex real-world problems such as maintainability, scalability, and error handling.
Many people asked me, “how would you recommend beginning with FP?” The answer is straightforward. If the same question were asked in the ’80s, my answer would be completely different. …
After some time working with different programming languages, I started to think about building my own language. That’s what I came up with!
I’ve always been fascinated by programming languages.
Every programming language brings its own syntax, semantic, and paradigm.
If you have to choose how to implement your own programming language, how would you do it?
Here’s my idea of Inferi, a FLIP (Functional Light Imperative Programming) programming language.
Inferi is a statically typed programming language. It uses the Hindley Milner type…
Building high-quality REST and GraphQL APIs is hard. But there’s an easy way to get started in a few minutes.
One year ago, I started to develop the backend for a quite popular website. I’ve tried different approaches, different technologies, and even different programming languages. Then I started to look for a CMS that could help me integrate several features with ease… but I couldn’t find a CMS that satisfied me. Then I discovered Strapi, an amazing open-source headless CMS that had everything I was looking for. …
During the last years, I had the opportunity to experiment with different programming languages.
I really like to learn different languages, approaches, and paradigms. I’m an inquisitive person, and programming languages have always fascinated me.
Every language is different, and here I’d like to add some considerations about what I liked and what I hated about the five languages that I’ve worked with.
Full-text search can be both scary and exciting. Some popular databases such as MySql and Postgres are an amazing solution for storing data… but when it comes to full-text search performances, there’s no competition with ElasticSearch.
For those who don’t know, ElasticSearch is a search engine server built on top of Lucene with amazing distributed architecture support. According to db-engines.com, it is currently the most used search engine out there.
In this post, we will build a simple REST application called The Quotes Database which will allow us to store and search as many quotes as we want!
A Monoid is a set that is closed under an associative binary operation and has an identity element. Wait, what? Let’s explain this to the 10 years old me!
Some years ago, I started to code using the functional paradigm in Node.js and Elixir. When you try to switch from a non-pure functional language to a pure one (such as Haskell), you can find some scary concepts like Functors (we talked about them previously) and Monoids.
What if I tell you that you’re already using them? What if I tell you that you’ve always used them without knowing it? …
Some time ago, I had the opportunity to work on a fascinating project. We needed a way to expose REST APIs about Google Analytics data, but we had some big problems with the free Google Analytics version.
First of all, the retention period. At the time of writing, Google Analytics (free plan) has a retention period of 26 months. Of course, you can extend that retention period, but it has some downsides (read more here).
Write a compiler for a programming language that has only eight commands. It will be fun, I promise!
First of all: what the heck is “Brainfuck”?! Well, Brainfuck is an esoteric programming language composed of just 8 commands:
> < + - . , [ ].
Wait, how can a programming language work with just eight characters? Well, the computer works with just
1's, so we have other 6 characters to use!
Brainfuck is a Turing-complete programming language, so you can really do an incredible amount of things in it! But how does it work?
Brainfuck operates on…
Senior Software Engineer @ViacomCBS ~ He/Him ~ Twitter: @MicheleRivaCode