Cómo cargar fuentes web de manera inteligente

2020-05-29 Laravel

Utilizar fuentes personalizadas al día de hoy mejora notablemente la apariencia visual de una página web. Sin embargo, cargar fuentes web de la manera estándar puede reducir el desempeño de tu página en varias formas que tal vez no hayas considerado. ...

by Darío Rivera


Optimizar tiempos de carga web en archivos CSS

2020-05-29 Laravel

Uno de los aspectos más representativos en el tiempo de carga de una página web son sus archivos CSS. La razón es simple, los navegadores paran el rederizado de la página hasta no haber cargado, parseado y ejecutado cada uno de los archivos CSS dentro ...

by Darío Rivera


Instalación de Apache Haus en Windows

2020-05-26 Apache

Cuando utilizo Windows no soy de las personas que suele instalar Wamp, Xamp o cualquier otra herramienta precompilada "todo en uno" de PHP + Apache + Mysql. Estas herramientas tienen sus ventajas y desventajas, siendo la más importante de sus ventajas la ...

by Darío Rivera


Protege tu servidor Linux con UFW (Uncomplicated Firewall)

2020-05-24 GNU/Linux Debian

A medida que tus proyectos crecen, bien sea un servido SaaS, un blog, un ecommerce, etc, necesitas mejorar tu infraestructura y la seguridad de tus servidores. Una de las formas más sencillas para mejorar la seguridad es instalar un firewall en tus servid...

by Darío Rivera


Certificado SSL con Let's Encrypt

2020-05-24 OpenSSL

Let's Encrypt es una autoridad de certificación que permite acceder a certificados SSL de manera fácil y gratuita. Varias organizaciones alrededor del mundo están detrás de este proyecto entre las que sobresalen Facebook, Google Chrome, Mozilla Foundat...

by Darío Rivera


Redirección HTTP a HTTPS en apache

2020-05-24 Apache

Una vez has logrado instalar un certificado SSL en tu sitio web deseas que todo el tráfico actual por HTTP sea redireccionado a HTTPS. Con apache esta labor es bastante sencilla y puedes realizarla de dos maneras principalmente que veremos a coninuación....

by Darío Rivera


Tipos de Certificados SSL

2020-05-23 OpenSSL

Una de las primeras preguntas que nos surgen cuando vamos a adquirir un certificado SSL es ¿Qué tipo de certificado debo adquirir?. Y es que dependiendo de tus necesidades deberás adquirir un tipo de certificado u otro. Antes de comenzar a explicar un p...

by Darío Rivera


Creación de un usuario seguro para ingreso por SSH en Debian

2020-05-23 SSH

Es común acostumbrarse a utilizar el usuario root después de haber creado tu servidor en cloud y haber obtenido dichas credenciales. Bien sea si creaste un droplet en Digital Ocean o en cualquier otra compañía ser servicios en cloud como AWS. Incluso, ...

by Darío Rivera


Integración con PayPal - Checkout con Smart Payment Buttons

2020-05-22 PHP

Una de las formas más sencillas de recibir pagos a través de tu página web es realizar una integración de pagos con PayPal. La integración que vamos a ver en este post corresponde al Checkout con Smart Payment Buttons. Paso 1 - Crea tu cuenta ...

by Darío Rivera


Configurar aplicación Laravel en cpanel

2020-05-19 Laravel

Ya sabes Ingresar por SSH a tu cuenta de cpanel y ahora deseas Instalar Laravel en tu servidor web. La cuestión con la instalación de laravel, es que hay que configurar de manera adecuada el virtualhost en apache. Sin embargo, en cpanel es realmente...

by Darío Rivera


Hola mundo en lenguaje C

2020-05-17 Lenguaje C

En nuestro anterior post de Introducción al lenguaje C, vimos las características principales, ventajas y desventajas de este maravilloso lenguaje. El día de hoy vamos a tomar manos a la obra, y realizaremos nuestro primero programa en C, el clá...

by Darío Rivera


Hola mundo en lenguaje C++

2020-05-17 Lenguaje C++

En nuestro anterior post de Introducción al lenguaje C++, vimos las características principales, ventajas y desventajas de este maravilloso lenguaje. El día de hoy vamos a tomar manos a la obra, y realizaremos nuestro primero programa en C++, el ...

by Darío Rivera


Introducción al lenguaje C

2020-05-16 Lenguaje C

El lenguaje C fue creado por Denis Ritchie en 1972 en los laboratorios Bell. Este lenguaje fue creado con el propósito de desarrollar programas pensando en el problema y no en la arquitectura de la computadora. Sin embargo, C permite también comun...

by Darío Rivera


