close navigation menu
27 de may. de 2021

Tecnología

Cómo empezamos a modularizar la aplicación de Fintual

Mientras más crece el código de una aplicación, más nos cuesta encontrar el archivo que queremos y es más difícil debuggear. Llega un punto en el que el código ha crecido tanto y maneja tantas funcionalidades que los equipos ya no pueden conocerlo entero y mantenerlo, en especial los desarrolladores nuevos. La curva de aprendizaje se empieza a complicar.

Evolución de la curva de aprendizaje del código de Fintual


El primer commit de Fintual fue hace 5 años. Hoy vamos en más de 33.500 commits y contamos con más de 435.000 líneas de código. Estamos en un punto de inflexión entre la posibilidad - o no - de tener programadores que conozcan prácticamente todo el código de Fintual. Y como estamos creciendo mucho en desarrolladores y en código, tuvimos que tomar una decisión de cómo manejarlo.

Crecimiento del código de Fintual construído con la herramienta git-of-theseus

En Fintual, toda nuestra aplicación corre en un monolito sobre Ruby on Rails (RoR). Este framework web, basado en el clásico Model View Controller (MVC), tiene la particularidad de que asume configuraciones y comportamientos estándar y potencia la reutilización de código. En palabras simples, hace muchas cosas como “magia” de la que no te tienes que preocupar.

Si conoces cómo funciona RoR, la magia es de gran ayuda. Permite desarrollar más rápido y con menos código. Esto, sumado a una estructura ordenada MVC, facilita un orden en los archivos y clases, en donde no es difícil encontrar dónde se hace cada acción, modificar y extender funcionalidades.

Pero cuando empiezas a crecer y el código se multiplica se complica la situación. Empezamos a generar namespaces para ordenar el código y a separar las responsabilidades de clases en otros tipos de componentes más allá de un MVC. En el monolito tenemos 19 tipos de componentes además de models-views-controllers.

Cómo manejar el crecimiento en código

La primera opción es separar al equipo en especializaciones de desarrollo y que cada equipo maneje su código. Es decir, subdividir en los clásicos teams de backend, frontend web y frontend mobile. Pero en Fintual somos todos Full Stack y no hay mucho interés en especializarse así por ahora. En realidad es bacán poder desarrollar una funcionalidad de manera completa. Da más sentido de pertenencia y el impacto percibido es mayor.

Otra opción es dividir el monolito en distintos microservicios, es decir, distintas aplicaciones modulares, donde cada una se ocupa de una tarea y estas se comunican entre sí para construir un producto final. Pero en Fintual no somos muy fanáticos de los microservicios y un approach monolítico nos ha funcionado mejor.

Andrés, CTO de Fintual, defendiendo a los monolitos

¿Qué hicimos entonces? Empezamos a modularizar la aplicación en distintos engines y gemas de RoR.

Engines y gems

Un engine es una especie de mini-aplicación web con prácticamente toda la API y estructura que ofrece Ruby on Rails. Es decir, puedes manejar controladores, modelos, vistas, rutas y migraciones y bases de datos tal como lo harías con una aplicación RoR normal.

Pero ojo. No es un microservicio, ya que lo usamos para extender nuestra main-app. Esto significa que el contenido del engine corre en el mismo servidor, dentro del mismo proceso y contexto y usa la misma base de datos que la main-app, añadiendo sus migraciones y clases. El ejemplo más conocido es el engine de autenticación Devise.

Por otro lado están las gemas. A diferencia de un engine, no necesitan el motor de Rails, sino que son plain Ruby. En otras palabras, no cuentan con un modelo MVC ni manejan bases de datos. Es útil cuando, por ejemplo, queremos construir un Toolkit de utilidades o hacer un wrapper de una conexión a un servicio externo.

La gracia de modularizar la aplicación en engines y gems está en que podemos aislar funcionalidades o comportamientos en “mini-proyectos”.

Por ejemplo, cuando alguien quiera hacer un cambio en la funcionalidad de Fintual del manejo de los fondos mutuos, basta con que vaya al engine de Accounting. Será mucho más fácil encontrar los archivos que debe revisar y modificar. Y más importante, cuando entra un dev nuevo puede comenzar por algunas funcionalidades - engines - en vez de volverse loco mirando una main-app gigante.

Cómo empezar con Engines y Gems

