Cómo obtener la IP real de un visitante en PHP

Algoritmo para obtener IP en PHP

En esta entrada vamos a ver rápidamente una manera muy común para obtener la dirección IP de un usuario que visite nuestra web.

Encapsularemos el snippet de código en una función de manera que se pueda colocar en alguna parte de la aplicación que sea común a toda ella, y así si es necesario obtener la IP desde diferentes sitios podremos reutilizar la función. A continuación vamos a ver el código y después lo comentaremos.

Seguir leyendo «Cómo obtener la IP real de un visitante en PHP»

Crea una entrada Cron fácilmente con Crontab Guru

Editor cron online

Las tareas cron de los sistemas Linux y Unix son tareas programadas en el sistema para que se ejecuten cada tiempo determinado. En esta web ya se ha hablado de cómo configurar cron para automatizar tareas, incluso mostrando un ejemplo de cómo programar un backup remoto de una base de datos que luego podamos ejecutar desde un cron para que se haga cada día, por ejemplo.

Ahora bien, seguro que si estás leyendo esto es porque ya tienes idea de qué es un cron, pero te interesa agilizar la manera de generarlos.

Seguir leyendo «Crea una entrada Cron fácilmente con Crontab Guru»

Sin señal en el segundo monitor en Ubuntu 18.04 y gráfica Nvidia

Sin imagen en el monitor

Mi ordenador principal es una torre con dos pantallas conectadas, gracias a las cuales consigo tener un flujo de trabajo más óptimo ya que en una de ellas tengo el navegador o la terminal por ejemplo, y en la otra tengo el editor de código. Igual me iría bien uno de esos alargados monitores curvos, pero hoy por hoy es lo que hay, y me tiene que durar bastante.

El caso es que hoy he encendido el ordenador y solamente se veía uno de los dos monitores. El segundo se mantenía en negro, con el mensaje no signal de aquí para allá. Tras trastear un rato con el cable, me di cuenta de que siempre tengo activado el modo luz nocturna, pero éste estaba deshabilitado. Y las transiciones al cambiar escritorio o enviar una ventana a uno de los lados también estaban deshabilitadas. Empecé a pensar entonces que igual el problema estaba en la targeta gráfica, una vieja Nvidia GeForce GTX1050.

Seguir leyendo «Sin señal en el segundo monitor en Ubuntu 18.04 y gráfica Nvidia»

Cómo usar un disco externo en tu Raspberry Pi

Muchos usuarios que hayan comprado una Raspberry Pi con la idea de utilizarla como media center habrán visto, desilusionados, que su nuevo aparatito no reconoce el disco externo alimentado por USB, o que éste hace varios clicks, encendiéndose y apagándose la luz, pero sin resultados satisfactorios: la Raspberry no es capaz de abrirlo.

Esto es debido a que, por defecto, la configuración de la Raspberry permite a los puertos USB alimentarse con 600 mA, lo que es insuficiente para muchos discos duros externos. En este post vamos a ver la manera de hacer que nuestra pequeña alimente los USBS con 1200 mA, suficiente para que la mayoría de discos externos funcionen. Si aún después de esto tu disco sigue fallando, tendrás que buscar otras maneras, como alimentación directa a la corriente…

Seguir leyendo «Cómo usar un disco externo en tu Raspberry Pi»

Cómo configurar una red oculta en tu Raspberry Pi

La red wifi de mi casa está oculta. Manías que tiene uno. Pero como cualquier portátil, móvil o tablet tiene la opción de conectar a redes ocultas, esto no supone más problema que obligarme a dar un paso más a la hora de configurar el dispositivo.

Pero hace poco adquirí una Raspberry Pi, con la idea de montar un servidor de bajo coste y consumo, y puntualmente usarla de centro multimedia. Pero el primer problema apareció al arrancar el escritorio de Raspbian, la distro Linux para estos cacharritos: no podía conectarme a redes ocultas con las opciones que da por defecto.

Tocaba buscar la manera de hacerlo, y encontré este artículo que lo explica detalladamente. Vamos a verlo.

Seguir leyendo «Cómo configurar una red oculta en tu Raspberry Pi»

Precarga de imágenes con jQuery

