Publi

  • Cómo hacer login por Facebook en PHP paso a paso

    site_access

    Hace unos años hice una serie de tutoriales (este, este y este, entre otros) para interactuar con Facebook. Con el tiempo, se han ido quedando antiguos. Han pasado muchas cosas y no he vuelto a revisarlos (además, han dejado de funcionar los antiguos métodos), por lo que he decidido, por fin, renovar toda aquella información.

    Aunque esta información cambie con el tiempo, parece que Facebook ha llegado a un punto estable en el que no habrá cambios mayores en su API a no ser que se descubra una vulnerabilidad grave a nivel de diseño, aunque nunca podemos descartarlo.… Leer artículo completo

  • Cómo expulsar todas las sesiones MySQL de un usuario en particular desde un script

    502729552_aaa355b1ce_o

    Muchas veces, puede que tengamos una aplicación no muy bien depurada en nuestro servidor web. A dicha aplicación le hemos dado su propio usuario MySQL y observamos que las conexiones no se cierran adecuadamente.

    Temporalmente puede que la solución sea expulsar de vez en cuando todos los usuarios que siguen activos, con el fin de no saturar nuestro servidor MySQL. Puede que en otros servicios que tengamos activos hayamos visto el mensaje «Too many connections» impidiendo así el acceso a los demás servicios.… Leer artículo completo

  • Cómo buscar en un vector o una lista de mapas en C++

    photo-1433357094834-cdeebc8e9dce_r

    Una de las cosas que hacen mágico C++ es que podemos crear estructuras realmente grandes valiéndonos de las clases y estructuras de que disponemos. Vale, en otros lenguajes también podemos hacerlo, pero en C++ parece más grande aún dada la literatura de los tipos. Bueno, en Java podemos llegar a tener mucha más literatura, pero hoy el tema es C++.

    ¡ Una lista de mapas ! ¿Para qué?

    Bueno, el primer paso es hacer un ejemplo práctico para el que una lista de mapas puede ser útil y, por ejemplo, puede ser para almacenar información estructurada.… Leer artículo completo

  • Cómo extraer duración, fotogramas, bitrate y fps de un vídeo para nuestros scripts

    1200px-Film_strip

    Seguramente en nuestros scripts, si tratamos con archivos de vídeo, nos interese conocer información sobre el mismo. Tal vez podamos extraer más información de un archivo de vídeo con un software especializado como VLC; pero para hacer unos cálculos rápidos o una conversión de formato nos va a venir muy bien.

    Programas como avconv o ffmpeg son capaces de extraer información básica del vídeo. Es más, programas como identify (de imagemagick) entre otros, en realidad llaman por detrás a uno de los dos primeros para realizar la identificación del archivo.… Leer artículo completo

  • Creando un cliente para un servicio de red con pocas líneas en C++

    neon_open_splitshire_r

    En la era actual, es muy importante que múltiples aplicaciones accedan a servicios online para obtener la información que desean (o incluso enviarla). Es decir, las aplicaciones han perdido su simplicidad de ejecutarse en una sola máquina, y han pasado a ejecutarse en múltiples máquinas conectadas a través de Internet.

    Y, aunque muchos piensan que C++ no es un lenguaje muy indicado para ello, y que no se pueden hacer estas cosas.… Leer artículo completo

  • Cómo comprimir y descomprimir datos en memoria o textos en 128 líneas o menos en C

    photo-1417514645232-3042464af1da_r

    Si queremos que nuestra información ocupe menos, ésta es una buena forma de conseguirlo. Muy útil cuando queremos transmitir información y reducir los bytes transmitidos, es lo que hacen muchas páginas web actualmente, el servidor nos manda la página comprimida y luego el navegador se encarga de descomprimirla antes de mostrarla y como por lo general se tarda menos en comprimir-enviar-descomprimir que en enviar sin comprimir antes es algo que acelera la navegación web.… Leer artículo completo

  • Cómo instalar o migrar el TPV de Redsys en tu web (nueva versión SHA256)

    negativespace1-21

    Hoy vamos a hablar de Redsys, una plataforma de comercio electrónico seguro que cubre el proceso completo de compra online, desde el acceso a la página web del comercio, hasta el proceso de autorización del pago, previa autentificación del cliente.

    ¡ Este post es una colaboración ! Y debemos agradecérselo a

    Cristina Soler. (@cso1992). Desarrolladora de aplicaciones web, solucionadora de problemas (hace maravillas con PHP y Javascript) y amante de los animales

    Y mi primera colaboración en el blog con un post que seguro que a más de uno le interesa, la reciente migración de SHA1 a SHA256 en los TPV de Redsys.

    Leer artículo completo
  • Callbacks en C++11, llamando a métodos con un objeto asociado (II)

    2747581103_a6c79b8a38_o

    Hace dos semanas hablábamos de Callbacks en C++11 nuevas posibilidades para un software más potente . Empezamos con una pequeña introducción para «almacenar» una función en una variable o un argumento de función y llamarla desde ahí, incluso introdujimos las funciones anónimas o lambdas.

    Ahora, como no podía ser de otra forma, y dado que estamos en un lenguaje orientado a objetos, en el que queremos aprovechar todo su potencial. Vamos a hacer varios ejemplos en los que llamaremos a métodos de una clase de varias formas diferentes.… Leer artículo completo

  • Facebook y otras redes sociales para «espiar» y vivir mejor

    cortina-ducha-facebook1

    Bueno, seguro que muchos de vosotros ya lo ponéis en práctica. Y es que, gran porcentaje de la gente, no puede vivir sin Internet, sin estar conectado, y revela gran cantidad de datos personales en Internet, ¿por qué? porque confía en que unas páginas tan grandes manejen de forma correcta sus datos, no revelen nada a nadie y, porque gente de sus círculos más próximos lo hacen también.

    Además, muchas de estas personas, no configuran bien su privacidad, y hacen caso a cualquier cosa que les pregunta Facebook.… Leer artículo completo

  • Usando SQLite en nuestros programas en C/C++ (II): Nueva interfaz v2 y prepared statements

    Hace unos días empezamos a programar utilizando SQLite para gestionar nuestra información usando SQL de toda la vida.

    Bien, SQLite tiene la interfaz clásica, que vimos en el post anterior: sqlite3_open(), sqlite3_close(), sqlite3_exec()… con utilidades básicas para trabajar.

    Por un lado, podemos tener más control sobre la base de datos, por ejemplo, podemos definir cómo abirmos la base de datos, tenemos códigos de error extendidos, ventajas con respecto al tratamiento interno de la memoria y algunas cosas más.… Leer artículo completo