Ahora que conocemos estas alternativas, ¿cómo determinamos si conviene extraer un feature de la main-app a un engine o gem? Lo que hacemos en Fintual es evaluar si vale la pena pensar cada nuevo feature como una extensión de la main-app. En otras palabras, hay que preguntarse si es posible desenchufar esta funcionalidad de la main-app sin romperla.

Un ejemplo es nuestro feature de referidos, parecido al programa de afiliados de Shopify, Amazon y Uber. El programa de referidos permite a cada usuario recomendar Fintual a sus conocidos, y a cambio ganan un 1% del saldo promedio que mantienen sus referidos en su primer año en Fintual. Referidos es una funcionalidad completa que se podría encender y apagar sin afectar el core.

Y bueno, ¿cómo determinamos si hacerlo en una gema o un engine? Nos preguntamos si el feature que quiero desarrollar debe almacenar datos y tiene un comportamiento web. Si la respuesta es sí, entonces conviene desarrollar un engine. Si la respuesta es no y nuestra feature es lógica pura, basta con desarrollar una gema.

Continuando el ejemplo, el feature de referidos sería un engine, ya que tiene sus propios modelos de datos, controladores y vistas.

A medida que creamos nuevos engines nos dimos cuenta que podíamos abstraer gran parte del proceso, por lo que decidimos crear nuestro propio generador de engines. Si eres un desarrollador de Rails, te invitamos a usar y contribuir al desarrollo de esta herramienta mediante el repositorio que liberamos para el público general.

Un tema importante a tener en cuenta es el manejo de dependencias. En una gema es más simple, porque no suele depender de clases u objetos específicos de nuestra main-app. El lenguaje que habla es el de Ruby, recibiendo ciertos objetos estándar (un string o hash por ejemplo) y ejecutando cierta acción.

Pero un engine, dado que maneja controladores, rutas, vistas y modelos tal como lo hace nuestra main-app, puede que requiera interactuar con objetos de la main-app directamente. Por ejemplo, el engine Devise utiliza el modelo User de nuestra main-app para el manejo de los usuarios y lo extiende. ¿Cómo manejamos esta dependencia de manera correcta?

Una forma es definir las dependencias desde la main-app en el módulo principal del engine. Por ejemplo, el engine de referidos depende de los modelos de User y UserDeposit de la main-app y se construye así:

require "referrals/engine"
 
module Referrals
  extend self
 
  MODULE_DEPENDENCIES = %i{
    user_deposit_model
    user_model
  }
 
  mattr_accessor *MODULE_DEPENDENCIES
 
  def configure
    yield self
    require "referrals"
  end
 
  class << self
    MODULE_DEPENDENCIES.each do |symbol|
      define_method(symbol) do
        class_variable_get(:"@@#{symbol}").constantize
      end
    end
  end
end

De esta forma, cuando en la main-app inicializamos el engine de referidos, debemos setear estas configuraciones. Acá le decimos qué modelo de la main-app debe usar el engine.

Referrals.configure do |config|
  config.user_deposit_model = "UserDeposit"
  config.user_model = "User"
end

Luego podemos usar esta configuración dentro del engine. Por ejemplo, acá queremos obtener quién refirió al usuario actual, a partir de una búsqueda en el modelo User. Pero como no conocemos el modelo User directamente, usamos el que nos proporciona la configuración Referrals.user_model.

def referrer_from_code(referrer_code)
  Referrals.user_model.find_by(referrer_code: referrer_code)
end

Además, como un usuario puede referir, queremos que el modelo User tenga una relación de has_many con sus referidos. Podríamos ir al modelo User de la main-app y agregar la relación directamente, pero si desconectamos el engine, se rompería.

Para manejar esta dependencia correctamente, lo que hacemos es añadir dinámicamente funcionalidades a la clase User.

Referrals.user_model.class_eval do
  has_many :referred_users
end

Por último, aislamos la ejecución de código condicionado a la disponibilidad de un engine, para no romper nuestra main-app en caso de que una extensión no esté cargada. Una buena forma de hacerlo es crear un Util que verifique la presencia de un engine.

class EnginesUtil
  def self.with_available_engine(engine_name, &block)
    if available_engine?(engine_name)
      block.call
    end
  end
 
  def self.available_engine?(engine_name)
    Object.const_defined?("::#{engine_name.to_s.camelize}")
  end
end

Así, si por ejemplo en la vista del header, que está en la main-app, queremos agregar un botón a Referidos, tenemos que chequear que el engine esté presente y lo hacemos así:

