Monthly Archives: May 2008

Configuración de GPRS en un Nokia 6300

Tal y como lo mencioné anteriormente, por fin pude configurar el acceso a GPRS de mi celular, un Nokia 6300 con el servicio de Tigo. Los menúes y las cosas de configuración dde este teléfono son diferentes a los que había configurado hasta la fecha, por esto no sabía con precisión donde poner la información del proveedor.

De todas las posibles combinaciones y experimentos que intenté resultó ser la versión mas simple de todas, desgraciadamente fallaban mis intentos porque utilizaba la palabra WAP en lugar de WEB. Por dos letras mal puestas no había podido configurarlo … hasta hace dos días :-P

Para configurar el servicio solamente es necesario ingresar la siguiente información al teléfono.

Settings.

Configuration.

Personal Config Settings.

My AP

Access Point Settings.

Data Bearer = Packet Data.

Bearer Settings.

Packet Data Access Point = web.colombiamovil.com.co

(Options > Add New)

My Web

Use preferred Access Point = yes.

Default Config Settings

(Options > Set as default)

Eso es todo lo necesario para configurarlo. Ahora es el turno de hacer funcionar los mensajes multimedia.

Para consultar mas información acerca de como configurar los mensajes multimedia (MMS) en el Nokia 6300 para Tigo Colombia acceder al siguiente enlace: Configuración de MMS.

GMail mobile en mi teléfono

Hace dos dias por fin pude configurar la cuenta de GPRS en mi teléfono, un Nokia 6300. Lo primero que intenté hacer fue instalar el cliente de correo de GMail el cual en mi teléfono anterior, un SE Z550, funcionaba de maravillas. Obtuve el cliente accediendo al sitio http://www.gmail.com/app desde el navegador nativo y descargué la aplicación MIDP2 de al rededor de 120KB. El ejecutarla me mostraba el siguiente mensaje.

Sorry, the Gmail mobile app will not work on your phone. Your phone doesn't have the appropriate certificate to communicate with Gmail. Try accessing Gmail on your mobile browser at http://m.gmail.com.

Tuve que instalar primero el certificado de Verisign antes de poder utilizar el cliente. Para esto accedí a https://www.verisign.com/cgi-bin/support/rootcert/getrootcert.cer o tinyurl.com/yhrayo si no desea escribir mucho, utilizando el navegador nativo. Después de guardar el certificado el cliente de GMail empezó a funcionar correctamente.

Configuración del módulo SSL en Apache 2.2.x en FreeBSD 7

Se configura el inicio automático de Apache para que incluya el módulo de SSL.

# vi /etc/rc.conf
apache2_flags="-DSSL"

Se establecen las ubicaciones donde se creará el certificado SSL.

# cd /usr/local/etc/apache22
# mkdir ssl.key
# mkdir ssl.crt
# chmod 0700 ssl.key
# chmod 0700 ssl.crt

Se crea el certificado SSL del servidor. Se deberán tener en cuenta las recomendaciones mencionadas en el artículo de soporte SSL para PGSQL. En particular, se deberá reemplazar la contraseña (MyPassPhrase) por una propia y privada.

# openssl genrsa -des3 -out server.key 1024
Enter pass phrase for server.key: MyPassPhrase

Solicitud de firma del certificado: Certificate Signing Request (CSR).

# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key: MyPassPhrase
Verifying - Enter PEM pass phrase: MyPassPhrase
Country Name (2 letter code) [AU]: CO
State or Province Name (full name) [Some-State]: Caldas
Locality Name (eg, city) []: Manizales
Organization Name (eg, company) [Internet Widgits Pty Ltd]:  Personal Development
Organizational Unit Name (eg, section) []: Educacion
Common Name (eg, YOUR name) []: webserver.mydomain.com
Email Address []:jimezam@gmail.com
A challenge password []: Certificado&2008k
An optional company name []: Smiley World

Realización de la autofirma del certificado.

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Enter pass phrase for server.key: MyPassPhrase

Ubicación de los certificados en sus ubicaciones finales.

# rm server.csr
# mv server.key ssl.key
# mv server.crt ssl.crt
# chmod 0400 ssl.key/server.key
# chmod 0400 ssl.crt/server.crt

Configuración de Apache para activar el módulo de SSL.

