Recent posts
Java Streams are not for Seniors
A few days ago I stumpled upon this LinkedIn post (in Spanish, but easily understandable) including this image with two solutions to the same problem:
This isn’t a new topic, as the doubts about Java Streams, how they work and when to use them are very common. But I don’t think it has to do with seniority.
The Streams API is not a “clever construct to hide loops” that only senior developers undestand, but probably the greatest revolution ever implemented in the Java language.
read more
Implement TextRank algorithm in TypeScript
TextRank algorithm was introduced by Rada Mihalcea and Paul Tarau in their paper “TextRank: Bringing Order into Texts” in 2004. It applies the same principle that Google’s PageRank used to discover relevant web pages.
The idea is to split a text into sentences, and then calculate a score for each sentence in terms of its similarity to the other sentences. TextRank treats sentences having common words as a link between them (like hyperlinks between web pages).
read more
Design your events granularity
What events should my component publish? Not always an easy question to answer.
Software design is a continuous task. You never finish a software project, because it needs to evolve as the team’s knowledge about the problem it solves grows. This is why one of the principal characteristics of good software is being easy to change.
In an asynchronous software architecture, the events that a component publishes define its contract with the other components in the system.
read more
Deep Learning with TypeScript
My implementation of an Artificial Neural Network with BackPropagation learning support. You can find my Spanish article on Deep Learning and BackPropagation here.
read more
A Twitter bot to create threads from web pages
@ThreaderBot listens for Twitter mentions. When someone sends it a link, the bot will:
Download the content of that link Extract and clean the text Summarize the text into up to five sentences using the TextRank algorithm Answers the Twitter mention with a thread including the generated summary. The bot is developed in PHP with Symfony, and runs as a cron job in a Raspberry PI.
read more
A JSON Schema to Bytecode compiler
API-First development (also known as Contract-driven development) starts by designing and documenting the contracts between the components that build your system (services, user interfaces, third party providers, etc.) before writing the source code.
There are many benefits to this approach. Some of the main ones include:
Central Source of Truth: The API specification serves as the definitive guide for component behavior, simplifying testing and validation. Parallel Development: Provider and consumer components can be developed simultaneously.
read more