Publi

  • Cómo gestionar los parámetros de un programa en C (parte 2: parámetros largos)

    photo-1415348667647-9e035495cfb7_r

    Hace unos días publiqué Cómo gestionar los parámetros de nuestros programas con getopt en C como una introducción a la gestión de los argumentos desde nuestros programas en C. De esta forma podremos hacer nuestros programas más flexibles aceptando una entrada del usuario en forma de parámetros y así modificar el comportamiento.

    Antes de nada: WordPress cuando ve dos guiones seguidos (- y -) lo interpreta como un guión largo.… 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

  • Videoclips muy frikis de parte de la gente de SUSE

    videoclips

    La gente de SUSE lleva algunos años promocionando una serie de videoclips parodiando algunas de las canciones cambiándoles un poco la letra para adaptarlas a sus necesidades… Empezaremos por el final,

    Uptime Funk

    Sí, sí, uptime, en lugar de Uptown. Esta me encanta, después de llevar varios días que a cada cosa que me decían soltaba un «Don’t believe me, just watch» a ritmo de Mark Ronson con Bruno Mars, veo este temazo, con el que empezaré a decir: «Don’t reboot it just patch!»

    SUSE.

    Leer artículo completo
  • Cómo gestionar los parámetros de nuestros programas con getopt en C

    fruit-stall-paris-1500x1000

    Cuando hablamos de argumentos o parámetros de un programa en C, debemos pensa en los parámetros tan raros que pasamos a la función main(). En este caso, podemos ver cómo con dos argumentos (argc, o el número de argumentos que tenemos y argv o el contenido de esos argumentos, somos capaces de gestionar la información que un usuario nos pasa justo cuando ejecuta nuestro programa.

    Lo más sencillo que podemos hacer con los argumentos

    Imaginemos este ejemplo, de un programa donde queremos copiar un archivo origen a un destino (como cp), primero comprobamos que el número de argumentos es suficiente y luego imprimimos en pantalla el valor de cada uno (es un ejemplo inofensivo, no vamos a copiar nada).… Leer artículo completo

  • ownCloud en 2015. Instalación básica (I)

    d35c5980_reducida

    Introducción

    Hace años que uso ownCloud para guardar mis archivos en la nube. Aunque, hasta hace poco, estaba usando una versión desatendida (ownCloud 4) y, sobre todo por pereza, no había actualizado. Pero quería actualizar, comprobar las nuevas características, y verificar que las antiguas seguían funcionando bien (sincronización con dispositivos, con el ordenador y velocidad en transacciones).

    Mi conclusión ha sido que, el nuevo ownCloud trae muchas mejoras (tanto en contactos, calendario, archivos, sistema de complementos, seguridad y velocidad).… Leer artículo completo

  • Windows se pone agresivo! Instala Windows 10 o te saco los ojos !!!

    Windows10_visible_red
    Muchos usuarios durante estos días reciben un mensaje parecido a este. Parece que Microsoft se está poniendo serio con el reemplazo de versiones anteriores de Windows por Windows10. Lo entiendo, así se centran más en su nuevo sistema y pueden dejar un poco más de lado el mantenimiento de versiones anteriores, algunas de las cuales ya están desatendidas.
    Aunque parece que fue ayer cuando salió Windows7, ya hace 6 años y nosotros nos vamos haciendo mayores y las actualizaciones que recibirá hasta 2020 serán sólo de temas de seguridad, por lo que ya no tendrán novedades en el sistema.… Leer artículo completo

  • Cómo añadir un nuevo certificado raíz a nivel de sistema

    photo-1420768797814-f484a81f6be0_red0

    Es muy común si montamos algún servicio privado (como instalar un Owncloud para un grupo de amigos, una pequeña empresa), un correo personal, o cualquier cosa que se nos ocurra, utilizar https para las conexiones y, con ello, habilitar cifrado, aumentar la seguridad, y todas esas cosas.

    Pero claro, una vez montamos nuestro servicio con nuestros certificados (autofirmados), nos damos cuenta de que los navegadores (y ya no hablamos de curl, wget y otros comandos…) no paran de quejarse porque los certificados están firmados por una entidad no reconocida y que no es de confianza.… Leer artículo completo

  • Callbacks en C++11 nuevas posibilidades para un software más potente (I)

    My beautiful picture

    My beautiful picture

    Hace tiempo, hice una serie de posts sobre callbacks:

    Hay algunos posts más, pero se salen del tema (y seguro que salen sugeridos más abajo). El caso es que dejé un poco el tema de lado y me gustaría retomarlo con los cambios de la especificación C++11 (vale, tenemos C++14 lista, pero la versión de 2011 es una de las que más cambios introdujeron (y que también valen para C++14).… Leer artículo completo

  • Cómo especificar puerto y clave privada para SSH desde rsync

    reducida

    Si trabajamos a menudo con rsync para copiar archivos entre ordenadores, estaremos acostumbrados a una sintaxis parecida a esta:

    $ rsync -avh origen usuario@servidor:destino

    En realidad, para transmitir los archivos estaremos utilizando una conexión segura a través de ssh. Pero claro, en ocasiones, sería necesario utilizar algún argumento especial para ssh. En este ejemplo, imaginemos que queremos conectar al servidor por un puerto diferente del 22.

    Podemos hacerlo así:

    $ rsync -avh -e ‘ssh -p1234’ origen usuario@servidor:destino

    y si accedemos por par de claves pública-privada, en el caso de que queramos especificar un archivo de clave privada específico para esta conexión (a mí me ha sucedido que he necesitado utilizar rsync como root para poder acceder a algunos archivos y las claves las tenía en el usuario actual), lo podemos hacer así:

    $ rsync -avh -e ‘ssh -i archivo_identidad’ origen usuario@servidor:destino

    Ahora, un ejemplo completo y concreto de todo, en el que queremos acceder a nuestro servidor SSH por el puerto 28, además, el archivo de identidad o clave privada es id_rsa_webserver dentro del directorio .ssh de nuestro usuario (muy útil si ejecutamos rsync como root) luego el origen serían todos los archivos que encontramos en www/ y los copiaremos en un directorio remoto de nuestro servidor (tenemos que tener permiso para escribir ahí)

    $ rsync -avh -e ‘ssh -p28 -i /home/gaspar/.ssh/id_rsa_webserver’ www/* gaspar@miservidorweb.com:/home/web/externo/htdocs/

    Configuración local de ssh

    Otra posibilidad sería crear un archivo de configuración de ssh en nuestro ordenador, en el que podamos especificar los hosts a los que conectamos, el usuario que queremos utilizar, el archivo de identidad y el puerto.… Leer artículo completo

  • Lectura, escritura y eliminación de elementos de un array multidimensional en PHP usando separadores

    14300968086_927be23a6f_o

    Puede parecer muy complejo así dicho. Pero de lo que se trata es de proporcionar una forma más natural para acceder a lo elementos de un array en PHP. Nos podemos imaginar un array de configuración de una aplicación, donde encontremos apartados como cookies, idiomas, usuarios, rutas, urls, apis externas, bases de datos e infinidad de cosas más. Hace un tiempo veíamos una función para acceder a una clave de un array, comprobando antes la existencia de esa clave y dándonos la opción de devolver un valor por defecto en caso de que dicha clave no exista.… Leer artículo completo