Category Archives: software libre

Magento vs Prestashop

Últimamente está muy de moda el debate de si es mejor Magento o Prestashop y en este post me gustaría exponer mi postura. Seguramente algunos de vosotros no estaréis para nada de acuerdo con lo que digo, así que sería un placer debatirlo por aquí o en un bar con unas cervecitas 😉

Normalmente la gente sabe que estoy especializado en el mundo Magento y me pregunta ¿por qué es mejor Magento que Prestashop? Yo siempre respondo que mi único posicionamiento claro es por el software libre. A día de hoy estoy especializado en Magento simplemente por que considero que es la mejor plataforma de eCommerce libre. Si algún día otra que sea libre llega a ser mejor, no tengo ninguna duda de que me pasaré a esa. No estoy casado con Magento.

Una pequeña matización. Cuando hablo de Magento, me refiero a Magento CE. Las versiones Profesional (que desaparece ahora) y Enterprise no son libres y por lo tanto no se las recomendaría ni a mi peor enemigo. Y digo esto siendo partner de Magento y pudiendo llevarme una comisión interesante por cada licencia vendida.

A continuación voy a exponer los motivos por lo que considero que Magento es el mejor:

  • Tiene la comunidad más grande y una importante red de partners. Los partners los puedes usar o no, pero es una tranquilidad saber que si quieres, puedes contar con empresas especializadas en el tema y con garantías. Si bien es cierto que la comunidad de Prestashop está creciendo y están empezando a montar su propia red de partners, aún no ha llegado al nivel de Magento.
  • La arquitectura extensible de Magento (API webservice, multistore, sistema de extensiones, etc.) es infinitamente mejor que la Prestashop. Esto también supone que la curva de aprendizaje sea más elevada y por eso muchas empresas prefieran trabajar con Prestashop ya que es más fácil empezar a “meterle mano”.
  • Si está bien implementado, es ideal tanto para tiendas pequeñas como Mercado de Barrio, medianas como Malababa o Independi o grandes como North Face o Samsung. Cuando la gente dice que es lento es por dos razones: está mal implementado o los sistemas donde se ha implantado no son los óptimos.

Con estos motivos (y algún otro que seguro que se me ha pasado) creo que está claro que plataforma es mejor.

Pero la cosa no se queda ahí. Hay otro gran motivo por el cual todavía se decanta más la balanza por Magento y es x.commerce. Hablaré detenidamente en otro post sobre ello, pero estoy convencido de que va a jugar un papel clave en el futuro del e(lectronic)Commerce para convertirlo en e(Xtended)commerce.

Apache Derby en Ubuntu!

Derby es un producto de Apache DB Project y desde la versión 6 de Java viene incluida en el JDK.

Se trata de una base de datos relacional y transaccional que ocupa muy poco espacio en disco y tiene una necesidad mínima de administración. Además soporta el almacenamiento de una base de datos archivada en un archivo JAR, lo que permite distribuir simplemente el archivo JAR.

Para probarlo en ubuntu, primero hay que instalar el jdk

sudo apt-get install sun-java6-jdk sun-java6-javadb

Después hay que configurar las variables de entorno


export JAVA_HOME=/usr/lib/jvm/java-6-sun/
export PATH=$JAVA_HOME/bin:$PATH
export DERBY_HOME=/usr/lib/jvm/java-6-sun/db
cd /usr/lib/jvm/java-6-sun/db/bin
./setEmbeddedCP
export CLASSPATH=$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar:.

Y ya podemos probar a conectarnos a una bd de ejemplo con:

java org.apache.derby.tools.ij
ij> connect 'jdbc:derby:/usr/lib/jvm/java-6-sun/db/demo/databases/toursdb';
ij> select * from countries;

Ahora probamos a crear nuestra propia bd (se crea en el dir desde el que se lanza ij)

java org.apache.derby.tools.ij
ij> connect 'jdbc:derby:DerbyTestDB;create=true';
ij> create table personas(nombre varchar(20), apellido varchar(50), apellido2 varchar(50));
ij> insert into personas values('Manolito', 'Gafotas', 'Pérez');
ij> insert into personas values('Mafalda', 'Mateo', 'González');
ij> select * from personas;
ij> disconnect;
ij> exit;

Por último podemos probar a conectarnos a la bd que hemos creado desde un programa java como el siguiente:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import java.util.Properties;

public class DerbyTestDBClient
{
public static void main (String [] args)
{
DerbyTestDBClient testClient = new DerbyTestDBClient();
testClient.showPersons();
}

public void showPersons()
{
try{
String driver = "org.apache.derby.jdbc.EmbeddedDriver";

Class.forName(driver).newInstance();
Connection conn = null;
conn = DriverManager.getConnection("jdbc:derby:DerbyTestDB");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT nombre, apellido FROM personas");
while(rs.next())
{
System.out.println("Nombre : " + rs.getString(1));
System.out.println("Apellido : " + rs.getString(2));
System.out.println();
}
rs.close();
s.close();
conn.close();
}catch(Exception e){
System.out.println("Exception: " + e);
e.printStackTrace();
}
}
}

