jueves, 12 de noviembre de 2009

Cómo distinguir el Software del Humo

0 comentarios
 
Puede parecer una chorrada, pero el hecho es que cada vez estoy más convencido de la necesidad de crear un algoritmo capaz de determinar la cantidad de humo existente en un proyecto software. De hecho, si lo pensamos bien, el software y el humo son ambos elementos inmateriales que, vistos desde la distancia, pueden resultar muy difíciles de distinguir. Así que me he puesto manos a la obra.

Como ingeniero informático, soy perfectamente capaz de escribir un análisis de datos técnicos que nadie entienda, pero como aquí el objetivo es divisar el humo, le voy a dar a la fórmula un enfoque más mundano, para que la entiendan incluso los gerentes. Ahí va la definición de factores:

Factor A: ¿ Existe una web del producto, donde se describan claramente sus funcionalidades ?
Puntúa de 0 a 10, donde 0 = no hay web, y 10 = la web existe y es cojonuda

Factor B: ¿ La web contiene capturas de pantalla donde puedas hacerte una idea rápida ?
Puntúa de 0 a 10, donde 0 = no hay capturas, y 10 = las hay y molan

Factor C: ¿ Puedes conseguir fácilmente una demo del producto ?
Puntúa de 0 a 10, donde 0 = no hay demo que valga, y 10 = la hay y es fácil obtenerla

Factor D: ¿ La demo es completa, con todas las funcionalidades, o es una versión capada donde no puedes hacer casi nada ?
Puntúa de 0 a 10, donde 0 = te he dicho que no hay demo, y 10 = la hay y puedes hacer de todo en ella

Factor E: ¿ Te han enviado un tío con corbata y americana para convencerte ?
Puntúa de 0 a 10, donde 0 = el tío era un pijo pedante que sólo soltaba siglas que no entendías, y 10 = era un tío competente que sabía lo que hablaba

Factor F: ¿ Cómo se financió el desarrollo del producto ?
0 = Pillaron una subvención (eso huele a humo más que una hoguera)
5 = Con aportaciones externas de capital
10 = Con recursos propios

Factor G: ¿ Existen referencias contrastables de implantaciones exitosas ?
0 = Ni rastro de eso
5 = Hay algunas
10 = Con la gente que lo ha comprado, tiene que ser la ostia

Factor H: Pide un presupuesto de implantación, que incluya despliegue y formación para ti y/o tus técnicos. ¿ Cuanto te quieren clavar ?
0 = Más de 50.000 euros (el producto no existe y te lo quieren hacer a medida)
10 = Menos de 3000 euros (el producto existe y te van a cobrar los servicios)

Porcentaje de Humo = 100 – (A + B + C + D + E + F + G*2 + H*2)

Como consumidor te recomiendo que apliques la fórmula a rajatabla cada vez que te plantees implantar un software, no vaya a ser que estés comprando humo :-)

Copyleft: Eres libre de distribuir y reproducir el contenido de este artículo, total o parcialmente, por el medio que quieras, faltaría más.
Leer más...
miércoles, 4 de noviembre de 2009

Guía de Instalación de KMKey

27 comentarios
 
Ya hemos explicado anteriormente cómo instalarse KMKey de forma rápida, pero vamos a explicar también como hacerlo paso a paso, de forma detallada.

En primer lugar necesitamos un sistema GNU/Linux base, a ser posible Debian stable, aunque en Ubuntu funcionaremos sin inconveniente. Si somos de Windows, entonces lo primero es bajarse una versión nuevecita de la VirtualBox e instalarla. Después nos descargaremos el CD 1 o Netinst de Debian, lo conectaremos al CDROM de la máquina física o virtual, y procederemos a instalar el sistema básico. No son necesarios entornos gráficos ni paquetes adicionales, a posteriori instalaremos los imprescindibles.

En cuanto al hardware, las recomendaciones para un servidor de producción de buen rendimiento son 2 GB de RAM, 2 o 3 procesadores de velocidad >= 3 GHz y discos de buena calidad (a ser posible en RAID y de 15.000 rpm). Aunque obviamente se puede funcionar con menos, eso es lo recomendable para un KMKey que se vaya a usar con cierta intensidad.

Una vez tenemos nuestro Linux, entramos con usuario root y empezamos. Las instrucciones indicadas en esta guia son válidas para Debian Lenny, aunque pueden servir de ejemplo para la instalación en otras distribuciones:

1) Verificar que en /etc/apt/sources.list disponemos de acceso a los repositorios "main", "contrib" y "non-free". Por ejemplo:

deb http://ftp.us.debian.org/debian/ lenny main contrib non-free

2) Instalación de paquetes

apt-get update
apt-get -y install make gcc libc6 libc6-dev gettext apache2 subversion python2.4 python2.4-dev python2.4-egenix-mxdatetime xlhtml ppthtml xsltproc wv catdoc poppler-utils python-lxml patch lynx icewm-lite xserver-xorg xfonts-75dpi xfonts-100dpi xbase-clients exim4 tightvncserver xfonts-base sudo less ytnef gs-common msttcorefonts ntpdate

3) Creamos usuario zope

adduser zope

4) Instalamos Zope 2.9.4

wget -c http://www.zope.org/Products/Zope/2.9.4/Zope-2.9.4-final.tgz
tar -zxf Zope-2.9.4-final.tgz
cd Zope-2.9.4-final
vi configure y cambiar ACCEPTABLE="2.4.1 2.4.2" por ACCEPTABLE="2.4.1 2.4.2 2.4.3 2.4.4 24.5 2.4.6"
./configure --prefix=/usr/local/zope294
make
make install
chown -R zope.zope /usr/local/zope294

ln -s /usr/local/zope294 /usr/local/zope

