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

  • Programando ATtinys para miniaturizar nuestros proyectos electrónicos

    Programar ATTinys
    Un Arduino, ¡es muy grande! Es una placa que luego no sabes dónde meter, un circuito integrado que ocupa mucho y en algunas ocasiones no usamos la miad de las entradas y salidas. Así que, para pequeños montajes que requieran algo de lógica de programación o comunicación que debamos meter en una pequeña placa sin complicarnos mucho la vida, y hemos trabajado antes con la plataforma Arduino. Un buen siguiente paso es comprar un pequeño ATtiny, un circuito integrado que cuesta alrededor de 2€.… Leer artículo completo

  • Borrar la caché de Magento desde la línea de comandos

    Foto: Steve Jurvetson (Flickr CC)

    Cuando estás haciendo muchos cambios en una instalación de Magento, debes borrar la caché a menudo. Un caso especial es si utilizas scripts periódicos para actualizar listas de precios o stock, en ese caso debes programar también el borrado de cachés.

    Este pequeño script ha sido visto en muchas webs por lo que no me extenderé mucho y mencionaré dos fuentes donde podéis consultarlo (os invito a visitar estas páginas porque amplían la información que veis aquí).… Leer artículo completo

  • Nuevo año, nuevo tema para el blog

    Lo prometo, estoy preparando contenidos (algunos ya están programados). Hace un par de años modifiqué el tema de mi blog para darle un toque más moderno, le tenía cariño al tema y el autor original no lo actualizaba por lo que lo renové un poco… tenía muchas ideas y al final no implementé la mitad de las cosas que tenía pensadas (como pasa la mayoría de las veces).

    Esta vez encontré un tema que me convenció y he decidido ponerlo, junto con algunos plugins (algunos ya los tenía activos, otros acabo de meterlos, y también me he cargado unos cuantos).… Leer artículo completo

  • Cancelando y reanudando una tarea con Timer y TimerTask en Java

    Hemos estado viendo cómo utilizar TimerTask para programar tareas en el tiempo y cómo pasarle argumentos para hacer una funcionalidad más completa. Ahora vamos a ver cómo podemos cancelar una tarea periódica que ha sido programada (eso es fácil), pero pueden surgir problemas a la hora de reanudar la tarea, para lo cual propongo algunas ideas.

    Lo primero, es tener un código básico para lanzar una tarea y cancelarla:
    TimerEx.java

    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
    import java.util.Timer;
    import java.util.TimerTask;

    class TimerEx
    {
        public static void main(String arglist[])
        {
        Timer timer;
        timer = new Timer();

        TimerTask task = new TimerTask()
            {
            int tic = 0;

            @Override
            public void run()
            {
                System.
    Leer artículo completo
  • Pasando argumentos a un TimerTask en Java

    Siguiendo con los posts sobre TimerTasks en Java, hoy toca hablar sobre cómo pasar argumentos a un TimerTask, para que éste utilice variables, atributos u objetos desde fuera. Ya vimos algo parecido cuando definíamos el TimerTask de forma implícita o anidada, pero hoy vamos simplemente a crear una clase derivada de TimerTask y pasarle datos a través del constructor.

    MyTimerTask.java

    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
    import java.util.TimerTask;

    class MyTimerTask extends TimerTask
    {
        private int times;
        private String result;
        private int tic=0;

        public MyTimerTask (int times, String arg2)
        {
        this.
    Leer artículo completo
  • Algoritmos: Repartir el tiempo total de una tarea a lo largo de varios días en C

    Cuando tenemos una tarea que debemos llevar a cabo a largo medio/plazo, normalmente debemos dedicar un tiempo cada día a esa tarea pero, ¿cuánto tiempo necesitamos dedicar a esa tarea (como mínimo) para terminar en un plazo establecido?

    Gracias a Alejandro por la sugerencia de este programa.

    Primero el programa, y luego lo comentamos:

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    /**
    *************************************************************
    * @file calcula_horas.c
    *************************************************************/


    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
    #include <string.h>

    typedef struct
    {
      int hours;
      int minutes;
      float raw;
    } Thm;

    time_t getTime(int day, int month, int year);
    int calculateDaysInRange(int daysInRange[7], time_t start, time_t end);
    int calculateTotalDays(int workDays[7], int daysInRange[7]);
    int calculateHoursADay(Thm *result, int totalDays, int hoursToWork, int totalHours);

    int main(int argc, char *argv[])
    {
      int error;
      int i ;
      int totalDays;
      time_t start = getTime(1, 6, 2013);
      time_t end = getTime(18, 6, 2013);
      /* Which days can we work in this task?
    Leer artículo completo
  • Magia en Bash 50 ejemplos en una sola linea (o dos)

    Bash es una de las herramientas más potentes que tenemos a nuestro alcance, aunque no sólo de bash trata el artículo, sino de trucos para consola, one-liner como dirían muchos (aunque habrá algunos two-liners) que podemos utilizar y pueden hacernos la vida un poco más fácil:

    Cadenas de texto

    Trim

    Es una herramienta que utilizaremos para recortar nuestra cadena basándonos en los a la ìzquierda y a la derecha, en este caso nos basaremos en los espacios, que es uno de sus usos más comunes (así podemos obtener la cadena limpia tanto por delante como por detrás.… Leer artículo completo