sábado, agosto 22, 2009

Enabling the Bluetooth device on Lenovo Thinkpad SL400

Quick post:

To enable the bluetooth device on Lenovo Thinkpad SL400 laptop (and others features like hot-keys), use the lenovo-sl-laptop kernel module, available in:

http://github.com/tetromino/lenovo-sl-laptop/tree/master

Thanks nelchael.

http://dev.gentoo.org/~nelchael/SL400-NRH4MPB.html

miércoles, julio 15, 2009

Plantilla única para las acciones de un módulo en Symfony

Una forma sencilla de utlizar una única plantilla para las acciones de un módulo en Symfony, es declarando un método preExecute y usando el método de la clase sfActions llamado setTemplate, de la siguiente forma:

class miModuloActions extends sfActions
{
public function preExecute()
{
$this->setTemplate('miplantilla');
}

public function executeIndex()
{
// codigo ......

}
}

De esta manera todas las acciones buscarán la plantilla llamada miplantillaSuccess.php, sin necesidad de retornar un atributo de la clase sfView.

miércoles, julio 01, 2009

PostgreSQL 8.4 ha sido liberado

Copio el anuncio de la lista oficial de soporte en español:

1 de julio, 2009: El Grupo Global de Desarrollo de PostgreSQL ha liberado la versión 8.4, continuando con el rápido desarrollo de la base de datos de código abierto más avanzada del mundo. Esta versióncontiene una gran cantidad de mejoras para hacer la administración,consulta y programación en PostgreSQL mucho más fácil que nunca. Con las 293 funcionalidades nuevas o mejoradas en la versión 8.4, hay aún más motivos para escoger PostgreSQL para sus futuros proyectos.

La mayoría de los cambios en PostgreSQL 8.4 son herramientas y órdenes de administración y monitoreo, nuevas o mejoradas. Cada usuario tiene su funcionalidad favorita que hace su trabajo cotidiano con PostgreSQL más fácil y productivo.

“Hemos usado PostgreSQL durante siete años, y estamos entusiasmados con varias funcionalidades de 8.4, especialmente los privilegios por columna, configuración regional en cada base de datos, búsquedas parciales en índices GIN y excepciones definidas por usuario”, dice Jeffrey Webster, CTO de ZooLoo.com. “PostgreSQL nos ha permitido crecer sin sacrificar la integridad de nuestros datos”.

Entre las mejoras más populares están:

  • Restauración de bases de datos en procesos paralelos, que acelerarecuperación de un respaldo hasta 8 veces.
  • Privilegios por columna, que permiten un control más granular de datos confidenciales.
  • Configuración de ordenamiento configurable por base de datos, lo cual hace a PostgreSQL más útil en entornos con múltiples idiomas.
  • Actualizaciones “en el lugar” desde 8.3 a 8.4 con muy bajo downtime, gracias al uso de pg_migrator beta.
  • Nuevas herramientas de monitoreo de consultas que le otorgan a los administradores mayor información sobre la actividad del sistema.

La versión 8.4 hace el análisis de datos mucho más sencillo a través de funcionalidades avanzadas de ANSI SQL:2003, como las funciones window, expresiones comunes de tabla y joins recursivos. “Estas estructuras de consulta aumentan sustancialmente la expresividad del dialecto SQL de PostgreSQL, permitiendo a los usuarios hacer preguntas interesantes en una sola consulta, que habría sido imposible de construir antes”, explica Sailesh Krishnamurthy, fundador de Truviso. Las mejoras en los procedimientos almacenados, como los valores por omisión para los argumentos y los argumentos de largo variable hacen más simple y compacta la programación en la base de datos.

La nueva versión además mejora el rendimiento de las aplicaciones, como comenta Kevin Grittner, Administrador de base de datos del Sistema de Cortes de Wisconsin: “PostgreSQL continúa mejorando el rendimiento en cada versión. La versión 8.4 ha añadido muchas optimizaciones, como semi-joins y anti-joins, que otorgan una notable mejora en el tiempo de ejecución de algunas de nuestras consultas más exigentes”.

Debido a estas nuevas características PostgreSQL 8.4 podrá atender a muchos más usuarios que antes, como el proyecto OpenStreetMap. “A medida que diseñábamos la nueva versión de la API de OpenStreetMap, estuvo claro que necesitábamos una base de datos de clase mundial que no sólo dijera que tenía las funcionalidades deseadas, sino que realmente corriera bien en la escala que nosotros necesitábamos. Aunque existen varias bases de datos de código abierto, PostgreSQL era la elección obvia”, dice Tom Hughes, administrador de sistemas de OpenStreetMap.

