Clases de envoltura en Java (Wrapper classes)

2020-03-23 Java

Las clases de envoltura o wrapper clases, son clases que representan un tipo primitivo de dato. Es decir, son un tipo de referencia que envuelve un tipo primitivo. Cada tipo de dato primitivo tiene un tipo de referencia que lo envuelve. Veamos a continuaci...

by Darío Rivera


Conversión de tipos en Java

2020-03-22 Java

En java existe una cantidad considerable de tipos de conversiones que considerar cada uno de los posibles escenarios de convesión. En el presente post, veremos los que considero son los más relevantes y/o utilizados. Conversión de Ampliación Primiti...

by Darío Rivera


Declaración de Variables en Java

2020-03-21 Java

En Java existen varias formas de declara e inicializar variables, a continuación vamos a ver cada una de ellas. Declaración Explícita La forma estándar para declarar una variable es colocar su tipo antes del nombre de la variable de la siguiente ...

by Darío Rivera


Instalación del JDK (Java development Kit) en Windows

2020-03-20 Java

Básicamente existen dos fuentes para instalar Java. La primera es el repositorio oficial de Oracle el cual nos permite utilizar el JDK de manera legal dependiendo del uso que le demos. La segunda forma de instalar el JDK es mediante un release de OpenJDK....

by Darío Rivera


Diferencia entre Let y Var en Javascript

2020-03-11 Laravel

De seguro has venido utilizando toda la vida var y ahora estás preguntandote para qué sirve let en términos de la declaración e inicialización de una variable. Si es así, o bien no conoces ninguna de las dos palabras reservadas y estás inciando...

by Darío Rivera


Tipos de datos en Java

2020-02-25 Java

En Java existen básicamente dos tipos de datos, los primitivos y los objetos. Primitivos Son tipos básicos de datos que guardan un solo valor. Entre ellos tenemos los siguientes. - Números - Caracteres - Booleanos Todos los tipos de dato...

by Darío Rivera


Tu primera aplicación en Java, "Hola Mundo"

2020-02-24 Java

La primera aplicación de todo programador en cualquier lenguaje de programación debería ser la típica "Hola Mundo". Realmente esto tiene una connotación más histórica que pedagógica, es una forma rápida de sentir la emoción de ver nuestro código...

by Darío Rivera


Cómo ver el uso de memoria en Java

2020-02-23 Java

Como ya sabemos, el Garbage collector de Java gestiona todo lo relacionado con la limpieza de variables, objetos y demás cada vez que ya no se necesitan en la ejecución de un programa. Sin embargo, nosotros podemos realizar una visualización o traza de ...

by Darío Rivera


Instalación del JDK (Java development Kit) en MacOS

2020-02-23 Java

Básicamente existen dos fuentes para instalar Java. La primera es el repositorio oficial de Oracle el cual nos permite utilizar el JDK de manera legal dependiendo del uso que le demos. La segunda forma de instalar el JDK es mediante un release de OpenJDK....

by Darío Rivera


Introducción al lenguaje de programación Java

2020-02-22 Java

Java es un lenguaje de programación de alto nivel caracterizado por ser simple, orientado a objetos, robusto, seguro, dinámico, portable y multihilo. El código fuente esta compuesto por archivos de texto plano con la extensión .java. Estos archivos s...

by Darío Rivera


Supervisor, el gestor de procesos para sistemas UNIX

2020-02-19 Apache

Supervisor es un sistema cliente/servidor utilizado en sistemas UNIX para el control de procesos del sistema operativo.  Una de las ventajas más importantes de supervisor es que permite reiniciar un servicio de manera automática después de que se h...

by Darío Rivera


Ingresar por SSH a tu cuenta de panel

2020-02-18 SSH

Cuántas veces no has contratado tu propio servicio de hosting con cpanel o has manejado el servicio de alguna empresa y deseas ingresar por la terminal de Linux, Windows o MacOS. Para esto, debes hacer lo siguiente: Paso 1 En caso de que n...

by Darío Rivera


Configurar SonarQube para que inicie como servicio en MacOS

2020-01-11 Static Code Analysis SonarQube 8

Después de instalar SonarQube y configurar una base de datos dedicada el último paso para ti probablemente sea configurarlo como servicio para que inicie con el sistema operativo. Si aún no has instalado SonarQube te recomendamo...

by Darío Rivera


Configurar PostgreSQL en SonarQube

2020-01-06 Static Code Analysis SonarQube 8