if EnginesUtil.available_engine?(:referrals)
  link_to "Referidos", app_referrals_path
end

Con este approach hemos logrado hasta ahora extraer funcionalidades de la main-app a 23 engines y 3 gems. Si bien, aún nos queda bastante por modularizar, ya se nota mayor orden y desacoplamiento del código. Hoy es más fácil encontrar el archivo que tenemos que modificar cuando queremos resolver un bug o entender el contexto de funcionamiento cuando queremos agregar un nuevo feature.

Incluso para ordenarnos en lo que nos queda por modularizar, también recurrimos a un engine. El deprecated_main, al que movimos todas los componentes pendientes de extraer.

Pero lo más bacán es que cuando empezamos los proyectos recientes una de las principales discusiones es si se debe desarrollar el feature solicitado dentro de un engine o no. Así que no solo estamos ordenando el código pasado, sino también el que desarrollamos en el presente.  Ya existe una mentalidad de modularización en los desarrolladores de Fintual.


Si te gustó este artículo y tienes un comentario o algo para complementarlo, escríbenos a cartas@fintual.com. Todas las semanas publicamos las cartas destacadas de nuestros lectores.

LO ÚLTIMO DE ECONOMÍA

VER MÁS
ttecnologia prueba e home4

Economía

ttecnologia prueba e home4

por Manuel Becker Toro
prueba nuevo ssw

Economía

prueba nuevo ssw

por Manuel Becker Toro
ultimo de cache

Alpha

ultimo de cache

por Manuel Becker Toro
prueba cache

Economía

prueba cache

por Manuel Becker Toro
Inversión pasiva: historia y definiciones

Alpha

Inversión pasiva: historia y definiciones

por Fernando Suárez
Fintual Acciones: ¿vale la pena reconstruir a Norris?

Conocimiento Financiero

Fintual Acciones: ¿vale la pena reconstruir a Norris?

por Fernando Suárez
Entendiendo el déficit de cuenta corriente

Conocimiento Financiero

Entendiendo el déficit de cuenta corriente

por Priscila Robledo
¿Qué es un IPO? El boom del 2021

Conocimiento Financiero

¿Qué es un IPO? El boom del 2021

por Ronald Tichauer
Nuestros fondos más riesgosos tuvieron un buen día

Inversiones Economía

Nuestros fondos más riesgosos tuvieron un buen día

por Elena Villalón
El regreso del sector energético y la subida de sus acciones

Conocimiento Financiero

El regreso del sector energético y la subida de sus acciones

por Ana Sepúlveda
El regreso del sector energético y la subida de sus acciones

Conocimiento Financiero

El regreso del sector energético y la subida de sus acciones

por Ana Sepúlveda
¿Por qué Fintual ahora ofrece invertir en acciones sin cobrar comisión ni spread?

Inversiones

¿Por qué Fintual ahora ofrece invertir en acciones sin cobrar comisión ni spread?

por Agustin Feuerhake
El Santa de los grandes es el aguinaldo

Conocimiento Financiero

El Santa de los grandes es el aguinaldo

por Ana Sepúlveda
El regreso del sector energético y la subida de sus acciones

Conocimiento Financiero

El regreso del sector energético y la subida de sus acciones

por Ana Sepúlveda
Una racha de buenas noticias alegró a los mercados

Mercados Economía

Una racha de buenas noticias alegró a los mercados

por Priscila Robledo

LO ÚLTIMO DE TECNOLOGÍA

VER MÁS
tecnologia prueba e home23

Tecnología

tecnologia prueba e home23

por Manuel Becker Toro
hultecnologia prueba e home3

Tecnología

hultecnologia prueba e home3

por Manuel Becker Toro
tecnologia prueba e home

Desarrollo de software

tecnologia prueba e home

por Manuel Becker Toro
pato y flo prueben levrero

Tecnología

pato y flo prueben levrero

por Manuel Becker Toro
sw nuevo cache

Desarrollo de software

sw nuevo cache

por Manuel Becker Toro
póst de cache prueba SW

Desarrollo de software

póst de cache prueba SW

por Manuel Becker Toro
Bots-revisar amp video

Tecnología

Bots-revisar amp video

por Fintual
Cómo resolvimos la contabilidad de millones de dólares en Fintual (mx)

Desarrollo de software

Cómo resolvimos la contabilidad de millones de dólares en Fintual (mx)

por Isidora Vizcaya
¿WTF FTX?

