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++ y alguna nota sobre thread safety (I)

    Antes de nada, comentar que he dividido este post en dos porque vi que se estaba alargando demasiado y se lanzarán uno al día, pondré aquí enlaces a todos los posts.

    Muchas veces cuando estamos programando tenemos la necesidad de crear un objeto de una clase determinada, pero éste objeto deberá ser creado una sola vez en nuestra aplicación y debemos evitar a toda costa que pueda ser creado más veces.… Leer artículo completo

  • Enlazado dinámico en C++ (dynamic linking) III: Carga dinámica de objetos

    Hasta ahora, en varios artículos referentes a este tema: Introducción a dynamic linking, Carga dinámica de bibliotecas, hemos visto como, en lenguaje C, podemos escribir bibliotecas de funciones y, sin necesidad de conocer su código fuente, ejecutar funciones encerradas dentro de esas bibliotecas en nuestros proyectos, así como cargar dicho código al vuelo.

    Pero todo se complica un poco cuando queremos hacer lo mismo con C++, y en concreto, cuando estamos exportando clases completas, ya que de primeras necesitamos una forma de traernos algo parecido a un tipo, el nombre de la clase, y con dlopen() y dlsym(), nos podemos traer sólo una referencia de memoria, por lo que junto con la clase que programemos en C++ tendremos que incluir una función que llame al constructor.… Leer artículo completo

  • Numerar objetos de una clase determinada [Java]

    Hace un tiempo comentaba esto mismo en lenguaje C++, aunque por el motivo de las clases particulares, a algunos les interesaba más el tema en Java, aunque es muy parecido, tenemos que crear un atributo estático y coger su valor cada vez que instanciemos la clase.

    Como hice en C++, planteamos este problema como un almacén de clientes (es un ejemplo, no vale si tenemos muchos clientes, ya usaríamos bases de datos, por ejemplo).… 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

  • 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

  • Conocer la posición de un objeto (Javascript)

    Posteo un par de funciones para saber la posición absoluta (x,y) de un objeto en Javascript:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function getX( oElement )
    {
      var iReturnValue = 0;
      while( oElement != null ) {
        iReturnValue += oElement.offsetLeft;
        oElement = oElement.offsetParent;
      }
      return iReturnValue;
    }

    function getY( oElement )
    {
      var iReturnValue = 0;
      while( oElement != null ) {
        iReturnValue += oElement.
    Leer artículo completo