En un anterior post vimos cómo Instalar SonarQube en su versión community. En aquel post, no se configuró nada respectivo a la base de datos ya que SonarQube utiliza una base de datos embebida si no se configura una. El día hoy, veremos cómo conf...

by Darío Rivera


Error 'Not enough space' de OpenJDK en Digital Ocean

2020-01-06 Digital Ocean SonarQube 8

Un error muy común cuando empiezas con Digital Ocean, es que al instalar casi cualquier programa basado en Java como SonarQube obtienes enseguida un error de espacio en memoria. En mi caso, al iniciar el servicio de SonarQube he obtenido un error similar ...

by Darío Rivera


Configurar SonarQube para que inicie como servicio en Linux

2020-01-06 Static Code Analysis SonarQube 8

Después de instalar SonarQube y configurar una base de datos dedicada el último paso para ti probablemente sea configurarlo como servicio para que inicie con el sistema operativo. Si aún no has instalado SonarQube te recomendamo...

by Darío Rivera


Configurar SonarQube con Apache en Linux

2020-01-06 Apache SonarQube 8

Muy seguramente si estás aquí es porque ya instalaste SonarQube, lo configuraste de manera adecuada y como último paso deseas crear un virtual host en apache para acceder de manera amigable. Si no es así, te invito a que revises los siguientes pos...

by Darío Rivera


Instalar PostgreSQL en MacOS

2020-01-05 PostgreSQL PostgreSQL 12

Para instalar este motor de bases de datos recomiendo tener previamente instalado homebrew. Una vez dicho esto, empemos con la instalación. Instalación La instalación es cuestión de ejecutar el siguiente comando con homebrew. brew install...

by Darío Rivera


Conexión por terminal a PostgreSQL

2020-01-05 PostgreSQL

PostgreSQL es uno de los motores de bases de datos más populares entre los usuarios Unix. El día de hoy veremos cómo realizar una conexión a PostgreSQL desde la terminal con diferentes opciones cliente. Conexión por defecto La forma más rápida...

by Darío Rivera


Instalación SonarQube

2020-01-03 Static Code Analysis SonarQube 8

SonarQube es una herramienta de calidad de código y seguridad (code quality and security) GNU que permite analizar el código fuente de manera automatizada. Permite mediante una serie de reglas analizar la calidad del código utilizando análisis estátic...

by Darío Rivera


Los comandos más útiles en OpenSSL

2020-01-01 OpenSSL OpenSSL 1.1

Hace algunas semanas hice una introducción acerca de la criptograma simétrica y asimétrica. A mi personalmente, me hubiera gustado leer un artículo introductorio totalmente dirigido a dummies acerca de esto dado que cuando comencé solo encontraba art...

by Darío Rivera


Copiar archivos a servidor SSH

2019-12-30 SSH

Para copiar un archivo desde tu máquina local hacia un servidor SSH debes tener previamente configurada dicha conexión. Es decir, tu llave pública RSA debe estar autorizada por el servidor para tu accedas sin problemas. Dicho esto, copiar un archivo es ...

by Darío Rivera


Hacer debug a Locks en base de datos MySQL

2019-12-30 MySQL MySQL 8

Seguramente alguna vez habrás visto un error similar al siguiente: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded Este error indica que hay un bloqueo el cual puede darse por varias razones. Una de ellas, podría ser la no confirmac...

by Darío Rivera


JSON Web Key ( JWK )

2019-12-29 JOSE

Una JSON Web Key ( JWK ) es una estructura JSON que representa una llave criptográfica. Los algoritmos de cifrado están definidos en una especificación diferente la cual no vamos a ver hoy, JWA (JSON Web Algorithms). Vamos a ver entonces de que se compo...

by Darío Rivera


Agregar nuevas llaves SSH a Droplet en Digital Ocean

2019-12-29 SSH

Cuando creamos un Droplet en Digtal Ocean y configuramos el acceso por SSH automáticamente tenemos el acceso garantizado con nuestra llave RSA. Sin embargo, cuando intentamos ingresar una nueva llave SSH desde el panel de administración, aún después de...

by Darío Rivera


JSON Web Signature ( JWS )

2019-12-23 JOSE

