Connecting thoughts

Articles written by SINAPTIA about Development.

Tree structures in Rails

Tree structures are a common way of organizing hierarchical data. In this post, we’ll explore existing solutions for Ruby on Rails, their benefits, drawbacks, and when to use them.

Patricio Mac Adden
Dec 12th, 2024

This week in #devs - Issue #4

Welcome to the fourth issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Nov 13th, 2024

This week in #devs - Issue #3

Welcome to the third issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Oct 25th, 2024

This week in #devs - Issue #2

Welcome to the second issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Oct 14th, 2024

This week in #devs - Issue #1

Welcome to the first issue of “This week in #devs”, a series of posts where we share articles, thoughts, and conversations that happen in our #devs channel on Slack.

SINAPTIA
Oct 4th, 2024

Debugging a memory-leaking action

This week we had to refactor a feature in one of the Ruby on Rails apps we’re maintaining. While at it, we discovered it was leaking memory, making the memory usage ramp up exponentially. With our expertise and the help of some tools, we were able to identify the root cause and fix the issue. Read on to learn more about how we approached this problem.

Patricio Mac Adden
Sep 26th, 2024

Rediscovering fixtures

Over the last couple of months, I’ve been investing a lot of time in improving my testing skills. I spent most of this time in going back to the basics, trying to start from scratch with every little concept one takes for granted. Trying to see everything through a child’s eyes. And today I’m rediscovering fixtures.

Patricio Mac Adden
May 27th, 2024

Guidelines for writing better specs

In our last couple of posts, we’ve been reviewing common problems with long-living RSpec test suites and contrasting them against Minitest and the four-phase testing strategy. There are situations where migrating to Minitest is safer and possible, but what can we do if we are still using RSpec and changing it is not an option?

Fernando Martínez
Mar 26th, 2024

Make minitest/unit Great Again

This sentence is wrong but funny. Minitest has always been great. In our last post, a situation made me think if I should be critical about how I test (and testing in general) and if I should do something about it. This is what happened next.

Patricio Mac Adden
Mar 18th, 2024

Don't over-engineer your tests

I’ve used RSpec for years, and until recently I had to work with a colleague that never really tested before. This process made me think if I should be critical about how I test and if I should (or shouldn’t) do something about it.

Patricio Mac Adden
Mar 6th, 2024

Optimizing background jobs execution with Delayed::UniqueJob

Delayed Job doesn’t have a mechanism for defining unique jobs. Enqueing a time-consuming or resource-intensive job multiple times could be harmful if not treated accordingly. Introducing Delayed::UniqueJob, a Ruby gem for defining unique jobs in Delayed Job.

Esteban Debole
Feb 15th, 2024

A remote require for Ruby

I have been fascinated by Deno’s remote import since I discovered it. Experiment with me on how to make a remote require for Ruby based on Deno’s remote import.

Patricio Mac Adden
Feb 7th, 2024

A discussion around Integer division in Ruby

We will explore Ruby’s division behavior and analyze several alternatives to obtain a true division.

Nazareno Moresco
Jan 31st, 2024

Lesson learned: sharing context with Flutter dialogs

In Flutter, dialogs don’t automatically share the context with the parent widget. We found out while implementing providers. Learn how to solve the problem.

Nazareno Moresco
Dec 13th, 2023

Reimplementing a broken search engine

We’ve been working with a boat marketplace for a year now. One of the most interesting challenges we faced during this time was reimplementing their broken search engine. This is how we did it.

Enzo Díaz
Nov 30th, 2023

What is a Skeleton Screen? A real-life Flutter example

Even though our primary focus is Ruby on Rails, we’re developing one Flutter application. In this project, we implemented a Skeleton Screen to enhance the app’s professional appearance during data loading. What is a Skeleton Screen and how did we implement one?

Nazareno Moresco
Nov 22nd, 2023

Why Ruby on Rails is still great for MVPs

Ruby on Rails remains a great framework for developing web applications. Thanks to its maturity and philosophy, one can build MVPs in a fast, efficient, and scalable way. Discover why Rails continues to be a great and influential framework to this day.

Patricio Mac Adden
Nov 15th, 2023

Is Ruby on Rails secure?

This is one of the most frequently asked questions from people who want to build an MVP with Ruby on Rails.

Patricio Mac Adden
Oct 11th, 2023

Function Currying: A real-life use example

Moving your functions from a component to a separate file can improve readability and organization, but what happens when the data you need is outside the scope? In this article I will show you how I solved this problem with function currying.

Agustín López
Sep 27th, 2023

la_plata.rb September meetup

On 14th September, another la_plata.rb meetup occurred. We had some fun and learned some new things. Here’s a recap.

Patricio Mac Adden
Sep 20th, 2023

Talking to hostile APIs

APIs allow us to communicate with third-party software in order to use their services and data. In today’s software, it’s almost impossible not needing to use one, one way or another. What if they are hostile?

Patricio Mac Adden
Sep 13th, 2023

Introducing Audited-UI

We’ve been using the audited gem for a couple of projects, but the lack of a built-in view to display the changes challenged us to write our engine. We are happy to introduce audited-ui.