jueves, mayo 21, 2009

Bloqueo de cuentas de usuario en Solaris/OpenSolaris y Linux

En el siguiente artículo expongo una corta descripción acerca del bloqueo de cuentas de usuario tanto en Solaris/OpenSolaris como en Linux. El artículo completo se puede descargar de:

miércoles, marzo 18, 2009

Se actualiza la certificación LPI a partir de Abril

A través de la lista de discusión de LPI, se ha hecho el anuncio oficial de la actualización de los exámenes de certificación para los niveles junior y advanced (LPIC-1 y LPIC-2, respectivamente). Aunque en mi opinión no hay cambios drásticos, se incluyen nuevos temas, como por ejemplo el manejo básico del lenguaje SQL, localización y administración de dispositivos con udev. En resumen los nuevos temas, a parte de los mencionados anteriormente son:
  • Accesibilidad
  • Encripción de datos
  • Un enfoque más fuerte en seguridad
  • Más sobre LVM
  • Protocolos IMAP/POP
En la página del lpi, se pueden encontrar los temas en detalle, además de enlaces hacia las nuevas guías de estudio (muchas de ellas serán publicadas hasta junio de este año.)

Otra fuente importante es el wiki de los exámenes:




domingo, febrero 22, 2009

Installation of Sakai 2.5 under Solaris 10u6 using MySQL 5.1 CS

Sakai is a great virtual collaboration and learning environment designed mainly for research activities. It' s written in Java using a several open source componets such that: apache maven, apache tomcat, hibernate and others. Sakai is published under terms of Educational Community License v. 1.0., which is certified for OSI Initiative. More information about Sakai:
Enlace

Well, and now, i'm going to describe the installation process of Sakai from the sources under Solaris 10 OS (update 6), using the MySQL Server version 5.1 (Community Server). I think, this same instructions can be usefull for OpenSolaris (and Linux distros, with some changes !)

The summary of installation process:
  1. Download the Sakai sources and other components as the servlet container, the Java SDK, etc,,
  2. Install the database server (in this case MySQL) and create the Sakai's database.
  3. Create the environment to compile and deploy Sakai.
  4. Compile and deploy Sakai
  5. Connect Sakai with database Server.
  6. Start the Tomcat Server

Step 1: Download the necessary software:

To compile an deploy Sakai, with MySQL support, we need:

All this software may be downloaded on /opt directory, although you can choose another location.

Remark: The shell used for installation process is Bash. If you use another shell, for instance KSH or C-Shell, consult the documentation for export environment variables and execute files.

Step 2: Install the MySQL Server

Before to install the MySQL server, you must to create the mysql user and group:

# groupadd mysql
# useradd -d /var/lib/mysql -s /bin/bash mysql
# usermod -G mysql mysql

And now, we can to install and start the MySQL server:

# cd /opt
# gunzip mysql-5.1.31-solaris10-i386.pkg.gz
# pkgadd -d mysql-5.1.31-solaris10-i386.pkg all
# /etc/init.d/mysql start

Add the mysql commands to the PATH:

# export PATH=$PATH:/opt/mysql/mysql/bin

Verify the connection: (The root user has an empty password )

# mysql -u root -p

Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.31 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Create the Sakai database:

mysql> create database sakai default character set utf8;
Query OK, 1 row affected (0.00 sec)

Note: If you want, you can to add the mySQL service as part of SMF. See: http://pastebin.com/f2c7200bd

For step 3 and 4, the main reference is the install guide of Sakai 2.4.5, however it can be summarized:

Step 3: Create the environment to compile and deploy Sakai:


# cd /opt
# tar xzf apache-tomcat-5.5.26.tar.gz
# tar xzf apache-maven-2.0.10-bin.tar.gz
# ln -s apache-tomcat-5.5.26 tomcat
# ./jdk-1_5_0_17-solaris-i586.sh
# export JAVA_HOME=/opt/jdk1.5.0_17
# export PATH=$PATH:$JAVA_HOME/bin
#export JAVA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m"
# export CATALINA_HOME=/opt/tomcat
# export PATH=$PATH:/opt/tomcat/bin
# export MAVEN_HOME=/opt/apache-maven-2.0.10/
# export PATH=$PATH:/opt/apache-maven-2.0.10/bin
#export MAVEN_OPTS='-Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m'Enlace# cd $HOME
# mkdir -p .m2/repository
# vi .m2/settings.xml /* with this content: See: Install Guide of Saka 2.5.4. section Maven; subsection: create a maven settings.xml file. */



