Publi

  • Generando la salida de nuestros programas con plantillas en C++ con Silicon en pocas líneas

    photo-1456983887044-b5ecb1059660

    A medida que el hardware y el software van evolucionando, van cambiando las preferencias a la hora de desarrollar un producto. Hace unos años, el objetivo principal era que el producto final funcionara, intentar hacer el mínimo número de operaciones para que el software corriera en un ordenador de la mejor forma posible. Desde hace unos años, el hardware es capaz de hacer muchas cosas y muy rápido, los lenguajes han evolucionado y se han optimizado mucho; por lo tanto, podemos aprovechar y hacer que desde el punto de vista del mantenimiento, legibilidad del código, hacer que el código sea poesía y hacer que todas las piezas encajen perfectamente.… Leer artículo completo

  • Encontrar la diferencia entre la salida de dos comandos en nuestra terminal

    Spot_the_difference

    Este es un pequeño truco que, en ocasiones me ha salvado un poco de tiempo. Un mini-post que tenía ganas de compartir por aquí y que hoy voy a empezar por el final. Es decir, poniendo el código:

    1
    $ diff <(comando 1) <(comando 2)

    Con esto, ejecutamos el comando 1, luego el comando 2 y se lo pasamos a diff en forma de pipe creada expresamente para la ocasión.… Leer artículo completo

  • Cómo hacer una barra de progreso gráfica para las transferencias con rsync

    photo-1449973581296-e82bb57dc2ca_r

    Rsync es una gran utilidad, de esas en las que al principio da miedo meterse, pero, cuando un día la descubres no quieres utilizar otra cosa y esperas el momento en que vuelves a utilizarla y encima se lo dices a tus amigos. Que luego te miran con cara de friki, y te dejarán de hablar, pero bueno… esperas pacientemente el momento en que ellos descubran Rsync.

    Rsync, es una utilidad para copiar archivos.… Leer artículo completo

  • Flags en un enum en C


    Las flags, son opciones binarias que acompañan un dato o un sistema y valen para informar o definir su comportamiento o su estado entre otras cosas.

    En muchos casos, utilizaremos flags para ver el resultado de una operación, imaginémonos que estamos pasando una serie de tests a un dato de texto:

    1. El dato no está vacío
    2. El dato tiene más de 3 letras
    3. El dato tiene menos de 20 letras
    4. El dato tiene caracteres no numéricos
    5. El dato tiene caracteres no números/letras
    6. El dato tiene caracteres de control
    7. El dato tiene caracteres no válidos
    8. El dato tiene formato de fecha
    9. El dato tiene formato de hora
    10. El dato tiene formato de teléfono
    11. El dato tiene formato de coordenadas

    Bueno, así puedo poner muchas condiciones, lo importante es la forma de almacenarlo.… Leer artículo completo

  • Formateando la salida en Serial para Arduino [1ª parte] ( y no sólo para Arduino )

    Arduino - Minicom - Emacs Una de las cosas que más echo de menos programando con Arduino es el formateo de texto de cara al serial, ya que éste sólo permite cadenas de texto o números, y no todo junto. En principio es comprensible, el sistema debe estar en un tamaño muy reducido, y esta característica engordará el binario. como mínimo 1.5Kb; Podemos optar por varias soluciones que explicaré en este post:

    • sprintf()
    • Usando la clase String
    • vsnprintf()
    • Inventar nuestro printf() particular con salida a cadena
    • Inventar nuestro printf() particular con salida a Serial

    Usando sprintf()

    Esta forma es muy sencilla y engordará nuestro ejecutable 1.5Kb aproximadamente.… Leer artículo completo

  • Arduino: Usando el serial para comunicarnos con el ordenador

    Es interesante ver cómo los programas que corren con Arduino pueden hacer uso del puerto serie para comunicarnos con el ordenador. No sólo vale para hacer la programación del chip, sino que podemos intercambiar información, variar el comportamiento del programa… o simplemente tener un canal para depurar nuestro programa mostrando el estado de las variables en cualquier momento.

    La configuración es muy sencilla, sólo necesitamos especificar la velocidad del puerto serie cuando queramos iniciar la comunicación.… Leer artículo completo

  • Número variable de argumentos en una función de C

    photo-1416339212457-ef9ffadc2903_rSi habéis programado en C, seguramente la primera función que aprendisteis a utilizar era printf() ; y en todo el tiempo que pasasteis estudiando C no encontrasteis una función similar. Y es que esta función puede tener un número indeterminado de parámetros y es capaz de analizarlos todos.

    Y es que quitando printf(), scanf() y derivadas de estas, la necesidad de una función con múltiples parámetros casi no se nos presenta.… Leer artículo completo

  • Utilizar la salida de error en PHP

    Casi siempre, PHP es un lenguaje utilizado para la web y no para programas de consola o escritorio; aunque tenemos la posibilidad de utilizarlo para esos propósitos.

    Y es que si estamos familiarizados con PHP y tenemos muchas bibliotecas de clases/funciones en ese lenguaje, a menudo querremos utilizarlo para otros propósitos.

    Como sabemos, cuando queremos sacar texto por pantalla desde un programa tenemos la salida estándar y la salida de error (stdout, stderr); desde PHP podemos utilizar de forma fácil la salida estándar con las funciones habituales (echo, printf, print, print_r, etc).… Leer artículo completo

  • Conseguir la IP del usuario

    165H_gratisography_r
    Os dejo el código:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function gf_obtiene_ip () {
      // Las variables _SERVER nos lo pueden decir
      $metodos = array("CLIENT_IP","HTTP_X_FORWARDED_FOR","HTTP_X_FORWARDED","HTTP_FORWARDED_FOR","HTTP_FORWARDED","REMOTE_ADDR");

      $i = 0;

      while ( ($i<count($metodos) ) || (!
    Leer artículo completo