Publi

  • Creando un modelo sencillo en Magento (paso a paso y con ejemplos)

    Anteriormente vimos cómo crear un plugin para Magento y cómo crear un controlador para Magento. Ahora le toca el turno al modelo. Intentaré poner con todo detalle todo el proceso.
    Por eso, vamos a editar app/code/local/NuestraEmpresa/nuestroPlugin/etc/config.xml, en nuestro ejemplo app/code/local/Poesia/HolaMundo/etc/config.xml para indicar que vamos a crear modelos y las conexiones de base de datos que se deben utilizar para el acceso. He pegado el archivo entero, pero indico con un comentario las novedades:

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    Opcionalmente podemos poner un comentario contando qué hace nuestro módulo, nuestra web,
    información sobre la licencia, etc
    -->
    <config>
        <modules>
            <Poesia_HolaMundo> <!-- namespace_modulo -->

                <!-- Esta es la versión de nuestro módulo -->
                <version>0.0.1</version>

            </Poesia_HolaMundo>
        </modules>

        <frontend>
          <!-- Lo que necesitamos para utilizar los controladores -->
          <routers>
        <holaMundo>
          <use>standard</use>
          <args>
            <module>Poesia_HolaMundo</module>
            <frontName>hm</frontName>
          </args>
        </holaMundo>
          </routers>
          <!-- Lo que necesitamos para utilizar los controladores -->
          <!-- Lo que necesitamos para el layout y las plantillas -->
          <layout>
        <updates>
          <holamundo>
            <file>poesia.xml</file>
          </holamundo>
        </updates>
          </layout>
          <!-- Lo que necesitamos para el layout y las plantillas -->
        </frontend>
        <!-- Necesario para informar a Magento sobre nuestro modelo -->
        <global>
          <models>
        <holamundo>
            <class>Poesia_Holamundo_Model</class>
            <resourceModel>holamundo_resource</resourceModel>
        </holamundo>
        <holamundo_resource>
            <class>Poesia_HolaMundo_Model_Resource</class>
            <entities>
            <pventamod>
                <table>poesia_postvtable</table>
            </pventamod>
            </entities>
        </holamundo_resource>
          </models>
          <resources>
            <holamundo_setup>
              <setup>
                <module>Poesia_HolaMundo</module>
              </setup>
              <connection>
                <use>core_setup</use>
              </connection>
            </holamundo_setup>
            <holamundo_write>
              <connection>
                <use>core_write</use>
              </connection>
            </holamundo_write>
            <holamundo_read>
              <connection>
                <use>core_read</use>
              </connection>
            </holamundo_read>
          </resources>

        </global>
        <!-- Necesario para informar a Magento sobre nuestro modelo -->
    </config>

    Ahora creamos el modelo (le intento dar a todo nombres diferentes para que veamos qué es cada cosa).… Leer artículo completo

  • Pintar una gráfica con gnuplot de datos extraidos de SQLite

    Gráfica de datos extraídos de SQLite

    Como parte de uno de mis últimos proyectos, recopilo datos periódicamente y los almaceno en una tabla SQLite. Pero, al final, los datos no valen para nada si no somos capaces de tener una visión global de lo que ha pasado a lo largo del periodo de tiempo. Y para eso, ¿qué mejor que pintar los datos en una gráfica?

    Ya que los datos los almaceno en SQLite, utilizaré el cliente sqlite3 y para pintar las gráficas, gnuplot.… Leer artículo completo

  • Usando SQLite en nuestros programas en C/C++ (I)


    Foto: Eirik Stavelin (Flickr CC-by)
    A menudo, nuestros programas necesitan almacenar información (temporal o no) de forma ordenada, rápida y que no nos complique la vida. Luego también necesitamos poder acceder a ella con la misma facilidad. Para eso vale SQLite. Tendremos un pequeño motor de base de datos que con sólo un par de archivos (.h y .c) más un archivo de datos lo tendremos todo listo.

    Una pequeña introducción

    SQLite nos proporciona una forma muy sencilla de introducir y eliminar información (si estamos familiarizados con el lenguaje SQL) sin las complicaciones de tener un motor de base de datos corriendo (MySQL, MariaDB, PostreSQL, MSSQL…).… Leer artículo completo

  • Intercambiar datos entre hojas de cálculo Calc o Excel usando una columna de referencia

    Imaginemos que tenemos en una hoja de cálculo (una Excel de toda la vida, aunque no me gusta llamarla por un nombre comercial, es como llamar a los yogures Danone o Gillette a las cuchillas de afeitar, en fin), una serie de datos (es muy importante el hecho de tener un identificador o referencia en cada fila). En esta misma hoja, queremos insertar datos que se encuentran en otro archivo de hoja de cálculo haciendo que los nuevos datos se correspondan con el autor de la primera hoja.… 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

  • Añadir jerarquía a nuestras colecciones de datos en PHP. Creando árboles en PHP

    Es una práctica muy común categorizar nuestros. Hacer que existan categorías/sub-categorías/sub-sub-categorías sin límite al igual que directorios o carpetas hay en nuestro ordenador necesitamos tener todo clasificado. Es decir, queremos introducir jerarquía en nuestros datos, hacer que unos campos dependan de otros.
    Pero cuando guardamos la información en base de datos, normalmente se guardarán en una tabla con dos dimensiones, por lo que perdemos esa sensación de que hay unos datos dentro de otros.… Leer artículo completo

  • Experimentos: Instalando Magento desde SSH


    Magento es un software hecho en PHP para gestión integral de e-commerce. [Link a wikipedia]. Existen una versión comercial y una versión open, llamada Community Edition, y es esta última con la que vamos a experimentar.

    Hay miles de guías por Internet para instalar Magento. Esta no pretende ser la más completa, pero sí una chuleta rápida para mis futuras instalaciones y experimentos. Aunque me alegraré mucho si a alguien le resulta útil.… Leer artículo completo

  • Variables compartidas entre procesos hijos en C [fork()]

    Otra forma de enfrentarse con la concurrencia, en el maravilloso mundo de hacer varias cosas al mismo tiempo, es utilizar procesos hijos con fork(). La principal diferencia con respecto a los threads es que éstos son procesos completos, es decir, el sistema operativo les ha dado una zona de memoria de código, otra de datos, y otra de pila, a diferencia de los threads que compartían código y datos, sólo tenían la pila diferente.… Leer artículo completo

  • ListView con búsqueda rápida en GTKMM

    Es muy útil cuando listamos elementos en una aplicación proporcionar al usuario una opción de búsqueda rápida. Hacemos la aplicación más amigable con poco esfuerzo extra por nuestra parte.

    El ejemplo que traigo es muy parecido al ejemplo de ListStore, aunque añado la posibilidad de filtrar la lista con el texto introducido en un widget Entry.

    La clave está en crear una columna más en el modelo de datos (c_visible) que determinará si el elemento es visible o no en la lista, y en lugar de hacer que nuestro TreeView siga el modelo por defecto, haremos que siga un modelo filtrado.… Leer artículo completo

  • Concurrencia, POSIX threads y variables compartidas en C


    Hace poco veíamos cómo empezar a hacer nuestros primeros programas multi-thread utilizando POSIX threads. Aunque pronto surge una nueva necesidad: compartir datos entre el proceso principal y el thread que se ha creado, al menos para decirle qué queremos que haga. Para eso podemos utilizar el último argumento de la función pthread_create(), el cuál es un puntero a void, por lo que podemos pasar cualquier tipo de variable. Por ejemplo un número:

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <pthread.h>

    void *newtask(void *_number)
    {
      int number = *(int*)_number;
      printf("The number I was asked for: %d\n", number);
      pthread_exit(NULL);
    }

    int main (int argc, char *argv[])
    {
       pthread_t thread;
       int rc;
       int i;
       int number = 99;

       printf ("Main process just started.
    Leer artículo completo