# vi /usr/local/etc/apache22/extra/httpd-ssl.conf
<VirtualHost _default_:443>
    DocumentRoot "/home/web"
    ServerName webserver.mydomain.com:443
    ServerAdmin jimezam@gmail.com
    ErrorLog /var/log/ssl-error.log
    TransferLog /var/log/ssl-access.log
    SSLCertificateFile "/usr/local/etc/apache22/ssl.crt/server.crt"
    SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/server.key"
</VirtualHost>
# vi /usr/local/etc/apache22/httpd.conf
Include etc/apache22/extra/httpd-ssl.conf

Reiniciar el servicio de Apache.

# /usr/local/etc/rc.d/apache22 restart
Enter pass phrase: MyPassPhrase

Realizar la verificación de su funcionamiento consultando las siguientes direcciones web.

  • http://webserver.mydomain.com
  • https://webserver.mydomain.com

Cada vez que se inicie el servicio, como en el paso anterior, se solicitará la clave asignada. Esta característica fue diseñada por razones de seguridad, es necesaria ya que la llave RSA privada del archivo server.key se encuentra encriptada con ella, sin embargo es posible removerla bajo consideración del administrador. Para remover esta capa de seguridad se deben ejecutar los pasos siguientes.

# cd /usr/local/etc/apache22/ssl.key
# cp server.key server.key.orig
# openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.orig: MyPassPhrase
# /usr/local/etc/rc.d/apache22 restart

Enlaces:

Autenticación local y conexiones de red de PostgreSQL 8.2 en FreeBSD 7

Autenticación local.

Por defecto PostgreSQL permite que las conexiones al motor de bases de datos que se realizan de manera local se hagan sin autenticación, lo cual es poco recomendable. Este comportamiento puede modificarse siguiendo los pasos dispuestos a continuación.

# vi /usr/local/pgsql/data/pg_hba.conf

Modificamos el método pasándolo de trust a md5 para los orígenes de conexión que nos interese asegurar. El siguiente es el nuevo contenido del archivo tomando en cuenta las modificaciones realizadas para activar el soporte de SSL.

local      all    all                      md5
hostssl    all    all    127.0.0.1/32      md5
hostssl    all    all    ::1/128           md5

Habilitar el acceso a las bases de datos a través de TCP/IP.

Nuevamente, por defecto PostgreSQL no permite la realización de conexiones cuya petición provenga de un equipo externo, es decir, diferente de localhost. Para habilitar esto se deberán seguir los pasos a continuación.

Es posible autorizar las conexiones desde orígenes externos nombrados, es decir, especificar con precisión desde cuales direcciones IP se habilitarán las conexiones remotas enunciándolas separadas por espacio en la variable listen_address (reemplazando el asterisco = todos).

# vi /usr/local/pgsql/data/postgres.conf
listen_addresses='*'

Debe tenerse en cuenta que además de permitir las conexiones desde una dirección IP específica (o varias), es necesario especificar el tipo de autenticación para ese equipo/red como se realizó en la sección anterior para localhost. Para permitir conexiones entrantes con soporte para SSL (hostssl), a cualquier base de datos (primer all), de cualquier usuario (segundo all) desde cualquier equipo de la red 192.168.1.x (192.168.0.0/24) utilizando contraseñas encriptadas con MD5 se deberá realizar el siguiente procedimiento.

# vi /usr/local/pgsql/data/postgres.conf
hostssl all all 192.168.1.0/24 md5

Para ajustar una mayor granularidad en la seguridad de conexión se deberán personalizar estos valores a sus requerimientos individuales.

Es necesario reiniciar el servicio para que se tomen en cuenta las modificaciones a la configuración recién realizadas.

Enlaces:

Soporte SSL para las conexiones de PostgreSQL 8.2 en FreeBSD 7

PostgreSQL trae inmerso por defecto el soporte nativo para encriptar el transporte de la información utilizando SSL. A continuación se describe el procedimiento necesario para activarlo en un servidor FreeBSD.

Activa el uso de SSL para las conexiones del motor de bases de datos.

# vi /usr/local/pgsql/data/postgresql.conf
ssl = on

Detiene el servicio del motor de bases de datos.

# /usr/local/etc/rc.d/postgresql stop

Crea el certificado SSL.

