Archivo de Febrero de 2009

Instaladores

Viernes, 27 de Febrero de 2009

Una parte muy importante de nuestros programas de escritorio, y a los que muy poca gente le hecha cuenta es el instalador que vamos a utilizar. La importancia del instalador en nuestros programas en muy grande, puesto que no sirve de nada tener el mejor programa del mundo si luego la instalación es muy complicada. Podéis ver la importancia de ésto en Linux, las distribuciones con más aceptación por la gente que no entiende de programación son Ubunto (y derivados) y SuSe (y derivados) puesto que son las que han realizado mayor esfuerzo en hacer programas que faciliten la instalación de las fuentes sin la necesidad de paquetes dependencias, …, cosa que ha hecho que las demás distribuciones de Linux trabajen en este camíno, facilitar la distribución de los programas.

En este artículo vamos a ver instaladores para Windows, puesto que por ahora no he programdo para otra plataforma, todavía nadie me ha pedido software para Linux y para Mac, que también tienen sus instaladores.

NSIS (Nullsoft Scriptable Install System) [1]

Este instalador, tal y como dice su nombre, fue creado por la empresa Nullsoft (la misma que creó el WinAmp). Para realizar el instalador hay que hacer un pequeño script. La sintaxis no es muy complicada. Este es el que yo siempre utilizo, pero en vez de saberme la sintaxis del script utilizo un editor para dicho script que tiene un wizard muy sencillo de utilizar. El programa es HM NIS EDIT [2].

Además de editor, cuando se quiere hacer algo más de lo que te permite hacer el Wizard (como comprobar si tienes instalada la versión de Framework.NET que tu aplicación necesita) puedes buscar código para realizar esto en el Wiki que encuentras en la web de NSIS.

Una de las ventajas más importantes de este instalador es que se puede ejecutar en modo comandos, con lo que es muy útil para hacer instaladores On-The-Fly desde una web, tal y como se hace en  la web de Beon para la Beon Factory (al menos cuando trabaja yo allí lo hacíamos así, que se lo curró JuanMa).

Las imágnes del instalador también se pueden cambiar, para personalizar el instalador, el problema es que el instalador aumenta su tamaño consideramente.

Otra opción que nos permite dicho insalador, es que nos permite tener varios idiomas del instalador.

Microsoft Windows Installer [3]

Este es el instalador de microsoft. Aquellos que programéis sobre VisualStudio, cuando se crea un paquete de instalación desde el VisualStudio estáis utilizando este fabuloso instalador.

Yo no he realizado muchos instaladores con este instalador, solo para hacer pruebas y aprender cómo se utiliza el empaquetador del VisualStudio.

InstallShield [4]

Qué decir de éste magnífico instalador. Posiblemente uno de los más utilizados por los grandes fabricantes de software, debido a la gran cantidad de opciones que posee.  Yo lo usé en los tiempos que trabajaba en Neoinnova S.L., puesto que los primeros Widget de Beon S.L. Una de las mejores cosas que tiene este instalador es la posibilidad de hacer instaladores parametrizando por scripts, lo que nos permitía poder tener programas muy similares y hacer los instaladores en cuestión de segundos. La mayor pega que tiene este instalador es que es de pago y ocupa mucho espacio en disco, pero es completamente visual.

GkWare [5]

Este instalador lo he conocido haciendo preparando este post. No lo he podido probar a fondo, pero por lo que he visto, te permite hacer entradas en el registro y ejecutar programas después de la instalación o antesd de la desinstalación, muy útilies cuando tu aplicación tienen algún tipo de servicio. La verdad es que no tiene mala pinta, lo único malo que le veo es que es un instalador de esos que se ejecutan en una ventana a tamaño maximizado con el fondo azul, muy retro, como los instaladores de Windows 3.1 ó Windows 95/98.

Conclusión:

