• Creando un controlador en Magento (paso a paso)


    Hace un tiempo comentábamos cómo crear un plugin para Magento. Ahora, vamos a completar ese plugin creando un controlador (y nos metermos ligeramente con las plantillas) para crear algo funcional dentro de nuestra instalación de Magento.

    Antes de nada, advertir que el tema de las mayúsculas y minúsculas tanto en nombres de archivos como nombres de módulos es un poco delicado, por lo que si queremos curarnos en salud, debemos elegir un nombre lo más sencillo posible.… Leer artículo completo

    [Leer más...]
  • Transferir una imagen de disco a través de la red. Bash y más


    Foto: nrkbeta Flickr (CC-by)

    Todo surgió cuando quería cambiar el disco duro de mi mediacenter. El disco duro lo tenía en mi ordenador de trabajo y el mediacenter (que hace también las veces de router/firewall y demás) no podía desenchufarlo. Es verdad que para un disco duro montado y activo no es la mejor forma, pero ya puestos, quería hacer el experimento, por lo que elegí algunas particiones que no tenían demasiada actividad (que luego fsck se encargue :) )

    Para lo que sí puede servir es para crear imágenes de discos duros y transmitirlas a un servidor central para su almacenaje, ya sea por problemas de sitio, que no tengas espacio suficiente en algún dispositivo externo, o porque por seguridad se quiere transmitir a un servidor remoto o también, porque se tengan que instalar muchos ordenadores con configuraciones parecidas y, una vez configurado uno (ya sea con Windows, o cualquier UNIX), los configuramos todos desde aquí.… Leer artículo completo

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

    [Leer más...]
  • Algunas hojas de cálculo recortan los CSV en las comillas [Minipost]

    Es algo que me ha pasado estos días al exportar un archivo CSV de una base de datos (por ejemplo con este método). Era un CSV de unas 3000 filas y algunas de ellas tenían textos entre comillas en una de sus columnas.

    El problema es que al abrirlo con LibreOffice Calc (tengo entendido que con WPS Office también pasaba), aquellas columnas que tenían textos entre comillas no salían bien y terminaban cortándose y dividiéndose.… Leer artículo completo

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

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

    [Leer más...]
  • Sonidos de un viejo disco duro IDE realizando tareas

    Screenshot 16-03-2015-000303

    Ingredientes: Un disco duro viejo, un adaptador USB, un micrófono y algunos comandos para probar. Me pareció una cosa muy friki y bastante chula. Un disco duro que salió al mercado en Enero del año 2000 (¡¡15 años!!) y todavía funciona. No sabría decir si como el primer día, pero funciona bastante bien, aunque a estas alturas, como no tengamos a disposición un adaptador especial IDE sería muy difícil echarlo a andar.… Leer artículo completo

    [Leer más...]
  • Cómo encontrar la ruta de un elemento dentro de una jerarquía en PHP

    Hace poco, hablábamos de cómo generar un array que contuviera una jerarquía de elementos, vimos cómo podíamos generarlo de forma muy rápida una vez tenemos todos los elementos en una lista en la que previamente indicamos el padre de cada uno de ellos.

    El problema hoy es algo distinto, tenemos esa jerarquía o árbol, y queremos encontrar la ruta hacia arriba, es decir, todos los elementos por los que tenemos que pasar para llegar hasta un elemento dado.… Leer artículo completo

    [Leer más...]
  • Magento: insertar bloques CMS dentro de nuestras plantillas

    Para dar flexibilidad a nuestros desarrollos con Magento y con el fin de permitir a los usuarios administradores cambiar fácilmente el contenido de su tienda hecha con Magento. Una buena opción es facilitar bloques estáticos de CMS dentro de nuestras plantillas. Por ejemplo, podemos empotrar un texto dedicado a la manipulación y al envío dentro de cada producto; o, es más, podemos tener varios modelos de bloques de manipulación y envío y que sea un atributo del artículo el que decida qué bloque mostrar.… Leer artículo completo

    [Leer más...]
  • Definir valores de variables desde una cadena de caracteres [C++11]


    A veces, es muy útil poder definir variables de diversos tipos (int, string, double, bool, etc) o incluso inicializar clases todo desde un string. El objetivo es dar al usuario de nuestro programa más libertad aún y no combernos demasiado la cabeza transformando cada una de las variables. Por otro lado, no siempre podrán estar definidas todas, por lo que hacer una solución específica para cada cao es un poco largo.… Leer artículo completo

    [Leer más...]