NachXs Blog

Linux, Suse Linux, JavaOctober 16, 2007 3:53 pm

Recientemente instale NetBeans 5.5.1 en OpenSuse 10.3 para poder continuar con el desarrollo de algunas aplicaciones en Java y me tope con un pequeño problemita, resulta que a la hora de cargar NetBeans me mostraba el siguiente error:

java: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock’ failed.
./../platform7/lib/nbexec: line 440: 4199 Aborted
“/usr/java/jdk1.5/bin/java” -Djdk.home=”/usr/java/jdk1.5″ -classpath …..

El error es mucho mas grande, solo puse algo de este para ahorrar algo de espacio. Bueno según entiendo aparentemente este error se debe a la librería libxc la cual provee de una interfaz para aplicaciones basadas en X11, esta lanza una aserción cuando esta en uso (bug de bloqueo) por alguna otra aplicación. Buscando información referente a este tema di con una posible solución (por lo menos a mi me funciono); lo que se tendría que hacer es crear una variables de entorno llamada “LIBXCB_ALLOW_SLOPPY_LOCK” y asignar el valor 1 lo cual esto hará que se salte la asercion y asi poder cargar NetBeans(en mi caso).

export LIBXCB_ALLOW_SLOPPY_LOCK=1

Esto tambien lo probe con la version 6.0 Beta 1 y me genero lo mismo. Espero les sirva

Linux, Servidores, Suse LinuxOctober 4, 2007 3:53 pm

Se acaba de liberar una nueva versión de este magnifico Sistema Linux, me refiero a OpenSuse10.3, que a mi parecer uno de los sistemas muy bien diseñados y estables que conozco (ademas de Debian), el cual tiene alguna novedades interesantes entre ella la versión de Gnome 2.20, la version estable de KDE(3.5.7), con opción a instalar la versión 4.0, ademas lo que nunca debe faltar, Compiz Fusion, algunas mejoras en la Virtualizacion, y otras mejoras.
Esta demas decirles que soy unos de las personas que usa OpenSuse tanto para desktop asi como para Servidores y siempre con buenos resultados.


cdboot_suse

Linux, Suse Linux, PostgreSQLJuly 24, 2007 5:44 pm

A solicitud de una compañero de trabajo, me pidio como obtener informacion de las tablas y columnas en una base de datos en PostgreSQL. Bueno aqui lo comento para quien le sea necesario.

Esta sentencia me lista de todos los esquemas existentes de una base de datos:
SELECT schema_name FROM information_schema.schemata

Esta sentencia me lista de todos las tablas de un esquema determinado:
SELECT table_name FROM information_schema.tables WHERE table_schema =’nombre_de_schema’

Esta sentencia me lista de todos las columnas de una tabla especifica:
SELECT column_name FROM information_schema.columns WHERE table_name=’nombre_de_tabla’

Estas pruebas las realize en la version 8.2.4 de PostgreSQL

Linux, Servidores, Ubuntu, Suse LinuxJune 25, 2007 12:43 pm