5) Creamos la instancia zope para KMKey

mkdir /usr/local/kmkey
chown -R zope.zope /usr/local/kmkey
su zope
cd /usr/local/zope
bin/mkzopeinstance.py -d /usr/local/kmkey/zope -u admin:tupassword


6) Si queremos usar RelStorage, esto es, ZODB implementado sobre una BBDD postgresql, procedemos a su instalación. ATENCIÓN, este paso es opcional, y algunas de las instrucciones que se indican pueden NO ser recomendadas en servidores compartidos con otros servicios.

apt-get install patch python-psycopg2 postgresql-client-8.3 postgresql-8.3
/etc/init.d/postgresql-8.3 stop
mv /var/lib/postgresql/8.3 /var/zope/postgresql_8.3
ln -s /var/zope/postgresql_8.3 /var/lib/postgresql/8.3
chown postgres.postgres /var/lib/postgresql/8.3
dpkg-reconfigure locales (añadir es_ES@euro si no está)

su postgres
cd /var/lib/postgresql/8.3
mv main main_old
/usr/lib/postgresql/8.3/bin/initdb /var/lib/postgresql/8.3/main/ --locale=es_ES@euro --lc-ctype=es_ES@euro
cp main_old/postmaster.opts main/
/usr/lib/postgresql/8.3/bin/pg_resetxlog main
cp main_old/*crt main
cp main_old/*key main
exit

/etc/init.d/postgresql-8.3 start
cd
wget http://pypi.python.org/packages/source/R/RelStorage/RelStorage-1.1.3.tar.gz
tar xzf RelStorage-1.1.3.tar.gz
cd RelStorage-1.1.3
export PYTHONPATH="/usr/local/zope/lib/python/"
python2.4 setup.py install --install-lib=/usr/local/zope/lib/python
cd /usr/local/zope/lib/python/ZODB
patch < $HOME/RelStorage-1.1.3/poll-invalidation-1-zodb-3-7-1.patch su postgres psql -c "CREATE USER zope WITH password 'tupassword' createdb" template1 exit su zope createdb kmkey_zodb


Editamos /usr/local/kmkey/zope/etc/zope.conf y cambiamos el zodb_db main por este otro:

%import relstorage
<zodb_db>
mount-point /
cache-size 15000
<relstorage>
<postgresql>
dsn dbname='kmkey_zodb' user='zope' host='localhost' password='tupassword'
</postgresql>
</relstorage>
</zodb_db>


7) Añadir productos KMKey a Zope

su zope
cd /usr/local/kmkey
mkdir source
cd source
echo "Please accept our certificate"
svn co https://joinup.ec.europa.eu/svn/kmkey/bundles/kmkey-stable
ln -s kmkey-stable current
cd current
python2.4 KMKeyCore/utils/generate_mo_files.py
cp ZOORRA/zoorra-config.xml.default ZOORRA/zoorra-config.xml
cp ZOORRA/server/zoorrad-config.xml.default ZOORRA/server/zoorrad-config.xml
cd /usr/local/kmkey/zope/Products
ln -s ../../source/current/* .
exit

cd /usr/local/kmkey/zope/Products/TextIndexNG3/extension_modules
python2.4 setup.py install


8) Creamos un script de arranque y reiniciamos Zope

cat > /etc/init.d/kmkey <<EOF
#!/bin/bash
su -c "/usr/local/kmkey/zope/bin/zopectl \$@" zope
EOF
chmod a+x /etc/init.d/kmkey
update-rc.d kmkey defaults 90 10
/etc/init.d/kmkey restart


9) Si queremos tener apache delante, entonces lo configuramos

cd /etc/apache2/mods-enabled
ln -s ../mods-available/proxy_balancer.load .
ln -s ../mods-available/proxy.conf .
ln -s ../mods-available/proxy.load .
ln -s ../mods-available/proxy_http.load .
ln -s ../mods-available/deflate.* .

cat > /etc/apache2/sites-available/kmkey <<EOF
ServerAdmin tu@tudominio.com
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
<proxy balancer://lb>
BalancerMember http://127.0.0.1:8080
ProxySet lbmethod=byrequests
ProxySet stickysession=STICKY_ROUTE
Order allow,deny
Allow from all
</proxy>

ProxyRequests Off
ProxyVia On
<LocationMatch "^[^/]">
Deny from all
</LocationMatch>

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
RewriteEngine On
RewriteRule ^/(.*) balancer://lb/VirtualHostBase/http//%{HTTP_HOST}:80/kmkey/VirtualHostRoot/\$1 [L,P]
EOF

cd /etc/apache2/sites-enabled
rm 000-default
ln -s ../sites-available/kmkey 000-default

10) Finalmente, si queremos poder obtener listados en formatos MS-Office o PDF, necesitaremos configurar OpenOffice y ZOORRA:

apt-get install python-uno openoffice.org-writer openoffice.org-calc
ln -s /usr/local/kmkey/zope/Products/ZOORRA/server /usr/local/zoorra
cd /usr/local/zoorra
Ajustar /usr/local/zoorra/zoorrad-config.xml
ln -s /usr/local/zoorra/zoorrad.sh /etc/init.d
update-rc.d zoorrad.sh defaults 95
/etc/init.d/zoorrad.sh start

su zope
cd /usr/local/kmkey/zope/Products/ZOORRA
cat > zoorra-config.xml
<oood-config><openoffice_python_path value="/usr/bin/python2.5"><python_uno_path value=""><pdf_conversion_method value="ps2pdf"><connection_string value="socket,host=localhost,port=2002"><conversion_timeout value="120">
exit
/etc/init.d/kmkey restart


Y esto es todo amigos, a disfrutar de vuestro KMKey, y no os olvideis de activar unas copias de seguridad de datos
Leer más...