ciberseguridad

¿WTF FTX?

por Omar Larré
¿WTF FTX?

Tecnología ciberseguridad

¿WTF FTX?

por Omar Larré
Algunas preguntas y respuestas sobre Fintual Acciones

Tecnología

Algunas preguntas y respuestas sobre Fintual Acciones

por Omar Larré
Cómo resolvimos la contabilidad de millones de dólares en Fintual

Tecnología Desarrollo de software

Cómo resolvimos la contabilidad de millones de dólares en Fintual

por Isidora Vizcaya
Google no quiere que escribas para robots: nuevo Helpful Content Update

Tecnología

Google no quiere que escribas para robots: nuevo Helpful Content Update

por Isabel Meijer
Cómo empezamos Fintual

Tecnología

Cómo empezamos Fintual

por Andrés Marinkovic
Cómo respondemos tus dudas en Fintual

Tecnología

Cómo respondemos tus dudas en Fintual

por Sofía Maluenda, Pía Larraín

LO ÚLTIMO DE CIENCIA

VER MÁS
tecnologia prueba e home2

Ciencia

tecnologia prueba e home2

por Manuel Becker Toro
salvador secdevops

Ciencia

salvador secdevops

por Manuel Becker Toro
13-feb prueba cache

Ciencia

13-feb prueba cache

por Manuel Becker Toro
juemes coinsss

Medioambiente

juemes coinsss

por Manuel Becker Toro
post probar cache

Medioambiente

post probar cache

por Manuel Becker Toro
un nuevo post para probar cache

Ciencia

un nuevo post para probar cache

por Manuel Becker Toro
Bonos de carbono con tecnología blockchain

Medioambiente

Bonos de carbono con tecnología blockchain

por Sebastián Ovalle
¿Es válido usar la biotecnología para ganar?

Ciencia

¿Es válido usar la biotecnología para ganar?

por Diana Palacios
Restos de mujer prehistórica nos hacen cuestionar lo que sabíamos sobre los roles de género

Ciencia

Restos de mujer prehistórica nos hacen cuestionar lo que sabíamos sobre los roles de género

por María Ancira
Qué es la huella de carbono y qué hace Fintual al respecto

Ciencia

Qué es la huella de carbono y qué hace Fintual al respecto

por Carolina Maldonado Magnere
Sudor y chispas en las peleas de robots

Ciencia

Sudor y chispas en las peleas de robots

por Francisco Casado
Ilustración de Alonso “Loncho” Salazar.

Ciencia

Cinco meses sin noticias del gato andino ¿A dónde fue?

por Bernardo Segura Silva
Topos, anguilas y avispas: cómo hacer neurociencia arriesgada

Ciencia

Topos, anguilas y avispas: cómo hacer neurociencia arriesgada

por Timothy Marzullo
Mitos y verdades de los paneles solares en Chile

Ciencia

Mitos y verdades de los paneles solares en Chile

por Domingo García-Huidobro
Los cachorros del gato andino, el felino en mayor peligro de extinción en América

Ciencia

Los cachorros del gato andino, el felino en mayor peligro de extinción en América

por Bernardo Segura Silva

LO ÚLTIMO DE CULTURA

VER MÁS
otro probando

Cultura

otro probando

por Manuel Becker Toro
Gepe y Pedropiedra x Fintual

Cultura

Gepe y Pedropiedra x Fintual

por Sofía Maluenda
The Crown Temporada 5

Cine y Series Cultura

Vuelve The Crown: un repaso a una de las épocas más oscuras de la monarquía británica

por Iñaki Goldaracena
Blockbuster: sobre la nueva serie de Netflix y el último negocio aún en pie

Cine y Series Cultura

Blockbuster: sobre la nueva serie de Netflix y el último negocio aún en pie

por Iñaki Goldaracena
Blockbuster Netflix

Cine y Series

Blockbuster: sobre la nueva serie de Netflix y el último negocio aún en pie

por Iñaki Goldaracena
Cómo publicar un libro en Chile: cinco opciones diferentes

Libros Cultura

Cómo publicar un libro en Chile: cinco opciones diferentes

por Fintual
Vuelve The White Lotus, la comedia negra sobre la vida privada de gente horrible

Cine y Series Cultura

Vuelve The White Lotus, la comedia negra sobre la vida privada de gente horrible

por Iñaki Goldaracena
Argentina, 1985: justicia y cine a lo grande

Cine y Series Cultura