No hace mucho tuve que lidiar con un proyecto en el que, en uno de los apartados, había un listado de restaurantes, ordenados en forma de grid mediante Isotope, y que al clicar sobre cualquiera de ellos se desplegaba un apartado con unas cuantas fotos del sitio. Al final habían un montón de fotos y la página tardaba una eternidad en aparecer: Isotope no arrancaba hasta que toda la página (imágenes incluídas) habían cargado. Y cargar las imágenes por Ajax al clicar sobre un elemento estaba descartado.

Intenté cargar las imágenes mediante $(document).ready pero no había manera, se seguían cargando junto con el resto del contenido. Pero al final encontré una solución.

Seguir leyendo «Precarga de imágenes con jQuery»

Cómo proteger con contraseña una web mediante .htaccess y .htpasswd

Es habitual en un servidor web tener una o varias carpetas con datos sensibles a los que no queremos que pueda acceder cualquiera. O incluso un BackOffice sencillo para la gestión del sitio.  Sin embargo, no siempre hay necesidad de complicarse programando un login con cuentas de usuario y sesiones, aunque siempre es recomendable.

Para esos sencillos casos y muchos otros, el servidor web Apache tiene una característica muy interesante y sencilla de emplear: las directivas de autenticación de .htaccess, que junto con el archivo .htpasswd que contendrá pares de usuario-contraseña (estas últimas encriptadas) blindarán el directorio (y sus subdirectorios) en el que se encuentren.

Seguir leyendo «Cómo proteger con contraseña una web mediante .htaccess y .htpasswd»

Simula una pantalla CRT de los noventa con Cool-Retro-Term en Linux y Mac

Lo retro está de moda. Recuerdo que cuando era niño me fascinaba ver aquellos primeros hackers del cine aporrear teclados escribiendo órdenes en grandes monitores de fósforo verde, colándose en los sistemas de las grandes corporaciones, o incluso en el ordenador del colegio para modificar las notas en cuestión de segundos.

Cuando tuve mi primer ordenador, también con monitor de fósforo verde, me pasaba horas jugando con el Basic, sintiéndome como aquellos magos digitales que había visto en las películas. Quizás todo eso me haya condicionado, pero aún hoy siento algo especial cuando abro una sesión en una línea de comandos. Y seguro que no soy el único amante de la retroinformática.

Por eso mismo, siempre he configurado la terminal con letras verdes sobre fondo negro, pero gracias al trabajo de Filippo Scognamiglio (aka Swordfish) ahora podemos disfrutar de una experiencia mucho más cercana a la original. Podemos emular una pantalla CRT (de tubo de toda la vida) para obtener una experiencia retro desde nuestra sesión de línea de comandos. Y lo podemos hacer tanto en Linux como en Mac OS.

Seguir leyendo «Simula una pantalla CRT de los noventa con Cool-Retro-Term en Linux y Mac»

Cómo calcular el tiempo de ejecución de un script PHP

Hay infinidad de situaciones en las que es necesario conocer el tiempo de ejecución de un script PHP, generalmente de cara a su optimización. En páginas complejas, que contengan consultas a bases de datos y AJAX, por ejemplo, se hace necesario identificar los cuellos de botella que hacen que la carga se ralentice. Para ello, PHP pone a nuestra disposición la función microtime().

Seguir leyendo «Cómo calcular el tiempo de ejecución de un script PHP»

SweetAlert, reemplaza los alerts y prompts Javascript por un bonito modal

Si has hecho desarrollo web, seguro que alguna vez te has encontrado con la necesidad de lanzar un aviso al usuario mediante JavaScript. O quizás pedirle confirmación para ejecutar un evento. Y seguro que has utilizado las sufridas funciones alert() y prompt() para ello.

Pero claro, el resultado es muy espartano, o incluso poco profesional, dependiendo de la web. Y aunque hay alternativas interesantes, como el widget Dialog de jQuery UI, necesitan de algo de tuneo porque de serie son un pelín toscas.

Hoy os voy a dar a conocer una librería fantástica que nos proporciona una alternativa bonita y agradable a la hora de mostrar los mensajes por pantalla: se trata de SweetAlert, de Tristan Edwards, y el resultado que obtenemos es espectacular.

Seguir leyendo «SweetAlert, reemplaza los alerts y prompts Javascript por un bonito modal»