# cd /usr/local/pgsql/data/

En este paso se deben tener en cuenta dos aspectos. El primero de ellos es la clave PEM que se utilizará mas adelante y el segundo es que el Common Name deberá corresponder con nombre FQDN del servidor.

# openssl req -new -text -out server.req
Enter PEM pass phrase: MiClavePEM
Verifying - Enter PEM pass phrase: MiClavePEM
Country Name (2 letter code) [AU]: CO
State or Province Name (full name) [Some-State]: Caldas
Locality Name (eg, city) []: Manizales
Organization Name (eg, company) [Internet Widgits Pty Ltd]:  Personal Development
Organizational Unit Name (eg, section) []: Educacion
Common Name (eg, YOUR name) []: webserver.mydomain.com
Email Address []:jimezam@gmail.com
A challenge password []: Certificado&2008k
An optional company name []: Smiley World
# openssl rsa -in privkey.pem -out server.key
Enter pass phrase for privkey.pem: MiClavePEM
# rm privkey.pem

Se crean la llave privada y el certificado del servidor.

# openssl req -x509 -in server.req -text -key server.key -out server.crt
# chmod og-rwx server.key
# chown pgsql:pgsql server.*

Se reinicia el servidor para comprobar los cambios realizados.

# reboot

Por defecto las conexiones locales (con 127.0.0.1) se realizan sin encriptación. Siguiendo los pasos dispuestos a continuación es posible modificar este comportamiento y obligar a que este tráfico se encripte.

# vi /usr/local/pgsql/data/pg_hba.conf
local      all    all                      trust
hostssl    all    all    127.0.0.1/32      trust
hostssl    all    all    ::1/128           trust

Enlaces:

Instalación de PostgreSQL 8.2 en FreeBSD 7

Obtiene los paquetes necesarios de Internet, los compila e instala.

# cd /usr/ports/databases/postgresql82-server
# make config
NLS
PAM
# make install clean

Establece el directorio de datos inicial.

# su -l pgsql -c "initdb –locale=es_ES"

Se inicia manualmente el motor de base de datos para verificar que todo esté funcionando correctamente.

# su pgsql -c "postmaster -i -D /usr/local/pgsql/data"

Habilita el inicio automático del motor de base de datos al inicio del servidor.

# vi /etc/rc.conf
postgresql_enable="YES"

Se modifica la contraseña del usuario administrador (pgsql). Modifique la cadena rootpassword por el valor que considere apropiado.

# su - pgsql
# /usr/local/bin/psql template1
template1=# ALTER USER pgsql WITH ENCRYPTED PASSWORD 'rootpassword';
template1=# \q

Enlaces:

Mover el repositorio de archivos de MySQL 5.x en FreeBSD 7

La instalación ubica por defecto al repositorio de archivos del motor de base de datos en /var/db/mysql. Esta ubicación no es necesariamente la idónea, para nuestro caso no disponemos del espacio suficiente en esa partición y es por eso que es necesario moverla.

Los ajustes siguientes son los necesarios para transladar el repositorio de archivos de MySQL a /home/datos_mysql.

# /usr/local/etc/rc.d/mysql-server stop
# mv /var/db/mysql /home/datos_mysql
# vi /etc/rc.conf
mysql_dbdir=”/home/datos_mysql”

Instalación de MySQL 5.x en FreeBSD 7

Obtiene los paquetes necesarios de Internet, los compila e instala.

# cd /usr/ports/mysql50-server/
# make install clean

Establece el directorio de datos inicial y le asigna los permisos apropiados.

# /usr/local/bin/mysql_install_db

Establece un archivo de configuración inicial basado en los archivos de demostración.

# cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf

Existen varios archivos base de configuración en la ruta /usr/local/share/mysql para elegir según la configuración de hardware del servidor y su finalidad.

my-small.cnfPara sistemas de bajos recursos con 64MB de RAM o menos.
my-medium.cnfPara sistemas hasta con 128MB de RAM, ideal para servidor web
my-large.cnfPara sistemas con 512MB de RAM, ideal para servidor MySQL dedicados
my-huge.cnfPara sistemas con 1GB o 2GB de RAM, ideal para datacenters.

Actualiza el usuario y grupo propietario de los archivos.

# chown -R mysql:mysql /var/db/mysql