Patricio Mac Adden
Aug 30th, 2023

Consequences of parrot-like APIs

Psittacism signifies repetitive speech in the manner of a parrot. Can APIs suffer from it and what are their consequences?

Nazareno Moresco
Aug 16th, 2023

Quality Assurance, the SINAPTIA way

Quality Assurance takes a key role in software development. In this post, we’ll share our Quality Assurance process that allows us to deliver quality software.

Emiliano Sanchez
Aug 9th, 2023

Using strong_params beyond mass assignments

Strong Parameters are typically used in Ruby on Rails for mass assignments, but in this article, we explore an additional use for this feature.

Nazareno Moresco
Aug 3rd, 2023

Don't do this at home

Service objects is a Ruby on Rails pattern widely used. In this post, I’ll show you one example I stumbled upon recently. What’s wrong with it and how did we fix it?

Patricio Mac Adden
Jul 26th, 2023

Quality Assurance automation on a serverless architecture

Nowadays, technology is evolving at an unprecedented rate, presenting us with new challenges and opportunities. One challenge is adapting to new architectures, and in this post, we will explore how we did QA Automation on a serverless architecture.

Emiliano Sanchez
Jul 12th, 2023

Nativifying a docker development environment

I’ve been working on docker exclusively since 2018. Besides its many benefits, it could be tiresome to type longer commands every single time. How do I do it without losing my mind?

Patricio Mac Adden
Jun 28th, 2023

React by example: Slider Panel

Slider panels are widely used nowadays. In this post, we’ll build a fully functional custom React slider panel with Tailwind. Ideal for overlay menus, navigation, content lists, or even forms or configuration panels!

Enzo Beducci
Jun 14th, 2023

Don't build lasting relationships with your components

Overcomplicated props, ingrowing learning curves, and eventual technical debts are symptoms that appear as new requirements emerge on a project. Design Systems evolve outgrowing our components, leading toward their end. How can we ensure that our components thrive against the design challenges we encounter daily?

Enzo Beducci
May 24th, 2023

Bringing a 10-year-old Ruby on Rails app back to life

Last week we published the case study of one of our first projects. After 10 years in the archive, I found and brought this old Ruby on Rails 4.0 application back to life.

Patricio Mac Adden
May 17th, 2023

Hybrid and Dynamic Database Multitenancy with Ruby on Rails

What is Hybrid and Dynamic Database Multitenancy and how to successfully achieve it with Ruby on Rails (> 6.0) and PostgreSQL? Our experience implementing a hybrid and dynamic database multitenancy system for one of the projects we’re involved in.

Nazareno Moresco
Apr 19th, 2023

Dynamic horizontal slider using React and custom hooks

A custom horizontal slider using React hooks to have full control over the design and behavior of the component. No more limitations!

Lucas Belenda
Apr 5th, 2023

Debunking myths about Ruby

There’s a lot of criticism of Ruby and Ruby on Rails. In this post, we will try and debunk four widespread myths about Ruby.

Patricio Mac Adden
Mar 29th, 2023

Why Ruby on Rails?

Ruby on Rails is our main tool for building MVPs and big web applications. There’s a wide array of myths about it online: that it’s old, or dead, or slow, that it’s not relevant anymore. We revisit our tech choice every year and we still chose Ruby on Rails. Here’s why.

Fernando Martínez
Mar 15th, 2023

Your old Ruby on Rails application sucks

Do you have a Ruby or Rails application in production for more than 4 or 5 years? Has the test suite crumbled to pieces because of too many broken or flaky tests that no one has time to fix? Do you feel your app needs a lot of love that no budget will ever be able to sustain? Read on to know what we do in these cases.

Fernando Martínez
Feb 15th, 2023

Upgrading Ruby on Rails applications

When maintaining Ruby on Rails applications, it’s always recommended to run the latest versions of the framework so it receives security patches and performance boosts from newer versions. In this post, we’ll see our way of upgrading Ruby on Rails applications.

Fernando Martínez and Patricio Mac Adden
Feb 1st, 2023

Mounting react components

Our approach to building modern React frontends within a Ruby on Rails monolith makes use of the best of both worlds.

Lucas Belenda
Oct 21st, 2021

A case against form objects

Based on Ruby on Rails examples, the core idea should apply to other languages and frameworks.

Fernando Martínez
Jun 24th, 2020

Docker in development: Episode 4

Continuing our Docker in development series, in this episode we will see alternatives so we can optimize our images.

Patricio Mac Adden
Mar 9th, 2020

Docker in development: Episode 3

Continuing our Docker in development series, in this episode we’ll be exploring how to perform everyday tasks in our containers.

Patricio Mac Adden
Feb 9th, 2020

Docker in development: Episode 2

Continuing our Docker in development series, in this episode we’ll dockerize a Ruby on Rails application.

Patricio Mac Adden
Jan 9th, 2020

Docker in development: Episode 1

In this series, we will explore the motivation and benefits of using docker in development. We are going to give everyday tips that helped us move forward using it, focused on Ruby on Rails and React development.

Patricio Mac Adden
Dec 18th, 2019