• 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

    [Leer más...]
  • Preparando nuestro entorno para Arduino sin Java

    Arduino Emacs

    Como comenté en el post anterior, la plataforma Arduino viene con un IDE hecho en Java, no es muy completo, pero nos hace el apaño, aunque, como es mi caso, estoy acostumbrado a Emacs. Aunque esta guía no estará limitada a este editor, ni a Ubuntu (o basados en él).

    El objetivo, es usar nuestro IDE o editor preferido para trabajar con estos pequeños bichos programables.

    En principio tenemos que instalar las herramientas para compilar los programas para la plataforma (esto es común con todas las instalaciones).… Leer artículo completo

    [Leer más...]
  • Sabayon, a medio camino entre la cocina y la oficina

    Zabaglione
    El sabayón es un postre italiano del siglo XVI… bueno y también una distribución Linux bastante completa, aunque no se oiga mucho hablar de ella, ni ha salido en las listas anuales de mejor distribución del año ni nada, creo que es una de las que tenemos que tener en cuenta.

    Es cierto, que en el perfil de usuario de esta distribución no entra cualquier persona, ya que, aunque te da muchas cosas hechas, también hay muchas otras que hay que retocar (nada es a gusto de todo el mundo).… Leer artículo completo

    [Leer más...]
  • WiFi USB Conceptronic C150RUSM (RT3070) Editando el módulo para que funcione

    c150rusm_prodpiczm_1Si habéis adquirido este adaptador Wifi USB, veréis que Linux, al menos hasta la fecha, no lo detecta, es más, pasa de nosotros, y aunque carguemos el driver a mano con modprobe; seguirá sin pasar.

    Afortunadamente, no es nada difícil, y es algo que me hace estar un poco más feliz por utilizar software libre, y es que si el driver no reconoce el dispositivo como suyo, voy a presentárselo.

    En principio, no sabía qué driver utilizaba el dispositivo.… Leer artículo completo

    [Leer más...]
  • La importancia de conocer atajos de teclado en nuestro IDE/Editor favorito

    Siempre aconsejo a alguien que esté aprendiendo a programar que lo primero es sentirte bien con el entorno o IDE que manejas. A veces, en muchos centros de enseñanza se impone un entorno, por ejemplo Dev-Cpp o Borland C, pero cuando nos toca ponernos a programar algo en serio, ya sea para nosotros o para trabajar lo primero es elegir un IDE con el que nos encontremos cómodos.

    Tanto para personas que están empezando como para expertos suelo hacer que prueben alguno de estos tres: Eclipse, Netbeans o Code::Blocks y que echen un rato intentando familiarizarse con el entorno, sus caprichos y su metodología.… Leer artículo completo

    [Leer más...]
  • Tecla rápida para compilar con Kate

    Aunque tenemos a nuestra disposición gran cantidad de IDEs para programación, a veces viene bien un programa muy rápido y que tenga capacidad para compilar y ejecutar pequeños programas.

    Aunque tenemos la posibilidad de cargar una consola integrada, pero no es suficiente.

    confkateNos dirigimos a la configuración del programa…

    captElegimos herramientas externas y escogemos Nuevo, para crear una nueva herramienta. Ahí encontraremos la siguiente ventana:

    capt1Rellenamos los campos y en script escribimos lo siguiente:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    xterm -name xt2 -e sh -c ‘cd "%directory";
    fichero="%filename";
    ejecutable=${CF%.*};
    extension=${CF#*.};
    extension=`echo $extension | awk ‘
    \’‘{print tolower($0)}’\’‘`;

    rm $ejecutable 2> /dev/null;
    case $extension in
    "c") gcc -o $ejecutable "%filename" 1>&2 2>/tmp/ktc_err
    ;;
    "cpp") g++ -o $ejecutable "%filename" 1>&2 2>/tmp/ktc_err
    ;;
    *) echo "Extensión no reconocida" ;;
    esac
    ./ejecutable
    echo -e "\n—————–";
    echo "Compilación: ";
    cat /tmp/ktc_err;
    echo -e "——————–\n";

    printf "%s" "Pulsa INTRO para continuar"; read intro’

    Este script básicamente compilará el programa actual ya sea en c o c++ dependiendo de la extensión y lo ejecutará, al mismo tiempo veremos un pequeño informe de la compilación al final de la ejecución.… Leer artículo completo

    [Leer más...]
  • 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

    [Leer más...]