Actualización de phpmyadmin en Ubuntu Jaunty

Con la última actualización de mi Ubuntu a Jaunty, uno de los paquetes que se ha actualizado ha sido el de phpmyadmin.

Al intentar loguearme con el tipico root/sin passwd me daba fallo. He comprobado a conectarme a mysql desde la línea de comandos e iba bien, así que tenía que ser algo del phpmyadmin. Después de googlear un rato sin mucho exito, he encontrado la solución en el blog de mknix.

Para solucionarlo basta con añadir a /etc/phpmyadmin/config.inc.php la siguiente línea junto al resto de opciones:

$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

Aunque esto soluciona el problema coincido con mknix en que lo mejor es que poner una contraseña al usuario root :p

Apt 0.6 y firma de paquetes


Hace unos días, después de haber actualizado mi Debian, al hacer un:

# apt-get update

me aparecía el siguiente mensaje:

Ign http://ftp.fr.debian.org unstable Release.gpg
/>Des:1 http://www.stanchina.net ./ Release.gpg [189B]
/>[…]
/>Leyendo lista de paquetes… Hecho
/>W: GPG error: http://www.stanchina.net ./ Release: The following signatures couldn’t be verified
/>because the public key is not available: NO_PUBKEY 3DCCCCACE46F104F
/>W: GPG error: ftp://ftp.nerim.net unstable Release: The following signatures couldn’t be verified
/>because the public key is not available: NO_PUBKEY 07DC563D1F41B907
/>W: GPG error: ftp://mirror.aarnet.edu.au unstable Release: The following signatures couldn’t be
/>verified because the public key is not available: NO_PUBKEY BB5E459A529B8BDA
/>

Me quedé un poco extrañado ya que no había tocado nada en el sources.list ni nada por el estilo. Me puse a googlear un poco y vi que era un problema bastante generalizado. Parece ser que con la última actualización de apt en Debian Unstable han añadido
la posibilidad de comprobar si los paquetes que instalas en tu equipo
son legítimos. Esto significa que cuando te bajas un .deb, apt
comprobará que el autor es quien dice ser y que además nadie lo ha
modificado por el camino.
Para poder usar está nueva utilidad y evitar todos los warnings tuve que hacer lo siguiente:

# apt-get dist-upgrade
[…]
AVISO: ¡No se han podido autenticar los siguientes paquetes!
e2fslibs e2fsprogs findutils grep
¿Instalar estos paquetes sin verificación [s/N]?

Aquí hay que decirle que sí y los paquetes se instalarán sin mayor
problema, y configurar el sistema para que compruebe las firmas:

# apt-get install debian-keyring
# apt-key add /usr/share/keyrings/debian-role-keys.gpg

En este punto ya tenemos las claves para los repositorios oficiales de
debian, para el resto tendrás que buscar las claves en un keyserver y
exportarlas usando apt-key. El id de la clave se puede sacar del warning
que devuelve apt-get update, por ejemplo:

