Publi

  • Cómo crear un plugin para WordPress. Making of de SimTerm (primera parte)

    simterm
    Son muchos los plugins para WordPress disponibles hoy en día, aunque la magia de este sistema de publicación radica en sus posibilidades para extenderlo. Así que aquí contaré la historia de la primera versión de mi primer plugin más o menos serio para WordPress: SimTerm. Contando, los pasos que di, lo que pude haber hecho de otra forma y lo que debí haber hecho de otra forma.

    Índice

    1. Instalación local de WordPress.
    Leer artículo completo
  • Singletons en C++. Intentando que sean seguros en hilos (thread safety) II

    Singleton thread-safeAyer hablábamos de la creación de un sigleton y de que nuestro ejemplo no era “thread safe”, vamos, que en un entorno con varios hilos de ejecución cabe la posibilidad de que el comportamiento esperado no siempre se cumpla.

    Ahí encontrábamos diferencias entre C++ (<11) y C++11 ya que esta última revisión incluye tratamiento de threads y algunas cosas más que trataremos aquí.

    Lo primero que podemos pensar, es que al traernos la instancia de nuestro singleton se crea una sección crítica, la cuál podemos regular con un mutex, provocando que siempre que vayamos a obtener una instancia de nuestro objeto pasemos por el semáforo, y aunque dos threads quieran pelearse por ver quién crea antes el recurso, sólo uno lo conseguirá finalmente.… 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
  • ¿ Y tú qué eres ? Identificando clases heredadas en C++

    blogvision_estudios_small

    En ocasiones, sobre todo cuando estamos con temas de herencia entre clases, tenemos la necesidad de consultar de qué tipo es una instancia. Es decir, tenemos una clase Mascota, y clases Perro y Gato (subclases de la primera). Imaginad que en el código hay muchas funciones, que queremos que sean comunes para todas las mascotas, y por tanto, aceptarán como parámetro una instancia de Mascota, pero en su ejecución, necesitan en un momento saber de qué tipo concreto son (Perro o Gato).… Leer artículo completo

  • Polimorfismos: enrevesando la herencia entre clases [C++]

    Cuando desarrollamos bajo el paradigma de la programación orientada a objetos, a poco que avanzamos tenemos la sensación de estar escribiendo más para hacer lo mismo que hacíamos antes sin clases ni instancias ni tanta estructuración.
    Pero contamos con herramientas que, aunque al principio nos sonarán algo chocantes, a la larga terminarán abriéndonos un mundo de posibilidades y comprenderemos por qué es tan importante, tan utilizado y se exige en multitud de universidades y centros educativos.… Leer artículo completo

  • Cuando PHP jura en hebreo (PAAMAYIM NEKUDOTAYIM)

    Son dos palabras raras que parece que quieren despistarnos. Y no es inglés, ni japonés, ni ruso… es hebreo.
    Y todo se remonta al 1997 cuando Zend Technologies reescribe el motor de PHP planteado por Rasmus Lerdorf.
    Zend es una compañía de origen israelí, y de ahí que haya palabras en hebreo.

    Pero… qué quiere decir esto ? La traducción es “dobles dos puntos” o lo que es lo mismo “::”.… Leer artículo completo

  • Programar en C++ puede llegar a ser frustrante

    cuchilloSiempre se dice que una de las reglas de la programación es “escribir poco”, tenemos que aunque en ciertos lenguajes, tenemos que escribir dos veces las cosas. Por ejemplo, para un sencillo hola mundo con clases en C++ (se puede hacer todo en el mismo archivo, pero queremos el código bien organizado):
    [ hwclass.h ]

    1
    2
    3
    4
    5
    6
    7
    8
    class HolaMundo
    {
     public:
      HolaMundo();
      ~HolaMundo();

      void coutVersion();
    };

    [ hwclass.cpp ]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #include <iostream>
    #include "hwclass.h"

    using namespace std;

    HolaMundo::HolaMundo()
    {
      cout<<"Hola Mundo!!"<<endl;
    }

    HolaMundo::~HolaMundo()
    {
      cout<<"Adiós Mundo!!"<<endl;
    }

    void HolaMundo::coutVersion()
    {
      cout<<"HolaMundo Versión 1.0"<<endl;
    }

    [ main.cpp ]

    1
    2
    3
    4
    5
    6
    7
    #include "hwclass.h"

    int main()
    {
      HolaMundo hm;
      hm.
    Leer artículo completo
  • Clases abstractas e interfaces en PHP

    objetoLos interfaces son bastante comunes en la programación orientada a objetos, en PHP, son algo así como una declaración de lo que debe implementar una clase. Tendrá información de los métodos (exclusivamente) que se deben implementar.

    Las clases abstractas contienen atributos y métodos, algunos pueden estar implementados y otros pueden ser abstractos. Los métodos abstractos son aquellos que no están implementados. Como tienen métodos sin implementar no podemos crear una instancia de este tipo de clases; entonces, ¿ para qué valen ?… Leer artículo completo

  • Enseñando a programar

    Desde hace tiempo, me ofrezco como profesor particular de programación en C/C++ (entre otros), he conocido bastantes alumnos, y metodologías de varios profesores. Este artículo es una opinión personal de mi experiencia.

    En principio tengo que decir que muchos de mis alumnos, sólo venían para sacarse una asignatura, no tenían demasiado interés, aunque fuera una de las asignaturas claves de sus estudios, y algo que les ayudaría el día de mañana; aunque es cierto que no todo el mundo puede aprender a programar desde cero y con soltura en 3 ó 4 meses, requiere un entrenamiento, dedicación, mucho tiempo y enfrentarse con problemas una y otra vez, y si le sumamos a esto poco interés estamos perdidos.… Leer artículo completo