Argentina, 1985: justicia y cine a lo grande

por Iñaki Goldaracena
¿Cuántos usuarios tiene TikTok?

Cultura

¿En qué le gana TikTok a Instagram?

por Diana Palacios
Argentina, 1985: justicia y cine a lo grande

Cine y Series Cultura

Argentina, 1985: justicia y cine a lo grande

por Iñaki Goldaracena
¿Qué quieres, Netflix?

Cine y Series Cultura

¿Qué quieres, Netflix?

por Fintual
Y pensar que decían que la publicidad estaba muerta: el Plan Básico de Publicidad de Netflix

Cine y Series Cultura

Y pensar que decían que la publicidad estaba muerta: el Plan Básico de Publicidad de Netflix

por Juan Claudio Edwards
Espacio desierto: el documental sobre OVNIs en el norte de Chile

Cine y Series Cultura

Espacio desierto: el documental sobre OVNIs en el norte de Chile

por Iñaki Goldaracena
"El castigo": un tenso plano secuencia de dos padres buscando a su hijo en el bosque

Cine y Series Cultura

"El castigo": un tenso plano secuencia de dos padres buscando a su hijo en el bosque

por Iñaki Goldaracena
Depeche Mode anunció nuevo álbum: “Recuerda que morirás”

Cultura

Depeche Mode anunció nuevo álbum: “Recuerda que morirás”

por Ariel Núñez

LO ÚLTIMO DE OPINIÓN

VER MÁS
post 2 cache prueba sw

Cartas a las editoras

post 2 cache prueba sw

por Manuel Becker Toro
Microsoft y Activision: historia de una fusión por concretar

Columnas

Microsoft y Activision: historia de una fusión por concretar

por Manuel Becker Toro
Por qué !&%$ existe un día de la mujer

Opinión

Por qué !&%$ existe un día de la mujer

por Isidora Vizcaya
El remake de dos clásicos:  Silent Hill 2 y Resident Evil 4

Columnas

El remake de dos clásicos: Silent Hill 2 y Resident Evil 4

por Tomás Morales
Por qué !&%$ existe un día de la mujer

Opinión

Por qué !&%$ existe un día de la mujer

por Isidora Vizcaya
¿Cuántos goles lleva México en mundiales?

Columnas

¿Cuántos goles lleva México en mundiales?

por Alex Sánchez
Bienvenidos a Night City, la capital del Cyberpunk

Columnas

Bienvenidos a Night City, la capital del Cyberpunk

por Pedro Torrealba Barra
El Papa afirmó su apoyo a las uniones civiles de parejas del mismo sexo

Opinión

El Papa afirmó su apoyo a las uniones civiles de parejas del mismo sexo

por Nico Soto-Aguilar
My Little Pony y un juego de peleas: Them’s Fighting Herds

Columnas

My Little Pony y un juego de peleas: Them’s Fighting Herds

por Tomás Morales
Comunidad y lenguaje desde el fin del mundo

Columnas

Comunidad y lenguaje desde el fin del mundo

por Jorge Muñoz
Qué son las inversiones ESG y por qué nos deben importar en Chile

Columnas

Qué son las inversiones ESG y por qué nos deben importar en Chile

por Carlos Fuentealba
Comunidad y lenguaje desde el fin del mundo

Columnas

Comunidad y lenguaje desde el fin del mundo

por Jorge Muñoz
"El castigo": un tenso plano secuencia de dos padres buscando a su hijo en el bosque

Columnas

"El castigo": un tenso plano secuencia de dos padres buscando a su hijo en el bosque

por Iñaki Goldaracena
Depeche Mode anunció nuevo álbum: “Recuerda que morirás”

Columnas

Depeche Mode anunció nuevo álbum: “Recuerda que morirás”

por Ariel Núñez
Entergalactic: el musical animado de Kid Cudi

Columnas

Entergalactic: el musical animado de Kid Cudi

por Iñaki Goldaracena
La literatura mexicana en tiempos de Amazon

Columnas

La literatura mexicana en tiempos de Amazon

por Alejandra Retana
Blonde: el mito de Marilyn Monroe

Columnas

Blonde: el mito de Marilyn Monroe

por Iñaki Goldaracena
Blonde: el mito de Marilyn Monroe

Columnas

Blonde: el mito de Marilyn Monroe

por Iñaki Goldaracena
Adiós, Roger: el retiro de Federer

Columnas

Adiós, Roger: el retiro de Federer

