Publi

  • Compilando y subiendo los primeros programas al ESP8266. Usando GPIO y UART-

    Me ha gustado mucho la facilidad de uso (y sobre todo el precio) de este dispositivo. El ESP8266 puede dotar a nuestros proyectos de la conectividad que necesitaban y así adentrarnos en el Internet de las cosas o IoT.

    Lo primero es sentirnos cómodos con el entorno. Así que voy a proponer dos opciones. La primera, multiplataforma será utilizando el mismo entorno Arduino. En este caso, al final del proceso cuando estemos compilando o subiendo el código a nuestro chip seleccionaremos la placa ESP8266 y compilaremos para ella.… Leer artículo completo

  • Operaciones básicas con cadenas en C++: capitalización, conversiones, recorte, recorrido y más

    Como ha sucedido con otros lenguajes, C++ también ha evolucionado. Ha madurado mucho desde aquellos códigos que programábamos hace años y se nota. Por un lado, podemos pensar que al sumar abstracción en ciertos aspectos nos separa de la máquina y hace nuestro código más lento. Suma comprobaciones, hace más callbacks y en definitiva, una sencilla tarea que completaba en pocos cientos de operaciones, ahora son pocos miles. Aunque en su favor, podemos decir que aquello que programábamos en 15 o 20 líneas de código se ha reducido a una o dos, reduciendo así los puntos de ruptura, posibles bugs y calentamientos de cabeza futuros.… Leer artículo completo

  • Analiza el contenido de una web directamente desde PHP. Web scraping sencillo y mucho más

    coche

    El web scraping es una técnica basada en el análisis del contenido de una web para extraer información útil. El objetivo es que, una web, que generalmente está pensada para ser visualizada por un usuario sea descargada por un programa informático y automáticamente se reconozca la información que queremos sacar de ella. Podemos extraer el título de las páginas, párrafos de texto, contenido de tablas, elementos ocultos y mucho más.

    Es parecido a lo que hacen los motores de búsqueda cuando entran en una página y rastrean su contenido, aunque la técnica de web scraping se centra más en la detección y clasificación de las estructuras de información.… Leer artículo completo

  • Procesar argumentos de entrada en nuestros shell scripts con getopt

    mixer_4

    Hace unos días analizamos cómo tratar los argumentos de entrada desde un shell script en Bash de una manera sencilla. Aunque, cuando la cosa se complica, debemos utilizar herramientas algo más avanzadas. Tal y como hicimos con getopt para C [parte 1, parte 2], vamos a hacer lo mismo en un shell script.

    Aunque aquí tenemos dos posibilidades, que hacen prácticamente lo mismo getopt y getopts.… 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

  • 20 Cosas chulas que se pueden hacer en una terminal de GNU/Linux

    Un poco como continuación de un post de hace casi 2 años, en el que comentaba ejemplos de cosas que se pueden hacer con Bash en una o dos líneas de código.

    Ahora quiero hacer cosas un poco más complejas (y alguna que otra sencilla, pero curiosa), en una nueva sección de códigos para copiar y pegar en vuestros terminales:

    Servidores

    Montar un servidor FTP rápido

    Ésta es una solución para un apaño, para el caso en que necesitemos activar un servidor FTP para pasar un fichero a alguien, o para que nos pasen algún fichero… o por ejemplo por si queremos instalar un plugin en WordPress rápidamente y somos unos paranoicos de la seguridad (y por tanto no queremos dejar un servidor FTP corriendo siempre).… Leer artículo completo

  • Reemplazar cadenas en C++, esta vez desde un map, para múltiples sustituciones

    Hace unos días hablamos de cómo reemplazar cadenas de texto en C++, tuvimos un método para copiar y pegar en nuestros proyectos muy fácil, pero cuando queremos hacer múltiples sustituciones podemos tener un problema: demasiadas llamadas a la función que producirán un código un poco feo…

    Para ello podemos utilizar el contenedor map de C++ y crear la misma función replace() que creamos hace unos días, pero esta vez aceptando un mapa como argumento, así buscaremos en cada una de las claves, y lo sustituiremos por cada uno de los valores que encontremos:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <iostream>
    #include <string>
    #include <map>

    using namespace std;

    string replace(string source, std::map<string,string>strMap, int offset=0, int times=0)
    {
      int total = 0;
      string::size_type pos;

      for (std::map<string, string>::iterator i=strMap.
    Leer artículo completo
  • Recopilación de soluciones para los retos de #tuentiContest . Challenge #10

    Últimamente he hablado acerca del I concurso de programación de Tuenti. Un concurso de programación Online que se llevó acabo durante la semana pasada (del 13 al 20 de Junio, muy mala fecha).

    Podéis ver los enunciados de todos los problemas, con ejemplos sobre la entrada y salida (aunque a veces no hay que haerles mucho caso) en la web oficial del concurso, pero en Vidas Concurrentes lo encontramos todo en español.… Leer artículo completo