Comprobar si elemento existe en arreglo o buscar índice en Ruby

En este post veremos dos cosas con arreglos y Ruby: cómo saber si un elemento existe en un arreglo, y cómo buscar u obtener el índice de un elemento dentro de un arreglo. Saber si un elemento existe es útil cuando estamos haciendo una lista de valores que no se repiten, y buscar el índice funciona para cuando necesitamos hacer algo con un elemento en caso de que no exista. Veremos dos funciones con Ruby y arreglos: index e include. ...

febrero 11, 2019 · 2 min · 295 palabras · Parzibyte

Loguear errores y mensajes en PHP en archivo de texto con un logger

Crear un simple logger en PHP para depurar y escribir errores en archivo de texto Depurar nuestro código de PHP es uno de los pasos más importantes de la programación. Una gran ayuda que tenemos a nuestra disposición son los logs o archivos de log. Hoy veremos cómo escribir mensajes de error y depuración (o debug) en archivos de texto usando PHP sin usar librerías externas, únicamente funciones nativas y un poco de código al inicio de nuestro script. Gracias a esto podremos escribir mensajes de información y también llevar un registro de errores sin mostrarlos al usuario, con fecha y hora de llamada así como el script de llamada. Un ejemplo del log que vamos a crear (esto dependerá de tu app pero para que te des una idea) es este: [07-Feb-2019 09:37:29 America/Mexico_City] Soy un mensaje [07-Feb-2019 09:37:29 America/Mexico_City] PHP Warning: Division by zero in D:\desarrollo_php\htdocs\loguear\index.php on line 9 [07-Feb-2019 09:37:29 America/Mexico_City] Mensaje desde la línea 12 del archivo D:\desarrollo_php\htdocs\loguear\index.php [07-Feb-2019 09:37:29 America/Mexico_City] Hola, yo soy parzibyte y mi sitio es parzibyte.me [07-Feb-2019 09:37:29 America/Mexico_City] Los personajes son: a:4:{i:0;s:5:"Crash";i:1;s:10:"Fake Crash";i:2;s:4:"Pura";i:3;s:5:"Polar";} [07-Feb-2019 09:37:29 America/Mexico_City] La mascota: array ( 'nombre' => 'Maggie', 'edad' => 3, 'amigos' => array ( 0 => array ( 'nombre' => 'Guayaba', 'edad' => 2, ), 1 => array ( 'nombre' => 'Meca', 'edad' => 5, ), 2 => array ( 'nombre' => 'Snowball', 'edad' => 2, ), ), ) [07-Feb-2019 09:37:29 America/Mexico_City] PHP Fatal error: Uncaught Exception: Yo soy una excepción muy malvada in D:\desarrollo_php\htdocs\loguear\index.php:48 Stack trace: #0 {main} thrown in D:\desarrollo_php\htdocs\loguear\index.php on line 48 Veamos entonces cómo loguear con PHP, además de evitar mostrar los errores al usuario, asegurando nuestras aplicaciones web. ...

febrero 11, 2019 · 6 min · 1241 palabras · Parzibyte

Denegar y proteger acceso a carpetas y archivos con Apache y htaccess

Controlar acceso a carpetas y archivos dependiendo de extensión Apache sirve para muchísimas cosas, no podría enlistarlas ahora, es toda una rama de la informática. Normalmente este web server se utiliza en conjunto con PHP, pero además de ello, sirve archivos y directorios. Por eso es que hoy veremos cómo restringir el acceso a algunas carpetas usando Apache, y también a servir únicamente determinados archivos con alguna extensión. Nota: si quieres un acceso más “inteligente” mira el post en donde se fuerza la descarga de archivos con PHP, pues podrías servir directorios o ficheros con PHP. ...

febrero 10, 2019 · 3 min · 493 palabras · Parzibyte

Eliminar y agregar elementos a arreglo en Ruby

Hoy veremos algunas operaciones básicas con arreglos en Ruby. Se trata de agregar (operación push) elementos a un arreglo existente, así como de eliminar (pop o unshift) elementos de un arreglo a través del índice. Los arreglos funcionan cuando tenemos que guardar una lista de elementos en memoria y se necesita manipularla. Con Ruby hay muchas formas de agregar o quitar elementos de arreglos, veremos muchas de ellas. ...

febrero 10, 2019 · 3 min · 536 palabras · Parzibyte

Leer y escribir archivos CSV con Ruby

En este post explicaré cómo trabajar con CSV desde el lenguaje de programación Ruby. Vamos a leer un archivo CSV (archivo separado por comas u otro delimitador) y también a escribir contenido a un nuevo archivo. Nota: la foto del código fue tomada con Polacode y la marca de agua colocada con WaterPy. Te invito a leer antes cómo escribir y leer archivos en Ruby, para que no te confundas al leer los ejercicios aquí presentados. ...

febrero 9, 2019 · 4 min · 712 palabras · Parzibyte

Ordenar arreglos numéricos y de cadenas con Ruby

Hoy veremos cómo ordenar o sortear los arreglos en Ruby. Vamos a trabajar con arreglos de cadenas (strings) y arreglos numéricos (enteros o flotantes); además de que vamos a ver cómo ordenar a los arreglos de manera ascendente y descendente. Ruby provee un operador interesante que recientemente fue introducido en PHP, el cual es llamado operador nave espacial (quién sabe por qué, yo no le encuentro mucho parecido) y se representa así: <=> Por cierto, la foto del código fue tomada con Polacode y le puse la marca de agua con WaterPy. La peculiaridad de este operador es que evalúa dos valores y regresa 1, 0 o -1 dependiendo de que si uno es mayor, igual o menor al otro. Ya veremos en los ejemplos, el punto es que con esto podemos ordenar y comparar con pocas líneas de código. ...

febrero 8, 2019 · 5 min · 901 palabras · Parzibyte

Convertir cadena a arreglo en Ruby usando delimitador

En este post voy a explicar cómo separar una cadena o string para convertirla en un arreglo en el lenguaje de programación Ruby. Para separar una cadena se usa la función split, que funciona de manera similar a como se hace en Python. Veremos cómo convertir una cadena a arreglo en Ruby, ya sea obteniendo los caracteres de la cadena o usando un delimitador. ...

febrero 7, 2019 · 2 min · 323 palabras · Parzibyte

Generar y guardar imágenes de códigos de barras con PHP

Códigos de barras con PHP Los códigos de barras sirven para muchísimas cosas, por ejemplo, identificar a productos. Podríamos tener un sistema de ventas y generar códigos de barras dependiendo del valor de cada uno de ellos. Es por ello que en este artículo voy a explicar cómo generar códigos de barras con PHP y guardarlos en una imagen PNG o JPG, así como guardarlos en un archivo SVG o simplemente generar el código HTML necesario. ...

febrero 7, 2019 · 8 min · 1689 palabras · Parzibyte

Forzar la descarga de cualquier archivo con PHP y readfile

Obligar descarga de un fichero sin importar su extensión Cuando un navegador web visita un archivo que entiende, lo muestra. Por ejemplo, si encuentra un archivo con extensión .txt entonces lo sirve en lugar de mostrar el diálogo de descarga. Pues hoy veremos cómo servir un archivo con PHP pero forzar su descarga sin importar la extensión. No importa si es un exe, html o txt, todo será forzado a descargarse. Para esto usaremos la función readfile. Este tutorial me recuerda al que muestra cómo proteger el acceso a imágenes con Apache y PHP. ...

febrero 6, 2019 · 3 min · 625 palabras · Parzibyte

Script para respaldar base de datos de MySQL / MariaDB en Linux usando MySQLDump

En este tutorial de Linux vamos a ver cómo respaldar o hacer un backup de una base de datos completa de MySQL o MariaDB usando la utilidad de MySQLDump también llamada mysqldump. Todo eso será llamado desde un script sh programado por nosotros. Por otro lado, veremos cómo no exponer nuestras credenciales de acceso para llamar al comando sin pasarle nuestra contraseña, evitando así riesgos de seguridad. La segunda parte del tutorial (que traeré muy pronto) indicará cómo respaldar una base de datos periódicamente con cron, es decir, respaldarla cada mes, a diario o cada determinado tiempo. Nota: este tutorial está probado con ubuntu 16.04 y 18.10 pero debería funcionar para otras versiones. Por cierto, aquí puedes ver cómo instalar y configurar MySQL en Linux en caso de que no lo tengas instalado. ...

febrero 6, 2019 · 4 min · 770 palabras · Parzibyte