por Pato Sullivan
Adiós, Roger: el retiro de Federer

Columnas

Adiós, Roger: el retiro de Federer

por Pato Sullivan
¿Y qué tal si se le adelantaron al satélite Sputnik?

Columnas

¿Y qué tal si se le adelantaron al satélite Sputnik?

por Joaquín Barañao, Red Pivotes
¿Y qué tal si se le adelantaron al satélite Sputnik?

Columnas

¿Y qué tal si se le adelantaron al satélite Sputnik?

por Joaquín Barañao, Red Pivotes
Moonage Daydream: un viaje a la mente de David Bowie

Columnas

Moonage Daydream: un viaje a la mente de David Bowie

por Ariel Núñez
Nope: comedia, terror y extraterrestres

Columnas

Nope: comedia, terror y extraterrestres

por Iñaki Goldaracena
Me volví digital nomad y terminé en la Patagonia: la historia de mi travesía hacia la FIN

Columnas

Me volví digital nomad y terminé en la Patagonia: la historia de mi travesía hacia la FIN

por Cecilia Ramallo
Me volví digital nomad y terminé en la Patagonia: la historia de mi travesía hacia la FIN

Columnas

Me volví digital nomad y terminé en la Patagonia: la historia de mi travesía hacia la FIN

por Cecilia Ramallo
El Big Data llegó al fútbol al estilo Moneyball

Columnas

El Big Data llegó al fútbol al estilo Moneyball

por El Analista
El Big Data llegó al fútbol al estilo Moneyball

Columnas

El Big Data llegó al fútbol al estilo Moneyball

por El Analista
Los ganadores y perdedores de los Premios Emmy 2022

Columnas

Los ganadores y perdedores de los Premios Emmy 2022

por Iñaki Goldaracena
Los ganadores y perdedores de los Premios Emmy 2022

Columnas

Los ganadores y perdedores de los Premios Emmy 2022

por Iñaki Goldaracena
“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

Columnas

“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

por Rodrigo Arellano
“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

Columnas

“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

por Rodrigo Arellano
“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

Columnas

“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

por Rodrigo Arellano
“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

Columnas

“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

por Rodrigo Arellano
El desafío Goodreads y el horror de la escritora Mariana Enríquez

Columnas

El desafío Goodreads y el horror de la escritora Mariana Enríquez

por Victoria Donoso
Los ganadores y perdedores de los Premios Emmy 2022

Columnas

Los ganadores y perdedores de los Premios Emmy 2022

por Iñaki Goldaracena
La Reina Isabel II ha muerto. Dios salve a la Reina.

Columnas

La Reina Isabel II ha muerto. Dios salve a la Reina.

por Ariel Núñez
La Reina Isabel II ha muerto. Dios salve a la Reina.

Columnas

La Reina Isabel II ha muerto. Dios salve a la Reina.

por Ariel Núñez
El Señor de los Anillos vuelve en formato televisivo con Los Anillos del Poder

Columnas

El Señor de los Anillos vuelve en formato televisivo con Los Anillos del Poder

por Iñaki Goldaracena
Cambios en el comportamiento electoral por el voto obligatorio en el plebiscito

Columnas

Cambios en el comportamiento electoral por el voto obligatorio en el plebiscito

por Gonzalo Mena
Cambios en el comportamiento electoral por el voto obligatorio en el plebiscito

Columnas

Cambios en el comportamiento electoral por el voto obligatorio en el plebiscito

por Gonzalo Mena
Qué implica ser mentor en un intensivo de programación en la Patagonia

Columnas

Qué implica ser mentor en un intensivo de programación en la Patagonia

por Pedro Saratscheff
Qué implica ser mentor en un intensivo de programación en la Patagonia

Columnas

Qué implica ser mentor en un intensivo de programación en la Patagonia

por Pedro Saratscheff
De los transfers hawaianos a las cumbres andinas: cómo nació Wikiexplora

Columnas

De los transfers hawaianos a las cumbres andinas: cómo nació Wikiexplora

por Joaquín Barañao, Red Pivotes
Abrazando a Britney Spears: Elton John y la princesa del pop

Columnas

Abrazando a Britney Spears: Elton John y la princesa del pop

por Ariel Núñez
Abrazando a Britney Spears: Elton John y la princesa del pop

Columnas

Abrazando a Britney Spears: Elton John y la princesa del pop