Desde mi punto de vista el mejor, es el NSIS, con la ayuda del HM NIS EDIT, y quizás es algo un poco rudo para gente que nunca haya realizado instaladores antes. Para aprender está muy bien bajarse la trial del InstallShield, puesto que con él se va a prendiendo las cosas que van haciendo falta para un programa, como son la licencia, los iconos, … La lastima es su precio (€654.88 la versión express), lo que te obliga a vender mucho para sacar rendimientos. Desde mi punto de vista, lo más importante del NSIS es la gran cantidad de scrips que podéis encontrar en el Wiki, la verdad es que se puden hacer muchas cosas con este instalador, lo único es que casi que hay que aprender otro lenguaje más de programación.

Hay muchos más instaladores en el mercado, pero yo solo he hablado de los que conozco un poquito, con esto si no te gustan ninguno ponte a investigar del tema.

Enlaces:

[1] http://nsis.sourceforge.net

[2] http://hmne.sourceforge.net/

[3] http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=889482fc-5f56-4a38-b838-de776fd4138c

[4] http://www.acresso.com/products/is/installshield-overview.htm

[5] http://www.gkware.com/gksetup/index.htm

CMS de tiendas on line

Martes, 17 de Febrero de 2009

En el mercado actual existen multitud de tiendas on-line para poder realizar venta on-line de nuestros productos.

La mayoría están escritas en PHP y utilizan MySQL como motor de base de datos. En este artículo veremos una breve comparación de las distintas que he visto.

osCommerce

La tienda on-line por excelencia, está disponible en casi toda la totalidad de los servidores compartidos para la autoinstalación, por su gran aceptación en el mercado de las tiendas on-line. Llevan varios años estancados en la versión 2.2, una pena, puesto que prometían que en la versión 3.0 iban a poner xhtml, temas y url amigables. Está un poco anticuada, pero la cantidad de plugins desarrollados nos permiten no saber programar y tener nuevas opcines, como pasarelas de pago de bancos, módulos para la gestión de la logística por compañías como UPS o FEDEC.

Personalmente a mi no me gusta mucho, he realizado ya varias tiendas on-line de forma privada y, por lo menos a mí, me parece muy complicado todo. Para tanta versatilidad como nos ofrece hay que dedicar mucho tiempo para insertar los productos de nuestra empresa. Programar sobre ella es muy tedioso, puesto que no hay chuletas, como las hay en otros CMS opensource, y hay que leer mucho código para hacer cualquier cosa.

osCMax

Esta en realialidad no es más que una extensión del osCommerce, de manera que nos permite hacer cosas que el osCommerce original no hace.

ZenCart

Bonita alternativa libre del osCommerce. Trae opciones que el osCommerce no posee, como temas montados sobre XHTML y url amigables (SEO URLs). Por lo que he ledido es muy sencilla de montar. La lástima es que no soporte plugins de terceros, o al menos como no la he trasteado bastante no los he encontrado.

PrestaShop

Esta nunca la había oido hasta que no me puse ha hacer este artículo, la verdad es que me ha sorprendido muchísimo. La demo se ve que es mucho más evolucionada que osCommerce, y que está muy trabajada en cuanto a usabilidad y diseño. Para aquellos que no sabéis programar es una gran opción, puesto que para que funcione vuestra tienda solo deberéis modificar un tema visual. Permite el uso de permalinks y urls amigables. Trae instalado un módulo para conectar directamente con google analitics, lo que nos permite tener un control de las búsquedas que se realizan sobre tu tienda y en qué lugar estás en dichas búsquedas, muy útil si quieres invertir en AdSense (se invierte en donde no estás arriba). La verdad es que si tengo tiempo hablaré en alguna otra ocasión de este CMS de venta on-line.

Magneto

Esta es una plataforma de venta on-line que nos permite poner varias tiendas en nuestro servidor. Por lo que he leído ha de estar instalada en un servidor dedicado, desconozco el por qué. Si entramos en la administración de la tienda de pruebas, podemos ver que además de tienda on-line trae su propio CMS que nos permite tener la web de nuestra empresa, sin tener que combinar productos como Wordpress, Drupal o Joomla. Se ve muy usable, pero me hecha para atrás eso de que haya que instalarlo en un servidor dedicado y que no permita los plugins de terceros.

osCommerce osCMax ZenCart PrestaShop Magneto
Multi-idiomas

Multi-monedas

Diseño de la tienda

Ficheros php

temas

temas

temas

temas

URLs amigables

No

Control de Stock

Envío de correos a los clientes

Envíos masivos a los clientes para campañas de publicidad

Personalización de productos

Personalización de productos: Varias imágenes

No

Personalización de productos: Inserción de Links

No

-

-

Poder instalar un certificado de Seguridad SSL

Soporte de Plugins de terceros

No

Instalación en servidor compartido

No

Enlaces:

osCommerce: http://ww.oscommerce.com

ZenCart: http://www.zencart.com

osCMax: http://www.oscdox.com

PrestaShop: http://www.prestashop.com

Magneto: http://www.magentocommerce.com

Copias de seguridad

Martes, 10 de Febrero de 2009

En realidad este es un apartado de administradores de sistemas, pero y sino tenemos a este gran profesional en nuestro trabajo, la mayoría de las veces al que más sabe le toca buscar un programa apañado y realizar dicha copia de seguridad.

Cuando estás trabajando con un servidor decicado Windows, cualsea la versión, éste apartado debe ser crítico, puesto que es posible que los cracker encuentren algún fallo de seguiridad de Windows y ataquen, con el daño que suele ocurrir con esto.

Si ese es tu caso, lo primero que debemos hacer es hacer una copia de seguridad de la MetaBase del IIS (Internet Information Server), para los que no sepáis qué es esto, la MetaBase del IIS es la información de todos los dominios que tienes instalado en el Servidor, así como la configuración de los FTPs (si es que usas el del IIS) y del correo (si es que usas el de IIS). Para hacer copia de seguridad de dicha metabase tendrás que ejecutar un programa o rutina en VisualBasic Script (lenguaje de consola de Windows por defecto). Yo utilizo estos ficheros.

Lo siguiente es buscar un software que haga las copias de seguridad por nosotros o programar una rutina en VisualBasic Script, que no es muy complicado, pero para este caso vamos a utilizar un software gratuito, pero no de código libre, Cobian Backup (al día de hoy en la versión 9, Amanit) [1]. Este programa nos permite hacer las copias de seguridad y subirlas a un FTP externo en un fichero ZIP y además nos permite ejecutar programas para hacer tareas que necesitemos. Además nos permite hacer copias de seguridad de directorios separados, por ejemplo la base de datos y una web por separado.

Una vez que se ha instalado el programa, podremos encontrar en el SystemTry el siguiente icono:

cobian-01

Hacemos doble click sobre él y podremos acceder al programa.

Para crear una nueva tarea de realización de copia de seguridad debemos pulsar sobre el botón de Nueva Tarea

cobian-02

Yo recomiendo hacer una tarea por cada sitio web que tengamos en el servidor, de manera que si queremos recupera una copia de un sitio web siempre será más fácil que hacer una restauración de todo el servidor. En cuanto a la metabase ahí sí que hay que hacerla completa, de lo contrario deberás de modificar el fichero de la tarea de extracción de la MetaBase.

Una vez que hemos pulsado sobre éste botón nos aparecerá la siguiente ventana

cobian-03

Podremos cambiar de configuración pinchando en las distinas opciones que están en la columna izquierda. En esta panalla lo que podemos hacer es dar un nombre a la tarea de seguridad y hacer la configuración de las copias de seguridad, como el tipo de copia de seguridad, en nuestro caso hemos seleccionado Completo.

En la zona de Ficheros lo que podemos hacer es seleccionar los ficheros o directorios sobre los que queremos hacer la copia de seguridad.

cobian-05cobian-06

En esta ventana también tenemos que seleccionar la salida de la copia de seguridad, en nuestro caso lo que queremos en mandarlo a otro servidor, para estas cosas, sino tienes otro servidor, lo suyo es contrartar un servicio de hosting que sea barato y con espacio iliminado y tráfico iliminato, como Powweb[2] o DreamHost[3].

cobian-08cobian-09

Tras configurar esto lo que hacemos es configurar la perioricidad con la que se van a realizar las copias de seguridad

cobian-10

En este caso está puesto a las 1:00 AM ya que a las 0:00 hago la copia de seguridad de la base de datos con el gestor de base de datos, en esta caso el MySQL Administrator que puedes encontrar en la web de MySQL [4]. Si utilizas Microfoft SQL-Server, en el cliente puede poner las copias de las bases de datos de forma automática. El dejar una hora entre la realización de la creación de la copia de la base de datos y la tarea es para tener tiempo de sobra, por si la base de datos ocupa mucho.

El siguiente apartado es el fichero que se genera en la copia de seguridad, lo normal es un único fichero ZIP que lo reconocen todos los sitemas operativos y que se puede descargar de una vez. Está la opción de trocear el ZIP en otros ZIPs más pequeños, pero yo no recomiendo esta opción, puesto que si se pierde un ZIP o se corrompe, pierdes la copia de seguridad.

cobian-11

También se le puede proteger con contraseña y encriptar el ZIP, pero yo no le pongo nada, puesto que con lo malo que soy para recordar las contraseñas llegue el día que hay que recuperar el fichero y no me acuerde o tenga a mano la contraseña, total yo lo voy a subir a mi FTP, para recuperar las copias hay que acceder al FTP y esa es la contraseña que nunca olvido, las tengo bien apuntadas.

En la siguiente ventana tenemos una herramienta que puede sernos muy útil, puesto que nos permite ejecutar programas, yo por ejemplo en uno de los proyectos de tareas, donde tengo un portal web donde se administran pequeñas web y que son más de 400 dominios, hago una copia de seguridad de la MetaBase aquí y se la asocio a uno de los directorios de la copia de seguridad, para ello utilizo la opción ejecutar y esperar.

cobian-12

Por último tenemos una pantalla donde podemos cambiar el usuario con el que queremos ejecutar dicha copia de seguridad, yo como la ejecuto con el usuario Administrador no tengo problemas de permisos, pero si la estuvieses ejecutando con un usuario sin todos los privilegios podrían generarse errores, con lo que desde aquí podríamos cambiar a que la tarea la ejecute el Administrador.

Bueno, pues esto ya se a acabado, pulsamos sobre el boton OK y listo, nos aparecerá la siguiente pantalla donde podremos ejecutar la tarea de copia sin tener que esperar a las 1:00 para ver si todo se ha configurado correctamente.

cobian-13

Bueno espero que esto haya sido de ayuda

Enlaces:

[1] Cobian Backup: http://www.cobian.se

[2] Powweb: http://www.powweb.com (es el hosting que tengo para estas cosas y donde está alojado este blog).

[3] DreamHost: http://www.dreamhost.com (es sensiblemetne más caro que Powweb pero ofrece otros servicios de valor añadido que a lo mejor te compensan, como CVS, SVG, acceso directo a MySQL, Ruby OnRails, JSP, …)

[4] MySQL: www.mysql.com

Crear un tema para Moodle (y II)

Domingo, 8 de Febrero de 2009

Bueno una vez que ya en la anterior entreta vimos los principales ficheros del tema, en este tema nos ponemos manos a la obra.

Hay que decir que hay que tener cierta destreza con los CSS, para aquellos que no sepan CSS les recomiendo este manual de CSS [1].

Básicamente, para empezar a manipular los ficheros header.html y footer.html para que vaya quedando el sitio web tal y como queremos, además deberemos y manipulando los estilos (styles_layout.css, styles_color.css y styles_fonts.css). Aquellos que tengan más experiencia con los CSS además deberán tocar los ficheros que tienen estilos específicos para Internet Explorer y Mozilla (si no los modificáis, eliminad dichos ficheros, que sino es posible que lo que estéis programando no se vea luego reflejado).

Si desear poner la imágnes de las carpetas, expandir o recoger de forma personalizada, verás que hay una carpeta llamada pix. Deberás poner ahí todas las imágens personalizadas, para ello debes copiarte la carpeta pix del raíz de moodle (donde están las imágenes por defecto), cambiar las que quieras (con el mismo nombre) y luego ir al fichero config.php del tema y cambiar $THEME->custompix = false (ponerlo a true).

Bueno lo que queda es ir probando colores y mirando bien las cosas que vas modificando. Si tengo tiempo intentaré hacer un pequeño esquema de los CSS, de manera que explique qué hay que cambiar para cada cosa, aunque la verdad está explicado en un inglés muy sencillo, y si no dominas inglés no creo que haya problemas en la traducción si utilizas google traductor.

Enlaces:

[1] Manual de CSS muy didáctico y con muchos ejemplos: http://www.librosweb.es/css/index.html. En esta web también puedes encontrar otros libros muy útiles de AJAX, XHTML, …

Referencia de funcines de Moodle: http://xref.moodle.org/nav.html?_functions/index.html

Crear un tema para Moodle (I)

Domingo, 1 de Febrero de 2009

Una vez que ya se ha instalado el LCMS Moodle lo que debemos hacer es crear un tema para personalizar el Moodle a nuestro sitio web.

Hay que decri que en la Web de Moodle hay un directorio con muchos temas que pueden ser modificados libremente [1]. En esta serie de artículos vamos a ver como hacer un tema utilizando como base otro ya existente. Para ello lo que debemos hacer duplicar el tema `standard` y ponerle el nombre que deseemos, en mi caso será `plf`. Utilizamos el tema standard puesto que nos aseguraremos que va a funcionar correctamente, puesto que tendrá todos los ficheros necesarios del tema.

Dentro de la carpeta nos encontramos una serie de archivos:

  • config.php: Fichero de configuración del tema.
  • docstyles.php: Fichero encargado de cargar los CSS, este fichero también puede contener sintaxis CSS.
  • favicon.ico: Icono que queremos que se vea en nuestro navegador. El que viene por defecto es el logotipo de Moodle. Si quieres crear un favicon a partir de una imagen te recomiendo que lo hagas desde Dynamic Drive [2].
  • footer.html: Fichero que contiene la platilla html del pie del sitio web.
  • gradient.jpg: Este fichero contiene el degradado del tema standar. En mi caso no lo voy a utilizar y lo borraré.
  • header.html: Fichero que contiene la plantilla html de la cabecera del sitio web.
  • meta.php:  Fichero en el que se pueden insertar tags metas para al cabecera.
  • README.html: Fichero de información del tema.
  • rtl.css: Fichero para estilo cuando la dirección del texto es de derecha a izquierda.
  • screenshot.jpg: Fichero con un pantallazo del tema (Este fichero se cambiará al final de terminar el tema).
  • styles.php: Fichero de configuración de los estilos.
  • styles_color.css: Fichero para poner los colores de los estilos.
  • styles_fonts.css: Ficheros para poner las fuentes de los estilos.
  • styles_ie6.css: Ficheros para las cosas específicas de Internet Explorer 6.0.
  • styles_ie7.css: Ficheros para las cosas específicas de Internet Explorer 7.0.
  • styles_layout.css: Fichero de definición de los estilos.
  • styles_moz.css: Fichero para las cosas específicas de Mozilla Fire Fox.

Manos a la obra

Lo perimero que tenemos que hacer es cambiar el fichero README.html, para poner el nombre de nuestro tema y la información que nos apetezca.

Lo segundo que haremos será modificar el favicon.ico (si es que querremos).

Bueno, ahora entramos en el Moodle y cambiamos el tema, para ello una vez que entramos como administrador de Moodle y nos dirigimos a Apariencia -> Temas -> Selector de Temas y seleccionamos nuestro tema. Como solo hemos cambiado el fichero README.html (para ver su contenido en el selector de temas podremos ver el enlace información) y favicon.ico, con lo que la apariencia será la misma que la del tema standard. Lo seleccionamos y empezaremos a cambiar las cosas.

En el siguiente artículo veremos cómo ir modificando los demás ficheros.

Enlaces.

[1] Temas de Moodle: http://moodle.org/mod/data/view.php?id=6552

[2] Dynamic Drive favicon generator: http://tools.dynamicdrive.com/favicon/