Backend Handbook para Aplicaciones Ruby on Rails

A lo largo de mis años de trabajo he recopilado conocimientos e información que me ha ayudado a ser un mejor profesional.

Cuando pienso en que qué podría haber sido de mi si esas personas que decidieron escribir un artículo, publicar un libro, responder una pregunta en Stack Overflow, dar una charla o publicar un vídeo no lo hubieran hecho.

Leer más “Backend Handbook para Aplicaciones Ruby on Rails”
Anuncios

Cosas de JavaScript: Seleccionando ID numérico con querySelector

En el artículo anterior a este describo algunos aprendizajes mientras completaba una prueba técnica. Había que implementar una especie de resaltado en textos en una página, mandarlos a una base de datos y poder traerlos de nuevo y mostrarlos donde van.

Pasa que una de las formas de tener precisión sobre dónde volver a mostrar lo que se resaltó era guardando algunos elementos adicionales como el párrafo, un ID que identifique al párrafo y en el caso puntual de la prueba, podía guardar el ID de la página del texto(los textos eran páginas de un “libro” web).
Leer más “Cosas de JavaScript: Seleccionando ID numérico con querySelector”

Cosas de JavaScript: Diferencia entre parentElement y parentNode

Creo que esta es la primera vez que escribo algo sobre JavaScript a nivel del lenguaje. Ya antes había mencionado cosas que había logrado pero no explicaciones al respecto de algo, como sí lo he hecho en Ruby.

JavaScript fue el primer lenguaje de programación web que aprendí(HTML y CSS no son lenguajes de programación). Lo hice a través de un libro gratuito muy popular publicado por Javier Eguiluz: Introducción a JavaScript.

Sin embargo, hay muchas cosas de fondo en JS que desconozco. Tal vez sea la naturaleza multiparadigma del lenguaje o que mi experiencia con el mismo nunca ahondó ya que cuando iba a programar asuntos complejos, pues, generalmente había una librería para ello, ejemplo jQuery para manipulación del DOM. Leer más “Cosas de JavaScript: Diferencia entre parentElement y parentNode”

Sobre las Interfaces en Ruby

Lo primero es que no existe tal cosa como una interfaz en Ruby como sí ocurre en otro lenguaje orientado a objetos, Java.

En todo caso, hay formas de intentar emular ese mecanismo pero antes vamos a definir que es una interfaz para tener un concepto claro.

¿Qué es una Interfaz?

Es una especie de contrato o descripción que una clase se “compromete” a tener al implementar(usar) dicha interfaz. Este contrato está dado por una colección de métodos abstractos(sin definir su funcionalidad) los cuáles deben ser implementados en la clase que se adhiere a la interfaz.

Leer más “Sobre las Interfaces en Ruby”

Sobrecarga de métodos en Ruby

Una de las cosas buenas de presentarse a procesos de selección en el mundo del desarrollo de software es poder medir como está el nivel de conocimientos de uno mismo y además aprender conceptos nuevos.

En un proceso en el cual participé en Baires Dev, una de las preguntas que no pude responder fue acerca de method overloading en Ruby. Ese mismo día investigué e interioricé. Ahora trataré de explicarlo en este espacio.

Según la Wikipedia, la sobrecarga de funciones o métodos es la habilidad de crear varios métodos nombrados igual pero con diferentes implementaciones(entiéndase implementación como cuerpo de la función).

Leer más “Sobrecarga de métodos en Ruby”

¿Puede ActiveRecord::Relation recibir mensajes de métodos de clase? Sí

Ruby on Rails es una criatura enorme. Ofrece muchas funcionalidades y elementos que hacen fácil la vida de quien usa el framework bajo el nombre de magia. Magia que muchas veces no tenemos ni idea de cómo funciona.

Algunos podrán decir que esa magia es muy mala al ocultar cosas a quien desarrolla. Otros dirán que es buena justamente por lo mismo. En todo caso, siempre está la posibilidad de examinar el código fuente y ver cómo toda esa magia trabaja bajo cuerda.

Leer más “¿Puede ActiveRecord::Relation recibir mensajes de métodos de clase? Sí”

Cómo Instalar Elixir en Linux Mint 17.2

Elixir es un lenguaje de programación bajo el paradigma funcional. En este artículo no estaré describiendo el lenguaje ni nada de lo que ofrece pero sí me tomo la molestia de compartir la forma correcta de instalarlo en Linux Mint ya que la información del sitio oficial no funciona como se quisiera. Leer más “Cómo Instalar Elixir en Linux Mint 17.2”

¿Cuál es la diferencia entre :destroy_all y :delete en Rails?

Una de las enseñanzas o instrucciones que se da cuando se diseñan bases de datos es que no debe haber información relacionada que no tenga su “dueño” o “padre”. Si un artículo tiene muchos comentarios y dicho artículo se elimina de la base de datos, tales comentarios también deben hacerlo.

En SQL a esto se le llama borrado en cascada. Para lograr esto en Rails usando ActiveRecord podemos usar la opción dependent y pasando algunas opciones disponibles. Leer más “¿Cuál es la diferencia entre :destroy_all y :delete en Rails?”

Tocando a ActiveRecord

Cuando se programan aplicaciones, puede haber ocasiones en donde queremos que un determinado objeto indiqué la última vez que fue actualizado según determinadas acciones o sucesos.

La última vez que se actualizó el repositorio, la última vez que se modificó un artículo publicado, la última vez que cambió el estado de la cuenta, etc. Son ejemplo de lo anterior.

En Rails, se puede lograr dicho comportamiento de dos formas. Depende de uno como programador determinar cual de las dos opciones es más adecuada(o incluso si se usan ambas). Leer más “Tocando a ActiveRecord”

Aprende a decir “No”

Que complicado resulta ejercer bien el poder decir “no” a ciertas cosas o personas en la vida. Es difícil porque un “no” en el momento menos adecuado o cuando menos se necesita, puede causar decepción, desazón y acabar el ánimo de quien lo escucha, incluso de quien lo dice.

Es por ello que es importante ejercitarlo bien. Al usarlo con frecuencia, si bien podríamos equivocarnos mucho, llegado el momento podremos manejar la palabra “no” con una mejor percepción de la situación.

Al final de todo, no todo en esta vida es posible. Todos tenemos un límite, hay planes que seguir, ideales que lograr, metas que conquistar. No podemos complacer a todo mundo ni tampoco debemos ser tan permisivos con nosotros mismos. Leer más “Aprende a decir “No””