Publi

  • El 2013 para Poesía Binaria


    Este es un pequeño resumen de lo que ha sido 2013 para este blog. Lo más visto, lo más comentado y algunas curiosidades:

    Lo más visitado

    1. Recibiendo cadenas de texto completas con Arduino por USB (I)
    2. Formas de transformar un entero a cadena en C y C++
    3. Listar archivos dentro de un directorio o carpeta en C
    4. Comprobación de IP invertida / Reverse IP lookup
    5. Bucles for en BASH

    En general, los artículos de C y C++ son más visitados que los de PHP o Java (aunque de Java no haya muchos todavía), y aparece un nuevo competidor, BASH, que normalmente también es muy visitado.… Leer artículo completo

  • Stream de lo que se oye por nuestros altavoces con VLC y pulseaudio

    A veces, nos gusta compartir lo que nosotros escuchamos en nuestro ordenador con el resto del mundo y esta es una forma fácil de hacerlo. Ya sea porque tienes música en una habitación y quieras compartirla en otra habitación, o quieras reproducirla desde el móvil o porque quieras saber cuándo te llega un mensaje… bueno, hay muchos usos. Lo único que tienes que hacer es abrir un terminal y escribir:

    1
    $ pactl list | grep monitor

    Con eso obtenemos la lista de monitores de tu ordenador, yo sólo tengo uno: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor

    Ahora, copiando todo eso, voy a VLC, y elijo emitir desde un medio de red, e introduzco en la URL del recurso: pulse://alsa_output.pci-0000_00_1b.0.analog-stereo.monitor , es lo mismo de antes, pero pulse:// delante, de esta forma:
    .… Leer artículo completo

  • Bucles y cursores en MySQL con ejemplos

    Hace mucho tiempo que quería escribir sobre esto. Y aunque es recomendable no abusar de los bucles en MySQL, es más, a veces no son necesarios, y siempre hay que buscar una solución que no los use, a veces no la vamos a encontrar y será en esos casos cuando debamos utilizarlos.

    Veamos un bucle muy sencillo, parecido a un for de los de toda la vida, en el que contamos del 1 al 9:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    DELIMITER $$
    CREATE PROCEDURE simple_loop ( )
    BEGIN
      DECLARE counter BIGINT DEFAULT 0;
     
      my_loop: LOOP
        SET counter=counter+1;

        IF counter=10 THEN
          LEAVE my_loop;
        END IF;

        SELECT counter;

      END LOOP my_loop;
    END$$
    DELIMITER ;

    cuando hagamos:

    1
    CALL simple_loop();

    Veremos algo como esto:

    +———+
    | counter |
    +———+
    | 1 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 2 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 3 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 4 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 5 |
    +———+
    1 row in set (0.01 sec)+———+
    | counter |
    +———+
    | 6 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 7 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 8 |
    +———+
    1 row in set (0.01 sec)

    +———+
    | counter |
    +———+
    | 9 |
    +———+
    1 row in set (0.01 sec)

    Query OK, 0 rows affected (0.01 sec)

    Vemos que el código que iteraremos está entre LOOP…END LOOP, lo que aparece justo antes (my_loop) es una etiqueta para nombrar ese bucle.… Leer artículo completo