Introducción al lenguaje C++

2020-05-16 Lenguaje C++

El lenguaje C++ fue creado por Bjarne Stroustrup a principios de los años 80 en los laboratorios Bell. C++ puede verse como un superconjunto de C, ya que conserva su velocidad, eficiencia, facilidad de comunicación con el hardware, y muchas otr...

by Darío Rivera




Loggear todas las consutas de MySQL en un archivo

2020-05-14 MySQL

Hace algún tiempo publicamos un artículo para Hacer Debug a Locks en base de datos MySQL. Sin embargo, muchas veces necesitamos tener una traza completa de cuáles son las consultas ejecutadas paso a paso en el motor de base de datos independientemente l...

by Darío Rivera


Abreviaciones de Límites de palabras en Expresiones Regulares

2020-05-13 RegExp

En nuestro anterior post estudiamos las Expresiones Regulares. Vimos los cuantificadores, clases, clases abreviadas, alternación, grupos y otros conceptos interesantes. Dentro de las abreviaciones de clases existen dos particularmente que no vimos por s...

by Darío Rivera


Frontend en Laravel con Bootstrap y Vue

2020-05-05 Laravel Laravel 6x

Una de las primeras preguntas que te pueden surgir al iniciar con Laravel es ¿ Cómo se maneja el Frontend ?. Pues te tengo buenas noticias, Laravel tiene un excelente scaffolding para CSS y JavaScript que te permite de manera rápida estructurar tus...

by Darío Rivera


Configurar API de Gmail

2020-05-04 Laravel

Hace algunos días tuve bastantes problemas con el servicio de envío de correos de cpanel. Si el servicio no era demasido lento, entonces fallaba como lo pude comprobar desde el track mail de cpanel. Debido a estuve buscando varias alternativas y haciendo...

by Darío Rivera


Expresiones regulares

2020-05-04 RegExp

Las expresiones regulares (regex o regexp) son secuencias de caracteres que definen patrones de búsqueda. Son usualmente utilizadas en validaciones de datos y búsqueda y reemplazo de texto. El día de hoy veremos a grandes rasgos los elementos esenciales...

by Darío Rivera


Configuraciones de Sublime Text esenciales después de la instalación

2020-05-04 Sublime Text

Hace ya algunos meses que posteamos el artículo 16 plugins de Sublime Text que no puedes dejar de tener. Sin embargo, hay algunas configuraciones nativas de sublime que nos facilitarán la vida. En este post veremos cuales son las que considero son l...

by Darío Rivera


Implementar reCAPTCHA v2 con checkbox

2020-05-03 Laravel

El día ayer vimos los diferentes tipos de reCAPTCHA provistos por Google en nuestro post Agregar reCAPTCHA a tus formualrios. Cada tipo de reCAPTCHA sirve para un propósito diferente como te habrás dado cuenta, el día de hoy veremos cómo implementar e...

by Darío Rivera


Utilizar servicio de Gmail para enviar correos desde Laravel

2020-05-02 Laravel Laravel 6x

Hace algunos días tuve bastantes problemas con el servicio de envío de correos de cpanel. Si el servicio no era demasido lento, entonces fallaba como lo pude comprobar desde el track mail de cpanel. Debido a esto estuve buscando varias alternativas y hac...

by Darío Rivera


Agregar reCAPTCHA a tus formularios

2020-05-02 Laravel Laravel 6x

Los sitios web que empiezan a tener un tráfico de red elevado comienzan a experimentar spam en formularios de contacto, cajas de comentarios y cualquier formulario que sea de fácil llenado en el sitio. Se hace realmente molesto clasificar cada mensaje pa...

by Darío Rivera


Convenciones de Eloquent en Laravel

2020-05-01 Laravel Laravel 6x

Al iniciar con laravel es muy fácil olvidar el comportamiento por defecto con relación a Eloquent. En este post enumararemos algunas normas que laravel da por hecho que facilitarán tu vida. Si estás aquí y no sabes qué es Eloquent te recomandamos lee...

by Darío Rivera


Sentencias de Iteración en Java (while, do-while)

2020-04-30 Java

En un post anterior de esta serie hemos visto Setencias de Decisión en Java (switch), el día de hoy comenzaremos con las sentencias iterativas de las cuales veremos Do-While y While. Las sentencias iterativas permiten ejecutar un bloque de código t...

by Darío Rivera


Conversión de tipos en PHP

2020-04-22 PHP

Recordemos que PHP es un lenguaje débilmente tipado, es decir, que no controla los tipos de variables que declara. De esta manera es posible utilizar variables de cualquier tipo en un mismo escenario. El tipo de una variable en PHP cuando no es declarado,...

by Darío Rivera


Declaración de Variables en PHP

2020-04-19 PHP

Las variables en PHP se declaran anteponiendo el signo dólar ( $ ) antes de nombre de la variable. A continuación veremos algunas reglas que debes tener en cuenta para el nombramiento de variables. Reglas para el nombramiento Case-Sensitivity: Todo...

by Darío Rivera


Introducción al lenguage de programación PHP

2020-04-18 PHP

PHP (Hypertext Preprocessor) es un lenguaje de scripting de alto nivel de tipo imperativo, orientado a objetos (desde PHP 5), y de propósito general desarrollado en el lenguaje de programación C/C++. PHP es utilizado generalmente para el desarrollo de ...

by Darío Rivera


Introducción a la Programación Orientada a Objetos

2020-04-18 POO

La programación orientada a objetos como paradigma de programación intenta modelar los objetos del mundo real para resolver problemas que puedan ser representados en un programa informático. Cada objeto del mundo real posee propiedades inherentes a s...

by Darío Rivera


Instalar la última versión de npm y Nodejs en GNU/Linux Debian

2020-04-17 GNU/Linux Debian

Es común encontrarse con que la versión estable de GNU/Linux Debian no cuenta con los paquetes de npm y nodejs actualizados. Bien sea que necesites solo actualizar npm o nodejs en este post te enseñamos como. Instalación Lo primero que debes hace...

by Darío Rivera


Setencias de Decisión en Java (switch)

2020-04-17 Java

En nuestro anterior post hemos visto las Setencias de Decisión en Java (if-then, if-then-else), el día de hoy completaremos este tema con la sentencia Switch. Recuerda que las sentecias de control nos permiten ejecutar bloques específicos de códig...

by Darío Rivera


Setencias de Decisión en Java (if-then, if-then-else)

2020-04-16 Java

Las sentencias de control de flujo nos permiten ejecutar bloques específicos de código basados en una decisión. Recordemos que el flujo general de un programa es de arriba hacia abajo, es decir, se ejecuta desde la primera línea hasta la última. En es...

by Darío Rivera


Configurar dominio en Digital Ocean (Apache + PHP)

2020-04-14 Digital Ocean

Ya hemos visto en un anterior post lo que considero los primeros pasos con digital ocean. El día de hoy, veremos cómo configurar un dominio tuyo previamente adquirido con algún provider como GoDaddy, para que puedas publicar tus proyectos de manera senc...

by Darío Rivera


Instalar Apache, PHP y MySQL en Debian 10 (Buster)

2020-04-14 GNU/Linux Debian

Debian Buster es actualmente la versión estable del sistema operativo GNU/Linux Debian. Si eres desarrollador web o necesitas configurar un proyecto desarrollado en PHP con Apache y MySQL este tutorial es para ti. Instalación El primer paso consist...

by Darío Rivera


Instalar extensiones de PHP en Debian

2020-04-14 GNU/Linux Debian

En debian es relativamente sencillo instalar extensiones de PHP. Lo primero que debes tener en cuenta es el nombre de la extensión que vas a instalar, por ejemplo intl. La manera más sencilla de instalar esta extensión es ejecutar el siguiente comando. ...

by Darío Rivera


Importar una base de datos MySQL desde consola

2020-04-09 MySQL

En nuestro anterior post vimos Cómo exportar una base de datos MySQL desde consola. El día hoy, veremos cómo realizar la importación o restauración de dicho backup. Si más preámbulo puedes utilizar el siguiente comando para relizar la importación d...

by Darío Rivera


Exportar una base de datos MySQL desde consola

2020-04-07 MySQL

En este post veremos algo sumamente necesario e importante al moment de realizar tus backups de bases de datos MySQL. Cuando tienes una aplicación en este motor de base de datos suele ser una tarea recurrente sacar periódicamente una copia de la base de ...

by Darío Rivera


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 consideran cada uno de los posibles escenarios de conversión. En el presente post, veremos los que considero son los más relevantes y/o utilizados. Conversión de Ampliación Primit...

by Darío Rivera


Declaración de Variables en Java

2020-03-21 Java

Recordemos que Java es un lenguaje de programación de tipado estático, es decir que comprueba la tipificación de variables en la compilación y no en la ejecución. Esta característica hace que en Java existan formas particulares de declarar e iniciali...

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 Javascript

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 cpanel

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

Cuando trabajas con bases de datos relacionales una que otra vez te habrá tocado realizar una transacción para asegurar la integridad de los datos. Cuando tu aplicación tiene un número considerable de transacciones o has realizado alguna de manera inco...

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