por Ariel Núñez
Lost Ollie, la conmovedora historia del conejo de peluche

Columnas

Lost Ollie, la conmovedora historia del conejo de peluche

por Iñaki Goldaracena
Plebiscito de salida: lo que sí sabemos

Columnas

Plebiscito de salida: lo que sí sabemos

por Priscila Robledo, José Ignacio, Jose Manuel Peña, Daniela Pradel A.
Plebiscito de salida: lo que sí sabemos

Columnas

Plebiscito de salida: lo que sí sabemos

por Priscila Robledo, José Ignacio, Jose Manuel Peña, Daniela Pradel A.
Zalo Reyes: el último vuelo del Gorrión

Columnas

Zalo Reyes: el último vuelo del Gorrión

por Ariel Núñez
Así fue la primera semana en el Fintual Intensivo Natales

Columnas

Así fue la primera semana en el Fintual Intensivo Natales

por Andrés Arellano
El nivel de House of the Dragon

Columnas

El nivel de House of the Dragon

por Iñaki Goldaracena
The Sandman: la adaptación imposible de filmar

Columnas

The Sandman: la adaptación imposible de filmar

por Iñaki Goldaracena
Olivia Newton-John: de Xanadú a la eternidad

Columnas

Olivia Newton-John: de Xanadú a la eternidad

por Ariel Núñez
Batgirl, la fusión de dos empresas y la reducción de impuestos

Columnas

Batgirl, la fusión de dos empresas y la reducción de impuestos

por Iñaki Goldaracena
¿Qué es la economía circular?

Columnas

¿Qué es la economía circular?

por Andrea Espindola
Trasandino y Fintual: un objetivo a largo plazo

Columnas

Trasandino y Fintual: un objetivo a largo plazo

por Pato Sullivan
El documental Frontera: un territorio en tensión

Columnas

El documental Frontera: un territorio en tensión

por Iñaki Goldaracena
Stray: el juego de un gato perdido que te hace recordar tu humanidad

Columnas

Stray: el juego de un gato perdido que te hace recordar tu humanidad

por Carolina Maldonado Magnere
Stray: el juego de un gato perdido que te hace recordar tu humanidad

Columnas

Stray: el juego de un gato perdido que te hace recordar tu humanidad

por Carolina Maldonado Magnere
La película Elvis y el Elvis Rojo

Columnas

La película Elvis y el Elvis Rojo

por Ariel Núñez
Cristóbal Henríquez: el mejor ajedrecista de Chile

Columnas

Cristóbal Henríquez: el mejor ajedrecista de Chile

por Pato Sullivan, Florencia Edwards, Sebastián Ovalle
Cristóbal Henríquez: el mejor ajedrecista de Chile

Columnas

Cristóbal Henríquez: el mejor ajedrecista de Chile

por Pato Sullivan, Florencia Edwards, Sebastián Ovalle
¿Todo atado y bien atado? Depende con qué comparemos

Columnas

¿Todo atado y bien atado? Depende con qué comparemos

por Joaquín Barañao, Red Pivotes
¿Todo atado y bien atado? Depende con qué comparemos

Columnas

¿Todo atado y bien atado? Depende con qué comparemos

por Joaquín Barañao, Red Pivotes
The Rehearsal: controlar lo incontrolable

Columnas

The Rehearsal: controlar lo incontrolable

por Iñaki Goldaracena
Constituciones y educación

Columnas

Constituciones y educación

por Diana Palacios
Constituciones y educación

Columnas

Constituciones y educación

por Diana Palacios
Cómo colaboran Fintual y la academia

Columnas

Cómo colaboran Fintual y la academia

por Pedro Pineda
Todas las nominaciones a los Emmys 2022 son streamings

Columnas

Todas las nominaciones a los Emmys 2022 son streamings

por Iñaki Goldaracena
Nuestra intuición acerca del infinito

Columnas

Nuestra intuición acerca del infinito

por Manuel Becker Toro
Nuestra intuición acerca del infinito

Columnas

Nuestra intuición acerca del infinito

por Manuel Becker Toro
De la noche a la mañana, una tragicomedia chileno-argentina sobre la mala suerte

Columnas

De la noche a la mañana, una tragicomedia chileno-argentina sobre la mala suerte

por Iñaki Goldaracena
Festival internacional de la Creatividad “Cannes Lions”: Apple gana con su irreverencia ante el reloj

Columnas

Festival internacional de la Creatividad “Cannes Lions”: Apple gana con su irreverencia ante el reloj

por Juan Claudio Edwards
Rothaniel: el stand up como terapia

Columnas

Rothaniel: el stand up como terapia

por Iñaki Goldaracena
La detective de detectives:
sobre “Los espejismos de la certeza” de Siri Hustvedt

Columnas

La detective de detectives: sobre “Los espejismos de la certeza” de Siri Hustvedt

por Natalia Berbelagua
10 poster de películas con temáticas LGBTQ+ en foma de collage

Columnas

Series y películas LGBTQ+ que puedes ver online

por Iñaki Goldaracena
Dos de las personajes de la película con su hijo en brazos.

Columnas

Lightyear y la historia de Disney con la comunidad LGBTIQ+

por Iñaki Goldaracena
La zanahoria, un impostor triple

Columnas

La zanahoria, un impostor triple

por Joaquín Barañao, Red Pivotes
La zanahoria, un impostor triple

Columnas

La zanahoria, un impostor triple

por Joaquín Barañao, Red Pivotes
Todo en todas partes al mismo tiempo: un milagro de película de esas que no vemos tan seguido

Columnas

Todo en todas partes al mismo tiempo: un milagro de película de esas que no vemos tan seguido

por Iñaki Goldaracena
Travesía Travesti: un documental que nos invita a pensar en un nuevo sistema

Columnas

Travesía Travesti: un documental que nos invita a pensar en un nuevo sistema

por Iñaki Goldaracena
Obi Wan Kenobi: el círculo se cierra

Columnas

Obi Wan Kenobi: el círculo se cierra

por Cristian "Tama" Bravo Lillo
Top Gun: Maverick está haciendo que los adultos vuelvan al cine

Columnas

Top Gun: Maverick está haciendo que los adultos vuelvan al cine

por Iñaki Goldaracena
Proyecto Hail Mary: el ingeniero que se convirtió en escritor

Columnas

Proyecto Hail Mary: el ingeniero que se convirtió en escritor

por Timothy Marzullo
Hacks, la premiada comedia que no estás viendo, vuelve con segunda temporada

Columnas

Hacks, la premiada comedia que no estás viendo, vuelve con segunda temporada

por Iñaki Goldaracena
El efecto e-mariposa

Columnas

El efecto e-mariposa

por Joaquín Barañao, Red Pivotes
El efecto e-mariposa

Columnas

El efecto e-mariposa

por Joaquín Barañao, Red Pivotes
La extraña relación entre pesca con mosca y las inversiones

Columnas

La extraña relación entre pesca con mosca y las inversiones

por Juan Pablo Rybecky
La extraña relación entre pesca con mosca y las inversiones

Columnas

La extraña relación entre pesca con mosca y las inversiones

por Juan Pablo Rybecky
42 días en la oscuridad: la polémica sobre la primera serie chilena en Netflix

Columnas

42 días en la oscuridad: la polémica sobre la primera serie chilena en Netflix

por Iñaki Goldaracena
Off The Record: esa superficial pero útil cosa que llamamos fama

Columnas

Off The Record: esa superficial pero útil cosa que llamamos fama

por Iñaki Goldaracena
La impericia de Julio César que aún reverbera en Excel

Columnas

La impericia de Julio César que aún reverbera en Excel

por Joaquín Barañao, Red Pivotes
La impericia de Julio César que aún reverbera en Excel

Columnas

La impericia de Julio César que aún reverbera en Excel

por Joaquín Barañao, Red Pivotes
La primera periodista infiltrada: la locura inventada de Nellie Bly en su libro “Diez días en un psiquiátrico”

Columnas

La primera periodista infiltrada: la locura inventada de Nellie Bly en su libro “Diez días en un psiquiátrico”

por Natalia Berbelagua
Heartstopper: la representación importa

Columnas

Heartstopper: la representación importa

por Iñaki Goldaracena
The Northman: blockbuster de autor visceral y sangrienta

Columnas

The Northman: blockbuster de autor visceral y sangrienta

por Iñaki Goldaracena
Porno y helado: la serie sobre amistad y música

Columnas

Porno y helado: la serie sobre amistad y música

por Iñaki Goldaracena
Un análisis a la reciente inversión de la curva

Columnas

Un análisis a la reciente inversión de la curva

por Ana Sepúlveda
Un análisis a la reciente inversión de la curva

Columnas

Un análisis a la reciente inversión de la curva

por Ana Sepúlveda