Se inicia manualmente el motor de base de datos para verificar que todo esté funcionando correctamente.

# /usr/local/bin/mysqld_safe --user=mysql &

Se modifica la contraseña del usuario administrador (root). Modifique la cadena rootpassword por el valor que considere apropiado.

# /usr/local/bin/mysqladmin -u root password 'rootpassword'

Habilita el inicio automático del motor de base de datos al inicio del servidor.

# vi /etc/rc.conf
    mysql_enable=”YES”

Si se desea desactivar el acceso externo al servidor de bases de datos se deberá realizar la siguiente modificación. Esto es útil cuando sólo nos interesa permitir conexiones desde el servidor de páginas que se encuentra ubicado en el mismo equipo y no desde el exterior.

# vi /var/db/mysql/my.cnf

(quitar el comentario)

skip-networking

Reiniciar el servicio de MySQL.

# /usr/local/etc/rc.d/mysql-server restart

Revise el archivo de registro por mensajes de error o de advertencia que le permitan depurar cualquier problema existente en el motor de base de datos.  El archivo de registro se encuentra ubicado en /var/db/mysql y su nombre corresponde al siguiente formato: hostname.domainname.err, para este artículo será entonces: webserver.mydomain.com.err.

Introducción a MooTools

MooTools es una librería de JavaScript que promete abstraer un nivel mas la generación de código en este lenguaje facilitando el desarrollo rápido e independiente de navegador. Incluye además soporte para efectos visuales, manipulación del árbol DOM, AJAX y JSON entre otras cositas interesantes.

Valerio Proietti, el desarrollador de MooTools lo define de las siguiente manera en su página web.

Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API.

MooTools code respects strict standards and doesn't throw any warnings. It's well commented and has meaningful variable names: a joy to browse and a snap to understand.

MooTools is compatible and fully tested with Safari, internet explorer 6 and 7, Firefox (and its mozilla friends), Opera and Camino.

Hasta ahora no le he dado un uso extenso a la librería pero me ha parecido interesante y útil, lo suficiente para incluírla en dos de los proyectos que desarrollo en la Fundación.

A mi manera de ver esta librería tiene dos problemas que contrastan contra sus múltiples ventajas.

  1. Es el producto de un desarrollador versus el producto de una comunidad entera como sucede con otros proyectos de código abierto.
  2. La cantidad y calidad de la documentación que se encuentra en Internet es baja si se compara con otras librerías como Prototype.

Con respecto al segundo punto, mas allá del API, los demos y el Mootorial de CNET no he encontrado documentación oficial o elaborada. Hacen falta publicaciones y tutoriales completos y elaborados que permitan conocer de manera concisa y rápida a esta librería.

La excepción del comentario es el sitio de Jourmoly en el cual hay algunos artículos de MooTools que me fueron muy útiles hace un par de meses cuando estaba apenas aprendiendo y que aún me remito a ellos cuando entre tantos lenguajes y librerías se me olvidan algunos detalles.

Actualmente el sitio tiene publicados artículos acerca de los siguientes temas.

Bubbles 0.3 con MobileProcessing

Tal y como lo había mencionado anteriormente con la versión 0.1, he empezado a desarrollar una versión del juego Bubbles con MobileProcessing como ejemplo de estudio de este lenguaje.

El juego es extremadamente simple y entretenido.  Se trata de explotar las burbujas del mismo color que esten contíguas.  Debe haber dos o mas burbujas juntas para que se puedan explotar.  El ideal del juego es explotarlas todas y dejar el tablero vacío.

La selección se mueve con las teclas del cursor o con los números 2, 6, 8, 4.  Las burbujas se explotan con el botón de disparo o con el número 5 según se prefiera.

Al terminarse el juego, cuando ya no existen burbujas para explotar, cambia el fondo de color y no es posible continuar.  Llegado el caso puede empezarse un nuevo juego utilizando la tecla de opciones (New Game).

El puntaje mostrado en la parte superior incluye la siguiente información: puntos obtenidos (Scr), burbujas explotadas (Exp) y disparos realizados (Sho).

Tengo todavía muchos mas planes y mejoritas para esta aplicación que voy a ir realizando a medida que vaya estudiando su implementación en MP.  Por ahora el jueguito ya es funcional.

Enlaces: