octubre 2018

Búsqueda binaria en arreglo de PHP

Búsqueda binaria recursiva y sencuencial en arreglo de PHP

Introducción

Veamos la implementación de un algoritmo que me gusta mucho; se trata de la búsqueda binaria. La primera vez que escuché de él fue en mi clase de Estructura de datos; ni siquiera sabía que algo así existía.

En fin, después de ello me fascinó mucho; sobre todo por la velocidad del mismo. Enseñaré cómo buscar una cadena en un arreglo usando recursividad con una búsqueda binaria, y cómo hacer lo mismo pero en un arreglo con números.

Haremos lo mismo pero usando el ciclo while; a eso se le llama búsqueda binaria en forma secuencial.

Búsqueda binaria en arreglo de PHP

Búsqueda binaria en arreglo de PHP

Nota: recuerda que este algoritmo requiere que el arreglo esté ordenado. Pásate por mi post para saber cómo ordenar arreglos de PHP.

Por otro lado, te recomiendo leer lo que son los argumentos que son tomados por referencia. Para redondear y calcular la mitad del arreglo usamos la función floor en PHP.

En caso de que obtengas errores de sintaxis con los corchetes es debido a la notación corta de arreglos en PHP.

Leer más »Búsqueda binaria recursiva y sencuencial en arreglo de PHP

Script para respaldar una base de datos de MySQL con PHP

Introducción

En una clase que acabo de tomar tuve que investigar cómo respaldar una base de datos de MySQL desde PHP. Lo que terminé logrando es un script que hace un respaldo completo y genera un archivo que se guarda en el disco duro.

Es decir, utilizando únicamente PHP respaldar una base de datos de MySQL. Nada de mysqldump o llamadas al sistema.

Investigando encontré esta respuesta de stackoverflow y me pareció útil modificarla y traducirla para explicarla aquí.

Leer más »Script para respaldar una base de datos de MySQL con PHP

Dar permiso de select, insert, update y delete a usuario en MySQL

Introducción

Esta es una entrada corta pero útil. A veces viene de maravilla saber cómo darle permisos a un usuario en MySQL de tal modo que realice las operaciones básicas de un CRUD o ABC.

Veamos cómo crear un usuario y darle permisos de:

  • select
  • insert
  • update
  • delete

Esto lo haremos con el comando GRANT en MySQL. Vamos allá.

Leer más »Dar permiso de select, insert, update y delete a usuario en MySQL

Comparar cadenas con strcmp en PHP

Introducción

Para comparar cadenas en PHP usamos la función strcmp que quiere decir algo como string compare. Esta función devuelve números, y dependiendo de ellos podemos saber si una cadena es mayor, menor o igual en PHP.

Veamos entonces esta función para saber si una cadena es igual, mayor o menor que otra. Para ello debemos saber cómo funciona el código ASCII y el alfabeto.

Leer más »Comparar cadenas con strcmp en PHP

JavaScript: tomar foto con cualquier cámara (frontal y trasera)

Introducción

Ya estamos aquí con un tercer post sobre tomar fotos con JavaScript. Este tutorial ofrece una nueva característica y es la de dar al usuario elegir cuál cámara usar para tomar la foto. En los posts anteriores únicamente tomaba de la cámara por defecto, y en algunos navegadores (Chrome, cof cof) no permite cambiar la cámara con la que se toma.

Afortunadamente eso no importa, porque podemos obtener la lista de dispositivos y cambiarlos como se nos dé la gana.

Por cierto, este post está más actualizado; usa constantes, querySelector y otras cosas que los anteriores no. Si bien esto no afecta el funcionamiento, nos da un código más bonito y entendible.

Pero basta de hablar, que hablar es de mal gusto; vamos a ver el código.

Leer más »JavaScript: tomar foto con cualquier cámara (frontal y trasera)

Agregar scroll a TextView en Android

Introducción

A veces queremos mostrar datos en un TextView en Android, pero no sabemos cuánto medirán. Si queremos que tenga un tamaño fijo pero que aparezca el scroll cuando el texto sea muy grande necesitaremos implementar una característica en este TextView.

Veamos cómo hacerlo, necesitaremos un poco de programación por parte de Java para agregar una barra de scroll o barra de navegación vertical.

Leer más »Agregar scroll a TextView en Android

Escuchar tecla presionada y cambio de texto en EditText de Android

Introducción

Hay una cosa muy simple en Android que al inicio no parece tan fácil de hacer. Se trata de escuchar el evento de una tecla del teclado (valga la redundancia) presionada en un EditText. Algo así como el keyup de JavaScript.

Lo que haremos en este post será ver cómo escuchar el evento de texto cambiado dentro de un EditText en Android. Esto viene de maravilla cuando, por ejemplo, queremos que una acción se realice cada que el usuario introduzca o borre algo de la caja de texto.

Este método se dispara cuando:

  • Pegamos texto
  • Autocompletamos del teclado
  • Escribimos algo con el teclado

Vamos allá.

Leer más »Escuchar tecla presionada y cambio de texto en EditText de Android

Diferencia entre IFNULL y COALESCE en SQL

Introducción

En otros posts ya vimos cómo usar coalesce en MySQL. Hoy veremos la diferencia entre la función IFNULL y la función COALESCE en este motor de base de datos. La diferencia es notable y es mejor entenderla antes de usar una u otra función.

Por cierto ,también veremos cuál usar en lugar de otra, sobre todo si trabajamos en otros motores SQL como SQL Server o SQLite. Ya que IFNULL es propia de MySQL (no sé en cuáles otros existe, pero no es en todos).

Leer más »Diferencia entre IFNULL y COALESCE en SQL

Solución a notificación rara de Poweramp en Android Oreo (8 y 8.1)

Introducción

Poweramp es un reproductor de música bastante bueno. Lo que me gusta de él es que con el simple hecho de conectar los audífonos o auriculares se reproduce la música, tiene un ecualizador y varias cosas buenas.

Con la actualización a Android 8.1 (o incluso a Android 8), las notificaciones comenzaron a comportarse de manera rara. A veces sólo se veían en color blanco, y eso hacía que uno se arrepintiera de haber pagado por la aplicación.

Así que bueno, veamos cómo solucionar este problema para arreglar las notificaciones del reproductor Poweramp en Android 8 también llamado Android Oreo.

Leer más »Solución a notificación rara de Poweramp en Android Oreo (8 y 8.1)