# gpg –keyserver subkeys.pgp.net –recv-keys 3DCCCCACE46F104F
gpg: directory `/root/.gnupg’ created
gpg: creado un nuevo fichero de configuración `/root/.gnupg/gpg.conf’
gpg: AVISO: las opciones en `/root/.gnupg/gpg.conf’ no están aún activas en esta ejecución
gpg: anillo `/root/.gnupg/secring.gpg’ creado
gpg: anillo `/root/.gnupg/pubring.gpg’ creado
gpg: requesting key E46F104F from hkp server subkeys.pgp.net
gpg: /root/.gnupg/trustdb.gpg: se ha creado base de datos de confianza
gpg: key E46F104F: public key “Flavio Stanchina ” imported
gpg: no se encuentran claves totalmente fiables
gpg: Cantidad total procesada: 1
gpg: importadas: 1
# gpg –armor –export 3DCCCCACE46F104F | apt-key add –
gpg: no se encuentran claves totalmente fiables
OK
# apt-key list
/etc/apt/trusted.gpg
——————–
pub 1024D/38C6029A 2002-12-20 [expired: 2004-01-24)]
uid Debian Archive Automatic Signing Key (2003)

pub 1024D/30B34DD5 2003-12-03 [expired: 2004-01-14)]
uid Debian Archive Automatic Signing Key (2003 v2)

pub 1024R/1DB114E0 2004-01-15 [expired: 2005-01-27)]
uid Debian Archive Automatic Signing Key (2004)

pub 1024D/4F368D5D 2005-01-31 [expires: 2006-01-31]
uid Debian Archive Automatic Signing Key (2005)

pub 1024D/E46F104F 2001-11-19
uid Flavio Stanchina
uid Flavio Stanchina
sub 1024g/07A5A604 2001-11-19

Solo quedaría repetir el último paso por cada clave no reconocida.

Una curiosidad: apt-key no es más que un script de bash que llama a gpg,
este gpg almacena el anillo de claves en /etc/apt/trusted.gpg y no tiene
archivos de configuración (todas las opciones se las pasa apt-key en la
línea de comandos).

No recuerdo exactamente la url donde encontre esta información, pero espero que a alguno le pueda servir de ayuda…

Mi antivirus


Hoy quería escribir un poco sobre un antivirus distinto de los típicos Panda, Norton, McAffe, Kaspersky… Se trata ni más ni menos que de ClamAV. Supongo que para muchos no será nada nuevo, para otros les sonará pero nunca se han puesto a utilizarlo, a otros les resultará interesante y puede que empiecen a usarlo, y para otros muchos seguramente pasará sin pena ni gloria como otro antivirus más.
La pregunta del millón… ¿Porqué hay que usar este antivirus? Esa respuesta no la puedo responder yo. Lo que si que puedo explicar es porque uso yo este gran antivirus. Una de las principales causas es su licencia GPL. No hay mucho a comentar al respecto que no haya dicho ya. Cada uno actúa como quiere. Puedes pagar por un antivirus en la tienda, puedes bajartelo del aMule y crackearlo en astalavista, o por el contrario puede utilizar uno Open Source. Yo personalmente me quedo con la última.
Otro aspecto muy importante es que es multiplataforma. A pesar de mi gran preferencia por linux, todavía en ocasiones me veo obligado a utilizar Windows y realmente el tema de los virus en este entorno tiene más peligro… Por ello existe una interfaz gráfica de ClamAV para Windows que se llama ClamWin. Yo lo utilizo y doy fe de que funciona muy bien.
Muchas de las opciones con las que cuenta ClamAV son

  • Escaneo programado.
  • Actualización automática de la base de datos de virus.
  • Scanner de virus “standalone”.
  • Plugin para Outlook, Eudora …
  • Se puede configurar en cualquier servidor de correo.
  • Escaneo incorporado para RAR, Gzip, Bzip2…

Otro aspecto que me gustaría resaltar es que se pueden realizar escaneos desde la línea de comandos y con un simple “clamscan -r /home/ashiak/” puedo analizar todos mis archivos.
Por último hay que decir que esto no es sólo un antivirus de andar por casa ya que grandes organizaciones como SourceForge, DynDNS, Barracuda Networks, Webmail.us… así como un montón de universidades, utilizan este antivirus en sus entornos de producción.
¿Qué os parece a vosotros?

Una de Mapas Mentales…

Hoy he asistido a una jornada sobre Gestión de Proyectos en la Empresa y entre otros ponentes se encontraba Rafael Lostado, que es el director del Master en Project Management del Instituto de Economía Internacional de la Universidad de Valencia. Principalmente su intervención a estado dirigida a presentar un concepto bastante novedoso para la mayoría de asistentes, los Mapas Mentales.
Un Mapa Mental se define como una expresión del pensamiento irradiante, y por tanto, y función natural de la mente humana, y se puede aplicar a aspectos tan variopintos que van desde la gestión de proyectos hasta al diseño de cuentos para niños. Se pueden utilizar diversas herramientas para automatizar el proceso de crear un Mapa Mental, como Mindman… pero personalmente os recomiendo FreeMind que es libre.

Aunque a simple vista puede parecernos algo trivial, parece tener una base cientifica bien definida ya que se adapta al funcionamiento del cerebro.
No se, es algo que tendré que probar ya que para mucha gente parece indispensable.

VoIPBuster en Linux

Cada vez tengo más claro que VoIPBuster es una pasada. La mayor pega que tenía es que solo nos podíamos descargar el ejecutable para Windows. Pero problema solucionado!!
Parece ser que utiliza el protocolo IAX, que está muy extendido ya que tambien es usado por Asterisk, y hay muchas herramientas que nos permiten usar este protocolo desde un sistema no Windows. En mi caso, para Linux, he utilizado iaxComm.


En está página recomiendan usar kiax, aunque a mi me ha funcionado mejor iaxComm. Es muy sencillo de instalar y utilizar. Basta con descargarse el .tar de su web, descomprimirlo, y ejecutar el fichero iaxComm. Lo único que tenemos que hacer es crear una cuenta nueva con nuestro usuario y password de VoIPBuster, y como host poner “iax.voipbuster.com”.
Una vez creada la cuenta se pueden configurar las preferencias a nuestro gusto. Alguna cosa interesante de configurar son los codecs. Depende de la conexión a Internet que tenga cada uno, en mi caso he optado por utilizar U-LAW.
Bueno, pues ya no queda ninguna excusa para al menos no probarlo!!