Demostración, explicación, ejemplos y usos de String args en Java

¿Qué significa String[] args en Java?

Todo programador que haya programado en Java ha hecho el hola mundo, y por lo tanto definido el método main en Java.

Pero a veces surge la duda de qué quiere decir String[] args en el método main en Java, porque es un dato que se pasa al método main.

Demostración, explicación, ejemplos y usos de String args en Java

Demostración, explicación, ejemplos y usos de String args en Java

Pues bien, en este post voy a explicar lo que quiere decir String[] args en el método main, así como su razón de que esté ahí y sus usos.

(más…)

Archivo de Excel que vamos a importar hacia MySQL usando PHP

Importar datos de Excel a MySQL con PHPSpreadSheet, PDO y PHP

Importar datos de Excel a base de datos de MySQL usando PHP

Ya vimos cómo exportar datos de MySQL a un libro de Excel. Ahora haremos el proceso inverso: a partir de un archivo de Excel leer algunas hojas y poner sus datos dentro de nuestra base de datos de MySQL.

Digo muy en serio que vamos a hacer el proceso inverso, porque usaré la misma base de datos que en el post anterior así que recomiendo leerlo antes.

(más…)

Throttle en Laravel

Rutas en Laravel parte 2: prefijos, fallback, límite de tasa y formularios

Continuación de la explicación de las rutas en Laravel 5.7

Ya vimos la introducción a las rutas en Laravel, en donde exponemos las cosas más importantes y comunes. Este post es la continuación del anterior, y ahora vamos a ver:

  • Prefijos en las rutas para agruparlas
  • Ruta de fallback cuando no se encuentra alguna ruta que coincida con la petición, algo así como manejar un error 404
  • Límite de tasa para limitar las peticiones, usando el middleware de throttle
  • Generación de los verbos HTTP dentro de formularios, por ejemplo PUT, DELETE o esas cosas

Son cosas un poco más avanzadas pero nada imposible de entender.

(más…)

Invertir cadena en Java con ciclos y StringBuilder

Invertir una cadena o String en Java

En este post voy a explicar dos maneras de invertir o “reversear” una cadena en Java. Es decir, dada una cadena, obtener la cadena al revés o la cadena invertida.

Invertir cadena en Java con ciclos y StringBuilder

Invertir cadena en Java con ciclos y StringBuilder

Estos dos métodos para invertir una cadena en Java funcionan igual pero están programados de distinta manera. El primero utiliza un ciclo for para iterar la cadena, y el segundo método llama a una función de la clase StringBuilder.

Nota: recomiendo leer cómo escanear datos por teclado en Java.

(más…)

Hoja de Productos dentro de libro con contenido de MySQL

Exportar datos de MySQL a Excel con PHP, PHPSpreadSheet y PDO

Crear libro de Excel a partir de una base de datos de MySQL

En este artículo voy a explicar cómo podemos exportar los datos de una base de datos de MySQL a un archivo de Excel u hoja de cálculo.

Vamos a usar PDO para conectar a la base de datos, y PHPSpreadSheet para crear un archivo de Excel y escribirle los datos traídos desde la tabla de la BD.

Actualización: mira este post para aprender a copiar datos de Excel a MySQL.

(más…)

Leer datos del teclado en Java (introducidos por el usuario) y validar números o cadenas al leer con Scanner

Leer datos introducidos por el usuario a través del teclado con Java

Con Java podemos leer datos del teclado (que son introducidos por el usuario) a través de la clase Scanner. En este post voy a explicar su uso un poco más detallado para manejar excepciones y también explicaré los otros métodos para leer un booleano, entero, flotante, cadena u otro tipo de dato.

Leer datos del teclado en Java (introducidos por el usuario) y validar números o cadenas al leer con Scanner

Leer datos del teclado en Java (introducidos por el usuario) y validar números o cadenas al leer con Scanner

En resumen, veremos cómo leer datos introducidos por el teclado en Java, y además:

  • Instanciar de la clase Scanner
  • Manejo de excepciones al leer datos del teclado
  • Todos los métodos que existen con Scanner
  • Leer un entero, cadena, flotante y más tipos de datos

Vamos allá.

(más…)

Android: solución a Resources$NotFoundException: String resource ID

Este es un post rápido en donde voy a explicar cómo se origina el error y cómo arreglar el error que dice algo así:

Resources$NotFoundException: String resource ID at android.content.res.Resources.getText at android.widget.TextView.setText

El error nos está indicando que no encuentra un recurso con determinado ID al llamar al método setText de un TextView. Vamos a ver cómo arreglarlo y sus orígenes, para que a la próxima no ocurra de nuevo.