After, create the setenv.sh file in /opt/tomcat/bin, with this content:

export JAVA_OPTS="-server -XX:+UseParallelGC -Xmx768m -XX:MaxPermSize=160m -Djava.awt.headless=true"


Note: You can save the environment variables declared above in your .bashrc file.

Modify the /opt/tomcat/bin/catalina.sh file and change the shell binary:

#!/bin/sh for:
#!/bin/bash

Step 4: Compile and deploy Sakai:

# cd /opt
# tar xzf sakai-src-2.5.4.tar.gz
# cd sakai-src-2.5.4/master
# mvn clean install
(outpur truncated ...)
# cd ..
# mvn clean install sakai:deploy -Dmaven.tomcat.home=/opt/tomcat
(meanwhile you can drink a coffee! )

If the Build is successfull, you can to go a the next step ....

Step 5: Connect Sakai with database Server.

# tar xvzf mysql-connector-java-5.1.7.tar.gz
# cp mysql-connector-java-5.1.7/*.jar /opt/tomcat/common/lib

Copy the sakai.properties file located at:

/opt/sakai-src-2.5.4/component/component-api/component/src/config/org/sakaiproject/config/sakai.properties

to /opt/tomcat/sakai

To add the information about the database vendor (MySQL), change for the
appropriate values:

# Usser and password to database access:

username@javax.sql.BaseDataSource=root
password@javax.sql.BaseDataSource=123456

# MySQL settings - make sure to alter as appropriate
vendor@org.sakaiproject.db.api.SqlService=mysql
driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakai?useUnicode=true&characterEncoding=UTF-8
validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED

Step 6: Start the tomcat server:

To finish:

# startup.sh

Ready, Sakai is installed !. To access it: http://{server-name}:8080/portal


Principiante en matemáticas

Las matemáticas son una ciencia, que tiene tanto de largo como de ancho. Es impresionante observar los diversos campos de estudio alrededor de ellas y como constituyen un lenguaje unificador para las demás ciencias.

Hace unos días en la lista de discusión de Maxima, una persona escribió un correo pidiendo información sobre algún documento o libro para un principiante en matemáticas. Hubo varias respuestas, de parte de algunos de los desarrolladores de Maxima y muchos coincidian en que no era fácil recomendar un libro, debido a que la pregunta estaba planteada de manera muy general; y recomendaron a la persona que aclarara cuales eran sus intereses (topología, geometría, álgebra lineal, teoría de números, etc,.), para poder así recomendar algo más adecuado. Sin embargo, dentro de las sugerencias, no sabía que había un libro de cálculo del MIT disponible en formato PDF, una muy buena referencia:


Otra referencia para el estudio del cálculo elemental:


Y para rematar, uno de los manuscritos de Euler, publicado en 1748:


Defitivamente, hay mucho por conocer sobre matemáticas, aunque con las herramientas que poseemos actualmente, el camino se facilita bastante y el aprendizaje se vuelve más interactivo.


miércoles, enero 28, 2009

Agregando información de versión de SVN en la cabecera de los archivos

Bueno, personalmente encuentro muy útil al momento de desarrollar (usando Subversion) que en las cabeceras de los archivos se encuentre información referente al número de revisión, autor y fecha de la misma. Desde hace ya rato, que venía intentando lograr escribir esa información de mis archivos sin éxito. Sin embargo, en un "mini-articulo" de Linux Journal encontré la solución:

Simplemente al archivo que se desea colocar dicha cabecera (en mi caso archivos PHP), agrego la línea: $Id: $. Por ejemplo:


/**
* @author .....
* @version SVN $Id: $
*/
..........

Después agrego una propiedad a el ó los archivos:

$ svn propset svn:keywords Id archivo.php

o si quiero a todos los archivos .php de mi proyecto:

$ find . -name "*.php" -exec svn propset svn:keywords Id {} \;

Después configuro mi cliente SVN, agregando la siguiente línea en la sección auto-props:

*.php = svn:keywords=Id

Y listo, una vez se haga commit en el servidor, la información de revisión, autor y fecha será agregada en medio de la etiqueta Id:

* @version SVN $Id: Notificacion.php 95 2009-01-29 02:01:01Z jpromerob $
*/