Administrando un Servidor de Correo en Suse Linux, se me presento un pequeño problemita, lo que me temia, el espacio en disco :S, cada vez se agregaban mas usuarios por cuestiones de trabajo y poco a poco se iba quedando sin espacio. Pero bueno, por suerte en Linux todo se hace simple (con un poco de informacion claro esta) :P . Se adquirio un nuevo disco duro (120 Gb.) y la idea era montar un direcotrio (/var) a este nevo disco. Esta es una pequeña guia que realize para algunos que todavia no han realizado este tipo de trabajo y para los que ya lo hicieron, seria bueno alguna sugerencia.

  • Lo primero colocar el nuevo disco duro, en mi caso como /dev/hdb1
  • Luego verificamos com fdisk -l, para ver las particiones existentes y el nuevo disco colcado en la cual se vera que el disco todavia no presenta una tabla de particiones o algun tipo de formato.
  • Creamos la particion con fsdik
  • Formateamos la particion creada utilizando el comando mkfs.ext3 (esto es en mi caso, dependera del tipo de Sistema de Archivo que deseen)
  • Una vez formateada la particion, el siguiente paso es crear un directorio en /mnt, el cual lo llamaremos “disk_var”, para eso utilizamos el comando mkdir -p /mnt/disk_var. El motivo de la creacion de este directorio, es para montar el nuevo disco y poder copiar todo el contenido del directorio seleccionado anteriormente (/var)
  • Montamos el nuevo disco en /mnt/disk_var con el comando: mount -t ext3 /dev/hdb1 /mnt/disk_var
  • Una vez montado el disco, copiamos el contenido de /var a /mnt/disk_var con el comando: cp -dpRv /var/* /mnt/disk_var
  • Luego de terminado de copiar el contenido, renombramos el directorio /var por /var_bk (En caso de algun inconveniente :P ) y creamos uno nuevo con mkdir -p /var
  • Desmontamos el disco con el comando: umount /dev/hdb1
  • Luego nos tocaria configurar el archivo /etc/fstab para poder montar el nuevo disco a la hora de iniciar el sistema. Utilizamos un editor con el que mejor te acomodes (yo prefiero vi ) y agregamos la siguiente linea:
    /dev/hdb1 /var ext3 defaults 0 1
  • Guardamos y Reiniciamos

En lo posible trate de abreviar lo que hice, alguna sugerencia o comentarrio para mejorar esto, sera bienvenido.

Linux, Suse LinuxMarch 21, 2007 1:26 am

Al igual que Ubuntu, al parecer OpenSuse, no se esta quedando atras con la forma de facilitar la instalacion de esta distro a los usuarios que todavia utilizan Windows por uno u otro motivo; para eso se creo instlux, que es una aplicacion que te permite instalar OpenSuse desde Windows, sin ninguna problema, simplemente con los clasico “siguiente”, un intuitivo asistente te guiara en dicha instalacion. Ahora ya tenemos otra alternativa para seguir probando sin excusas.

Linux, Servidores, Suse LinuxJanuary 12, 2007 9:48 pm

Esto es parte del archivo de configuracion de mi Postfix (main.cf) en cual en gran medida me ayudado a evitar gran cantidad de Spam, espero les sea de utilidad:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_hostname
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_unknown_recipient_domain,
reject_unknown_sender_domain,
check_recipient_access pcre:/etc/postfix/recipient_checks.pcre,
check_helo_access pcre:/etc/postfix/helo_checks.pcre,
check_client_access pcre:/etc/postfix/client_checks.pcre,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client dul.dnsbl.sorbs.net
smtpd_sender_restrictions = reject_unknown_sender_domain
disable_vrfy_command = yes


Log

Linux, Servidores, Suse LinuxJanuary 7, 2007 3:06 am

Una de los principales fastidios o problemas por lo que se puede pasar al Administrar un Servidor de Correo, es combatir el siempre infaltable SPAM, a puntos que llega a ser un gran dolor de cabeza. En estas 2 ultimas semanas, el servidor que administro ha estado recibiendo gran cantidad de SPAM y la verdad si que es un fastidio total realmente, Estube revisando varias formas de evitar esto, aplique varias, pero siempre se llega a filtrar uno que otro por alli; pero logre reducirlo en gran cantidad. Actualmente el servidor que administro es un Suse Linux 10.1 que a su vez tiene instalado Postfix + Spamassassin + Amavis + Clamav. Una de las formas mas factibles que encontre de combatirlo, es utilizando el Filtro Bayesiano Anti-Spam, el cual consiste en analizar los correos basandose en probabilidades entrenando asi a tu Anti-Spam para identificar y determinar cuales son lo posibles correos Spam y cuales no lo son. La idea de esto es tener configurado tu Spamassassin (si no, lo encuentras aqui), y luego crear dos directorios spam_si y spam_no, en mi caso yo lo cree dentro de “/home/nachxs/mail” y luego mover el correo spam al directorio llamado spam_si y el correo que no es spam al directorio spam_no y luego hacer lo siguiente:

Entrenar para identificar Correo SPAM:
# sa-learn –spam –mbox /home/nachxs/mail/spam_si/
Learned tokens from 337 message(s) (337 message(s) examined)

Entrenar para identificar Correo que NO es SPAM:
# sa-learn –ham –mbox /home/nachxs/mail/spam_no/
Learned tokens from 200 message(s) (200 message(s) examined)

De esta manera entrenamos a nuestro Anti-Spam. La efectividad dependera de cuanto lo entrenes. Ahora solo nos queda mejorar esto y seguir buscando forma de evitar que siga llegando Spam.

Linux, Mono, Suse LinuxDecember 30, 2006 2:00 am

Hace poco empeze a desarrollar una pequeña aplicación en Mono, que consiste en la generación de código SQL desde un archivo XML creado como modelo de datos por DBDesigner. La idea de esta pequeña aplicacion nacio en el trancurso del desarrollo de un sistemita que estoy trabajando con JSP y PostgreSQL. Tenia el incoveniente a la hora de ejecutar el script que me creaba las tablas en la base de datos, generado por DBDesigner, no me reconocia parte de la sintaxis. Actualmente lo tengo en un 40% espero terminarlo pronto y comenzar ha usarlo.


1 3

Linux, Servidores, Suse Linux, JSPDecember 8, 2006 11:08 am

Continuando con el desarrollo de mi aplicación, comenze a implementar las sesiones para poder logear a mis usuarios de una manera mas formal :P . Aqui una forma práctica de como hacerlo. En el post anterior publique un método de validación que forma parte de la Clase UserValidate(), apuntando a una base de datos creada en ASE; para este caso utilizaremos ese método (Validate()).


Sesion
Creando la Sesión

Llamar_sesion
Llamando a la Sesión

Linux, Servidores, Suse LinuxNovember 28, 2006 10:14 am

Desde hace un par de dias me encamine en el desarrollo de un pequeño proyecto el cual consta de un sistema via web desarrollado sobre JSP (Java Server Page), utilizando como gestor de Base de Datos ASE (Adaptive Server Enterprise - Express Edition), el cual decidi utilizar por motivos de trabajo. Tenia una duda, al querer usar algun IDE de desarrollo, entre los cuales tenia a Eclipse o NetBeans, la verdad los dos IDE me parecieron muy buenos, pero al final decidi utilizar NetBeans, a mi parecer es mas completo (quizas tenga discrepancias con algunos) y porque ya viene integrado con el módulo de tomcat el cual voy ha utilizar, pero creo que eso queda al margen, total es desición de cada uno :P . En el transcurso del desarrollo, quise utilizar el driver de conexión propio de sybase (jdbc:sybase) pero se me presento un problemita, dado que no me reconocia la cadena de conexión, y solo podia utilizar el driver de conexión ODBC (jdbc:odbc), cosa que no la tenia en mente; busque la forma de realizar la conexión y al final di con la solucion, es tan simple como copiar y pegar. Solo tenemos que hacer lo siguiente; en el directorio de instalación de sybase (en mi caso: /opt/sybase) nos ubicamos dentro del directorio “/opt/sybase/jConnect-5_5/classes/” y ubicamos el archivo “jconn2.jar”, seleccionamos y copiamos el archivo y nos ubicamos dentro del directorio de NetBeans (en mi caso: /opt/netbeans) “/opt/netbeans-5.5/enterprise3/apache-tomcat-5.5.17/common/lib/” y pegamos alli el archivo, y luego solo nos queda reiniciar NetBeans para aplicar los cambios. Tan simple como esto no puede haber :P , aqui el método de la clase que escribi para realizar la conexión:

NetBeans