(más…)

Anatomía de un mensaje de log en Laravel 5.7

Laravel: Loguear errores y mensajes a archivo de log con Monolog

Aprendiendo a loguear errores y mensajes con Laravel 5.7

Hoy vamos a ver una cosa imprescindible en toda aplicación web: el logueo de mensajes o errores dentro de un log.

Laravel, el framework más poderoso de PHP (según yo), viene con el logueo de errores configurado por defecto y permite loguear errores de cualquier tipo en pocas líneas gracias a Monolog.

Anatomía de un mensaje de log en Laravel 5.7

Anatomía de un mensaje de log en Laravel 5.7

Por cierto, si no quieres loguear con Laravel y quieres usar el lenguaje puro, mira este post: Loguear mensajes de error y debug a archivos con PHP.

(más…)

Codificar y decodificar Base 64 en Ruby

Base64 se utiliza para convertir datos binarios en una representación utilizando únicamente caracteres del código ASCII. Muchos lenguajes de programación lo incorporan por defecto, entre ellos Ruby.

Hoy veremos cómo codificar y decodificar el formato base 64 en Ruby, con un módulo que ya viene en la librería estándar.

(más…)

Cargar sitios web de manera instantánea con instant.page

Mejorar y agilizar la carga de las páginas web precargando enlaces

Hace algún tiempo estuve presente en una conversación donde se discutía por qué las páginas de la documentación de cierto sitio web se cargaban de manera instantánea. Es decir, hacías click en un enlace y la carga era inmediata.

Analizando algunas cosas se descubrió que los componentes eran precargados cuando el usuario ponía el cursor sobre un enlace, es decir, cuando el usuario estaba a punto de hacer click para navegar a otro lugar.

Después de eso vi que se crearon muchas librerías, y justamente hoy vamos a ver cómo usar una de ellas para hacer más rápida la carga de una página web a la que navega el usuario: instant.page.

(más…)

Consultar datos de una tabla usando un cursor - PDO, PHP y MySQL

PHP y PDO parte 2: iterar con cursor y comprobar si elemento existe

Continuación de PDO con PHP para trabajar con bases de datos

En otro post ya hemos visto las bases para trabajar con PHP, PDO y MySQL (también SQLite). Ahora veremos dos cosas que vienen de ayuda al trabajar con PDO:

  1. Seleccionar datos y recorrerlos con un cursor en lugar de obtenerlos como arreglo
  2. Comprobar si un elemento existe en la base de datos
Consultar datos de una tabla usando un cursor - PDO, PHP y MySQL

Consultar datos de una tabla usando un cursor – PDO, PHP y MySQL

El primer punto viene de maravilla cuando hablamos de rendimiento. El segundo sirve para muchas cosas, por ejemplo, ver si un usuario ya existe al registrarse o cosas de esas.

(más…)

Descargar librería de JSON

Parsear o decodificar JSON con Java, JSONObject y JSONArray

Convertir cadena JSON a objetos nativos de Java

JSON se ha convertido en el formato estándar para el intercambio de datos entre sitios web; dejando atrás a XML por su complejidad y dificultar para ser leída por las personas.

Por ello es que hoy vamos a ver cómo parsear o decodificar una cadena JSON dentro de un objeto nativo de Java, sin importar si es un arreglo u objeto, anidado o no anidado.

Esto será un poco complejo ya que Java es un lenguaje fuertemente tipado y no podemos hacerlo tan simple como en JavaScript.

(más…)

3 - Librería importada y autocompletando import

Añadir librerías o archivos JAR a NetBeans

Incluir paquetes de terceros en el IDE NetBeans

Cuando programamos en Java a veces es necesario incluir algunas librerías de terceros, por ejemplo un conector de bases de datos o algo simple como para parsear un JSON.

Normalmente estos paquetes se pueden descargar en formato JAR, algo así como un compilado; y justamente ahí viene una pregunta: ¿Cómo incluir un paquete JAR dentro de un proyecto de NetBeans?

Justamente hoy vengo a responder esa pregunta.

(más…)

Algoritmo de cifrado César en Ruby

Algoritmo de cifrado César en Ruby

Anteriormente vimos el cifrado César en C y el cifrado César en Python. No explicaré detalladamente cómo funciona el algoritmo pues a ello ya le dediqué otro post.

Lo que nos reúne aquí hoy es la implementación del algoritmo de “cifrado” César en el lenguaje de programación Ruby.

Algoritmo de cifrado César en Ruby

Algoritmo de cifrado César en Ruby

Al final vamos a crear una función que cifra y descifra según el cifrado de César, con un número de rotaciones definido por nosotros.

(más…)