JSON Web Signature (JWS) representa una manera segura de proteger los mensajes utilizando firmas digitales o códigos de autenticación de mensajes (MACs) y el estándar JSON. No se debe confundir esta definición con sus contrapartes JWA (JSON Web Algorit...

by Darío Rivera


Primeros pasos con Digital Ocean

2019-12-22 Digital Ocean

Para iniciar una conexión por SSH desde cualquier máquina debes correr el siguiente comando. Ten en cuenta que debes reemplazar la IP mostrada por la IP de tu Droplet. ssh root@203.0.113.0 Si tienes varias llaves privadas SSH es necesario que indiq...

by Darío Rivera


Instalar la última versión de MySQL en Debian

2019-12-22 MySQL

Muchas veces queremos instalar la última versión de MySQL en Debian y nos damos cuenta que la versión estable de los repositorios de Debian está muy atrás de la versión estable del propio MySQL. Para esto, MySQL nos brinda la opción de instalar la ...

by Darío Rivera


Principio Open-Closed en diseño orientado a objetos (SOLID)

2019-12-09 SOLID

En un post anterior hemos visto los Principios SOLID a manera meramene teórica, el día de hoy veremos todo acerca de The Open Closed Principle. Retomemos entonces la definción de este principio. Definición Este principio dice que las entidad...

by Darío Rivera




Principios SOLID

2019-12-08 SOLID

El acrónimo SOLID, hace referencia a conjunto de principios mundialmente aceptados en el desarrollo orientado a objetos. Estos cinco principios, buscan que el código sea más entendible, flexible y mantenible. Estos principios fueron creado por Robert C....

by Darío Rivera


Qué es OWASP y por qué todo desarrollador debería conocerlo

2019-12-07 OWASP

Personalmente, supe de OWASP cuando recién iniciaba como desarrollador en PlacetoPay (Hoy evertec) dado que es un requisito fundamental que todo desarrollador conociera y estuviera familiarizado en términos de seguridad y buenas prácticas de codificaci...

by Darío Rivera


Construye una API REST con Laravel

2019-12-06 Laravel Laravel 6x

Crear una REST API es una tarea bastante sencilla y enriquecedora en Laravel. Es por esto que el día de hoy aprederás a crer un servicio web REST mediante una API creada con Laravel 6. Si aún tienes algunos vacíos conceptuales sobre los sistemas RESTfu...

by Darío Rivera


API REST, después de esto serás todo un experto

2019-11-28 Laravel Laravel 6x

Qué es REST? REST (Representational state transfer), o transferencia de estado representativo, es un estilo de arquitectura de software que define una serie de reglas para la comunicación entre sistemas de computadores en la web. Esta serie de reglas,...

by Darío Rivera


Traducciones en laravel

2019-11-10 Laravel Laravel 6x

Las traducciones en laravel permiten mostrar tu aplicación en distintos idiomas de manera fácil y rápida. Esto permite que tu aplicación tenga un alcance mucho mayor según los lenguajes que tengas habilitados. Cada lenguaje estará situado por lo gene...

by Darío Rivera


Conexión por terminal a MySQL

2019-10-07 MySQL MySQL 8

MySQL es uno de los motores de bases de datos más populares en internet. Es robusto, interoperable, tiene una curva de aprendizaje rápida y puede soportar una carga de trabajo considerable. El día de hoy veremos cómo realizar una conexión a mysql desd...

by Darío Rivera


Hola mundo en Docker

2019-10-06 Docker Docker 18

Personalmente no me gusta mucho el hola mundo de docker visto en el anterior post, creo que puede resultar algo confuso para una persona que recién inicia en docker. Por esto, el día de hoy veremos un Hola Mundo un poco diferente pero que representa un p...

by Darío Rivera


Recuperar contraseña de root en MySQL

2019-09-29 MySQL MySQL 8

A quién no le ha pasado alguna vez que pierde la clave del usuario root en mysql ?, incluso en sistemas de producción!. El día de hoy veremos qué pasos se deben realizar para restaurar la contraseña del usuario con más privilegios de mysql. Cómo ...

by Darío Rivera


Cambiar el método de autenticación en MySQL

2019-09-29 MySQL MySQL 8

De seguro si programas en PHP u otros lenguajes que utilicen las últimas versiones de MySQL has visto alguna vez este el siguiente error al momento de realizar la autenticación: The server requested authentication method unknown to the client [caching...

by Darío Rivera


Instalación de Docker

2019-09-22 Docker Docker 18

Según su página oficial, Docker es una plataforma para desarrolladores y administradores de sistemas para desarrollar, desplegar y correr aplicaciones con contenedores. Un contenedor es una instancia de una imagen, que a su vez es un paquete con todo lo ...

by Darío Rivera


Tipos de datos en Go

2019-09-19 Go Go 1

En un post anterior hemos visto las Funciones en Go. El siguiente paso consiste en ver qué tipos de datos existen en en este lenguaje para poder crear todo tipo de programas, funciones y operaciones sobre estos tipos. A continuación se presenta una ...

by Darío Rivera


Funciones en Go

2019-09-18 Go Go 1

En un post anterior hemos visto a grandes rasgos la estructura de un programa en Go, el día de hoy veremos un concepto muy importante en Go el cuál son las funciones. Para esto, observemos el siguiente programa: Definición de funciones Para la def...

by Darío Rivera


Variables y estructura de un programa en GO

2019-09-17 Go Go 1

En un post anterior hemos visto la instalación de Go en Linux, el día de hoy veamos qué elementos necesitamos para hacer cualquier programa en Go. Estructura de inicio Todos los programas en Go inician por la función main en el paquete main. Adem...

by Darío Rivera


Instalación de Go en Linux (golang)

2019-09-05 Go Go 1

El lenguaje de programación Go es un lenguaje compilado, de tipado estático, que utiliza un mecanismo de concurrencia capaz de aprovechar al máximo arquitecturas multinúcleo y en red, permitiendo también construir programas flexibles y modulares. Go f...

by Darío Rivera


Infraestructura de llave pública (PKI)

2019-08-30 OpenSSL OpenSSL 1.1

En post anteriores hemos visto la criptografía de llave pública como sistema criptográfico de dos llaves para asegurar la confidencialidad y autenticidad de mensajes. El día de hoy iremos un poco más allá, y daremos solución a un problema que tal ve...

by Darío Rivera


Assertions en PHPUnit

2019-08-28 PHPUnit PHPUnit 8

En nuestro post anterior hemos visto cómo instalar PHPUnit y cómo realizar realizar una prueba unitaria. El día de hoy, veremos las aserciones más comunes cuando diseñamos pruebas unitarias. Después de este post estarás en la capacidad de diseñar p...

by Darío Rivera


Instalación PHPUnit

2019-08-25 PHPUnit PHPUnit 8

PHPUnit ha demostrado ser por años el entorno de pruebas unitarias por excelencia para PHP. Para aquellos que aún no saben qué son las pruebas unitarias,  una prueba unitaria es un método de testeo de software para comprobar que una determinada un...

by Darío Rivera


Criptografía asimétrica en OpenSSL - Llave encriptada

2019-08-21 OpenSSL OpenSSL 1.1

En post anteriores hemos visto conceptualmente cómo funciona la criptografía asimétrica y cómo encriptar mensajes de dos formas distintas (con llave pública o privada) y con objetivos distintos (confidencialidad o autenticidad). Si aún no conoces de ...

by Darío Rivera


Criptografía asimétrica en OpenSSL - Llave privada

2019-08-15 OpenSSL OpenSSL 1.1

En nuestro post anterior hemos visto cómo encriptar mensajes con llave pública en criptografía de dos llaves. El día de hoy veremos que este proceso también es inverso, y se puede encriptar mensajes con la llave privada y desencriptarlos con la llave ...

by Darío Rivera


Criptografía asimétrica en OpenSSL - Llave pública

2019-08-07 OpenSSL OpenSSL 1.1

En nuestro post anterior vimos lo básico para comenzar con openssl y sus algoritmos de encriptación. El día de hoy iremos un poco más allá y veremos la criptogtafía asimétrica o criptografía de dos llaves. Definición La criptografía asimét...

by Darío Rivera


Criptografía simétrica en OpenSSL - Algoritmos de cifrado

2019-08-05 OpenSSL OpenSSL 1.1

OpenSSL es una librería que implementa los protocolos de seguridad web SSL (secure sockets layer), TLS (transport layer security) y otra serie de operaciones como la criptografía simétrica. Esta serie de operaciones y protocolos tienen como objetivo pro...

by Darío Rivera


Resource controllers en laravel

2019-07-31 Laravel Laravel 5.8

Hasta ahora, todo lo que hemos visto desde el primer día en este blog es lo que yo considero nivel básico en Laravel. En un post anterior vimos el tema de los controladores en laravel, el día de hoy veremos un tema un poco más profundo que yo...

by Darío Rivera


Controladores en Laravel

2019-07-28 Laravel Laravel 5.8

En uno de nuestros primeros posts explicamos cómo está implementado el patrón MVC en laravel, el día de hoy veremos un poco más a fondo el componente de los controladores. Te recomiendo enteramente tener un proyecto limpio de laravel para que puedas p...

by Darío Rivera


16 plugins de Sublime Text que no puedes dejar de tener

2019-07-24 Sublime Text Sublime Text 3

El día de hoy mostraré algunos de los plugins de Sublime Text que considero indispensables después de realizar su instalación. Muy seguramente habrás trabajado ya con algunos de ellos, otros, te dedejarán asombrado. Empecemos pues. Emmet Clási...

by Darío Rivera


Relaciones muchos a muchos en Eloquent

2019-07-21 Laravel Laravel 5.8

En un post anterior hemos visto las relaciones uno a muchos en eloquent y un ejemplo muy sencillo de su funcionamiento con laravel tinker. El día de hoy veremos el siguiente tipo de relación el cuál es la relación muchos a muchos.&n...

by Darío Rivera


Relaciones uno a muchos en Eloquent

2019-07-19 Laravel Laravel 5.8

En un post anterior hemos visto las relaciones uno a uno en eloquent y un ejemplo muy sencillo de su funcionamiento con laravel tinker. El día de hoy veremos el siguiente tipo de relación el cuál es la relación uno a muchos. El...

by Darío Rivera


Relaciones uno a uno en Eloquent

2019-07-18 Laravel Laravel 5.8

En un post anterior hemos visto qué es eloquent y un ejemplo muy sencillo de su funcionamiento con laravel tinker. El día de hoy veremos uno de los conceptos más importantes de Eloquent y que sientan las bases de todo su funcionamiento: las relaciones, ...

by Darío Rivera


Qué es Eloquent en laravel ?

2019-07-13 Laravel Laravel 5.8

Eloquent es el ORM de laravel que implementa el patrón de arquitectura Active Record. Eso significa que cada tabla en la base de datos corresponde a una clase PHP (modelo) que interactúa con ella. Cada instancia de dicha clase corresponde a un registro e...

by Darío Rivera


Rutas en laravel

2019-07-10 Laravel Laravel 5.8

Las rutas en laravel están definidas en los archivos que puedes encontrar en la carpeta routes. De estos archivos nos vamos a centrar en dos principalmente: web.php y api.php. Estos dos archivos definen las rutas para la aplicación web y para la api (cas...

by Darío Rivera


Variables a nivel de servidor en laravel

2019-07-09 Laravel Laravel 5.8

Hace unos días estudiamos vimos cómo se comportan las variables de entorno y configuración en laravel. El día de hoy revisaremos un tema complementario y es el flujo entre las variables a nivel de servidor y las de la configuración de laravel. Defi...

by Darío Rivera


Migraciones de base de datos en laravel

2019-07-08 Laravel Laravel 5.8

Las migraciones en laravel son lo más parecido a un sistema de control de versiones para una base de datos. Éstas permiten llevar un control sobre los cambios realizados al esquema de base de datos y brindan un mecanismo para la instalación de dichos ca...

by Darío Rivera


Variables de entorno y configuración en laravel

2019-07-05 Laravel Laravel 5.8

Las variables de configuración sirven para definir valores que son globales y que pueden cambiar según se instale la aplicación en un entorno u otro. Laravel posee un estructurado sistema de configuración que se compone básicamente de todos los archiv...

by Darío Rivera


Estructura de directorios en proyectos laravel

2019-07-04 Laravel Laravel 5.8 Laravel 6x

Una de los aspectos más engorrosos de asimilar al iniciar con laravel es su estructura de directorios. Personalmente, cuando me inicié en laravel pensaba que la estructura de directorios podría ser algo exagerada, sin embargo, solo bastó con algunas se...

by Darío Rivera


Patrón MVC en laravel

2019-07-03 Laravel Laravel 5.8 Laravel 6x

MVC (modelo, vista, controlador) es un patrón arquitectónico de software que separa una aplicación en tres capas descritas como su acrónimo lo indica. Laravel, así como la mayoría de frameworks en PHP implementan este patrón de diseño en donde ...

by Darío Rivera


Configurar virtual host en Laravel con apache

2019-07-02 Apache Apache 2

Una de las primeras preguntas que surgen después de instalar Laravel es cómo se configura un virtual host si no se desea iniciar el server con el comando php artisan serve. Suponiendo que tienes instalado un servidor apache, una aplicación laravel e...

by Darío Rivera


Instalación Laravel

2019-07-01 Laravel Laravel 5.8 Laravel 6x

Laravel ha demostrado ser uno de los frameworks con más acogida entre los desarrolladores experimentados en PHP. No solamente por su estilo elegante de código sino también por implementar una gran cantidad de patrones de diseño y herramientas avanz...

by Darío Rivera