[Quick-Tip] Configurar la rotación de logs de Glassfish 3.x
Por tuxtor - FOSS, Tips estupidos de java - abril 25, 2012
Un problema muy común de la generación de logs con las utilidades propias de la maquina virtual de Java (la que utiliza Glassfish) es la política de rotación de logs, Glassfish 2.1 por ejemplo no tiene ningún valor configurado y por tanto nunca efectuá rotación de logs llegando a saturar los discos duros con logs interminables.
¿Solución?
En versiones anteriores de Glassfish Open Source la solución era configurar directamente el parametro en la maquina virtual como muestra el siguiente tutorial (en ingles): http://ihategeek.wordpress.com/2011/05/28/glassfish-set-maximum-server-log-files-rotation/
En nuevas versiones de Glassfish es posible configurar nuestra instancia con el comando de administración de Glassfish asadmin parametrizandolo para alterar las configuraciones en las politicas de logs, el unico requisito es que la instancia se encuentre en ejecución.
Por ejemplo en una instalación nueva de Glassfish podemos ver estos atributos con el comando
1 | asadmin list-log-attributes |
Con el cual obtendríamos el siguiente resultado
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | com.sun.enterprise.server.logging.GFFileHandler.file <${com.sun.aas.instanceRoot}/logs/server.log> com.sun.enterprise.server.logging.GFFileHandler.flushFrequency <1> com.sun.enterprise.server.logging.GFFileHandler.formatter <com.sun.enterprise.server.logging.UniformLogFormatter> com.sun.enterprise.server.logging.GFFileHandler.logFormatDateFormat <yyyy-MM-dd'T'HH:mm:ss.SSSZ> com.sun.enterprise.server.logging.GFFileHandler.logtoConsole <false> com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles <0> com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours <0> com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes <2000000> com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange <false> com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes <0> com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging <false> handlers <java.util.logging.ConsoleHandler> java.util.logging.ConsoleHandler.formatter <com.sun.enterprise.server.logging.UniformLogFormatter> java.util.logging.FileHandler.count <1> java.util.logging.FileHandler.formatter <java.util.logging.XMLFormatter> java.util.logging.FileHandler.limit <50000> java.util.logging.FileHandler.pattern <%h/java%u.log> log4j.logger.org.hibernate.validator.util.Version <warn> Comando list-log-attributes executado com êxito. |
El valor que nos interesa es
1 | com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles |
El valor por defecto de este parametro es 0 lo cual es equivalente a que los logs se van a retener de manera indeterminada y por tanto llenar el disco.
Para alterarlo podemos ejecutar el siguiente comando (por ejemplo para retener hasta 100 archivos de logs)
1 | asadmin set-log-attributes com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=100 |
Y obtendremos la salida
1 2 3 | com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles logging attribute set with value 10. These logging attributes are set for server. Comando set-log-attributes executado com êxito |
Flisol 2012 Xela
¿Pedrencio sabes que es el Software Libre?

¿Y sabes quien es este pingüino?
.
.
.
¿Tu profesor de la Universidad te dijo que eso de Linux es cosa de peludos locos, nerds, patinetos y debes aprender a programa en Super Ultra Turbo Pascal porque es la onda y lo usan en los bancos?
Si pusiste las mismas caras de pedrencio tienes deforme la cabeza es tu oportunidad de conocer otro tipo de tecnologia en el Festival Latinoamericano de Instalación de Software Libre en varias ciudades de Guatemala, incluida la ciudad de Quetzaltenango.
En compañía de peludos, nerds, patinetos, y cualquier otra persona que este mal parqueada por los alrededores puedes conocer más acerca del movimiento de Software Libre, e incluso instalarlo en tu computadora para evaluar una opción mas para tus necesidades tecnológicas.
Y por si aun no lo has notado
.
.
.
Festival Latinoamericano de Instalación de Software Libre 2012
Una vez más la gente de Software Libre de Guatemala, talibanes, opensourcistas, estudiantes y profesionales unen fuerzas para realizar el Festival Latinoamericano de Instalación de Software Libre en la Ciudad de Guatemala.
Si están interesados en conocer que es el Software Libre, el movimiento, sus bondades, sus mujeres y las opciones para ustedes, esta es una de las mejores ocasiones para hacerlo.

Ejecutar un comando externo en Java
Por tuxtor - FOSS, Tips estupidos de java - abril 5, 2012
Para invocar un ejecutable externo basta hacer uso de las utilidades de la maquina virtual, en este caso java.lang.Runtime, por ejemplo si queremos tener una clase que ejecute un comando y capturar la salida del mismo podemos utilizar la siguiente clase:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class CLIManager { public static ArrayList execCommand(String command) throws IOException { ArrayList cmdOutput = new ArrayList<>(); Process p = Runtime.getRuntime().exec(command); BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream())); String tmpLine = ""; while ((tmpLine = bri.readLine()) != null) { cmdOutput.add(tmpLine); } return cmdOutput; } } |
En sintesis la clase ejecuta la llamada al programa externo mediante Runtime.getRuntime().exec y luego captura su salida mediante un InputStreamReader y la devuelve convenientemente en una estructura dinamica con el resultado de la operacion (n lineas). Como parte de un proyecto mayor podemos hacer alguna cosa mas interesante como una simple interfaz GUI que ejecute comandos hacia la CLI del sistema (independiente de sistema operativo) y muestre el resultado en pantalla
Proyecto completo en Java:
Backlit de Asus G74SX con drivers ASUS_WMI en Linux (Gentoo)
Por tuxtor - Aqui en el abismo se usa gentoo., FOSS - marzo 11, 2012
Un post atrás mencione que el backlit keyboard de las Asus ROG G74 no funcionaban en Linux sino hasta después de suspender la computadora, en realidad el que no lo había hecho funcionar era yo
.
Lo que hay que hacer y yo no comprendía bien es habilitar el driver experimental ASUS_WMI en el kernel el cual pensé que no seria incluido hasta unas versiones posteriores y en realidad ya viene incluido desde las ultimas versiones del kernel 2.6.
Cuando una persona quiere encontrar un modulo en particular en el kernel se debe presionar el símbolo / y escribir la cadena de caracteres mas cercano al modulo que queremos habilitar para encontrar su información, por ejemplo para el modulo ASUS_WMI, la información al buscar es la siguiente:
De estas lineas las mas importantes son
- Depends on
- Location
Mi error había sido no leer la linea Depends on, la idea de esta linea es que nos indica que módulos del kernel deben de estar habilitados para que el modulo en cuestión también sea habilitado, si no se cumple este requisito el modulo ni siquiera estará entre las opciones del menuconfig. Ademas de esto muchos de esos módulos se encuentran en diferentes clasificaciones del kernel. Luego de habilitarlos todos el modulo ASUS_WMI estuvo disponible para mi, y la mayoria de funciones especiales del teclado fueron habilitadas, incluyendo:
- Desactivar/activar wi-fi
- Control de iluminación del teclado
- Control de sonido
Si a presionar fn + control de iluminacion de teclado obtienen este dialogo, felicidades han habilitado el control ASUS_WMI.
Asus G74SX con Funtoo Linux – Star Destroyer
Nueva vida, nueva pc. Como dice el dicho hay cosas que solo puedes/debes comprar una vez en la vida y una de las que me faltaba en la lista es una computadora portátil con muchos caballos de fuerza y que también sea suficiente para ocio. A unas semanas de mudarme de país para intentar obtener mi Msc.
tuve que adquirir equipo nuevo y pues mis necesidades son un poco mas que un netbook
Luego de evaluar mis opciones (Alienware, MacBook Pro, MSI, Dell XPS) El modelo ganador fue la ASUS G74SX-DH71 ya que me ofrecía una buena relación costo beneficio comparado por ejemplo a una Alienware o MacBook con las mismas especificaciones técnicas.
-
CPU i7 2670qm
-
1.5 TB de disco duro
-
12 GB de memoria DD3 (16 gracias a la promo de XoticPC)
-
GPU Nvidia GTX 560M con 3GB de memoria RAM
-
Chasis estilizado como avion furtivo
-
Teclado retroiluminado y con teclas naturales+teclado numérico
-
Todos los componentes propios de la linea Republic of Gamers
Para completar el combo este modelo incluye un maletin Targus con la medida exacta de la laptop y el logo ROG, un mouse laser de jugador también ROG. La computadora es bastante pesada pero un gran poder conlleva una gran responsabilidad diria Pedro Parker. Así que en teoría estoy listo para el regreso a clases complementado con un nuevo smartphone Nexus S con ICS ya que mi Nexus One murio sin explicación aparente haciéndome perder mucho dinero (maldito sea).
Instalando Linux
La computadora viene de serie con Windows 7 Home Edition el cual sigue ahí para cuando necesite matar monstruos futuristas en Rage y salvar a la humanidad. Pero no podía desperdiciar tan bonito procesador con binarios poco eficientes y poco optimizados así que dedique uno de los dos discos duros a mi distribución favorita: Funtoo Linux
.
Luego de un par de complicaciones instalando sobre un esquema LVM+Luks pues estaba listo para dar mi veredicto al funcionamiento con Linux (si, el kernel Linux para los puristas).
Dispositivos que funcionaron al 100%
-
GPU – Driver privativo Nvidia
-
Sonido – Drivers libres Nvidia+ALSA
-
Ethernet – Driver libre Intel
-
Wi-fi – Driver libre ath5k
-
USB 2.0,3.0 – Driver Libre Intel
-
Sensores del chipset – Al 100% con Lm-sensors
Corriendo con OpenJDK 7 puedo decir que logre un sistema bastante libre lo cual me causa bastante alegría.
Dispositivos que necesitan tweaking/no funcionan
- Entrar en estado suspension
-
Teclado retroiluminado solo funciona despues de suspender la PC
-
Las teclas especiales no funcionan al 100% con el kernel 3.2.6, pero se espera que funcionen en un par de actualizaciones
-
El touchpad no tiene todos los gestos disponibles en Windows (pero el mouse funciona al 100% incluso el control de DPI y los botones 4 y 5 en Firefox)
Después de mi buena experiencia con ASUS en el escritorio, con esta computadora sientes que estas cabalgando sobre una bestia computacional, en honor a Star Wars fue bautizada como Star Destroyer o Destructor Estelar, quien sabe tal vez en un futuro cuando sea grande trabaje en un workstation con dos procesadores Intel Xeon y 24 GB de RAM
Un par de imagenes:
Encriptando un disco duro externo con LUKS en Linux
Por tuxtor - Aqui en el abismo se usa gentoo., FOSS - enero 9, 2012
Mis necesidades de espacio en disco me han hecho prescindir por varios meses de un backup completo con lo cual he vivido al limite tecnológicamente hablando. Antes de que el cataclismo maya acabe con mis datos acabo de adquirir un disco Buffalo Technology MiniStation Stealth que se veía bastante prometedor y con buenos comentarios.
Todo informático que se respete encripta sus discos duros removibles y pendrives cuando transporta información sensible y en un país como Guatemala esto tiene más sentido ya que en cualquier momento te asaltan con tortilla tiesa o patadas voladoras acompañadas de desarmadores y revolvers.
0.- Preeliminares
El tema de encripción es por demás un tema bastante amplio y complicado
donde tenemos mil opciones para asegurar nuestros datos, por tal motivo presento un método que va con mis necesidades las cuales se limitan a una partición encriptada y que Gnome reconozca automáticamente al montarla. Algunos conceptos antes de empezar
- Dm-crypt un device mapper que hace la encripción de datos transparente, en otras palabras lo que hará que nuestra partición encriptada termine como un dispositivo transparente /dev/mapper/foo
- LUKS uno de los muchos estandares de encripción disponibles para Linux, es ideal para discos duros externos porque guarda la configuración de encripción en la partición (algoritmo, modo de trabajo, etc.) y no en archivos externos lo cual nos asegura portabilidad entre distribuciones o incluso Windows. LUKS basicamente generará y encriptará mediante una clave maestra que a su vez se encriptará con una clave que el usuario proporciona, si deseamos cambiar nuestra clave o utilizar más de una clave, solo se reencriptara la clave maestra y nos evitara reencriptar todos nuestros datos ¿interesante no?.
- AES y SHA256 algoritmos seguros de encripción y hashing respectivamente que no explicare en este documento, pero son bastante seguros
(Tanto que se AES esta aprobado por la NSA).
- Todos los comandos en este mini-tutorial se ejecutan con privilegios de root.
1.- Particionando
Como un paso previo podemos llenar el disco duro entero con datos random y de esta forma agregamos un poco más de dificultad al intentar crackear el disco. Ya que estamos trabajando sobre un disco duro externo, haremos de cuenta que el dispositivo esta ubicado en /dev/sdb
dd if=/dev/urandom of=/dev/sdb bs=4K
Antes de comenzar debemos de instalar el paquete cryptsetup disponible en nuestra distribución favorita, por ejemplo en Gentoo
emerge cryptsetup
Luego de esto debemos preparar el disco con LUKS, el metodo más facil es utilizar una partición sin formatear.
En mi caso el disco duro externo tendrá dos particiones, una partición /dev/sdb1 convenientemente formateada bajo NTFS para compartir las ultimas peliculas pr0n independientes con mis amigos usuarios de Windows con un maximo de 50 GB y otra particion /dev/sdb2 que tendrá todos mis datos encriptados bajo el esquema dm-crypt/LUKS de aproximadamente 950 GB las particiones las podemos crear con fdisk, cfdisk o incluso gparted.
Como primer paso preparamos la partición para soportar LUKS, cryptsetup hara este trabajo y nos preguntara una clave que no debemos olvidar:
cryptsetup --verify-passphrase luksFormat /dev/sdb2 -c aes -s 256 -h sha256
Las opciones fueron las siguientes
- –verify-passphrase – verifica el password que introducimos
- -c aes -s 256 – configuramos una encripción AES de 256 bits
- -h sha256 – y tambien configuramos el algoritmo de hashing SHA de 256 bits
Una vez configuramos la partición es momento de desbloquearla para trabajar con ella y poder formatearla
cryptsetup luksOpen /dev/sdb2 discoseguro
El nombre en el parametro final sera el que utilizara dm-crypt para poder trabajar con la partición la cual encontraremos en /dev/mapper/discoseguro y procedemos a formatear, en mi caso con ext4.
mkfs -t ext4 /dev/mapper/discoseguro
Y con esto tenemos lista nuestra partición encriptada, ya podemos montarla de manera transparente con nuestro siempre confiable comando mount
mount /dev/mapper/discoseguro /media/disk
Hasta el momento el dueño de los datos aun es root, lo cual podemos cambiar con
chown tuxtor:users /media/disk
En mi caso quiero que el dueño sea el usuario tuxtor y que el grupo sea users. La próxima vez que conectemos nuestro disco Gnome nos preguntara por nuestra clave para utilizar la partición encriptada.
¿Cómo se reparte la oferta de empleos relacionados con Linux?
Esta entrada fue publicada en muylinux: http://www.muylinux.com/2011/12/15/%C2%BFcomo-se-reparte-la-oferta-de-empleos-relacionados-con-linux/
—-
Hace unos días el portal de la Linux Foundation publicó un interesante análisis acerca de las oportunidades de trabajo que han pasado por su plataforma de reclutamiento. Estos datos fueron analizados desde inicios de Septiembre hasta Noviembre de este año.
El panorama es bastante prometedor para desarrolladores que trabajamos bajo plataformas libres y las oportunidades como desarrollador están bastante parejas con las oportunidades de trabajo como administrador de sistemas Linux. Además de esto el análisis presenta los países con más trabajos en Linux donde Estados Unidos domina con amplia ventaja.
Otro dato interesante es el hecho de que en el ambiente laboral Linux sigue dominando el uso de Java Enterprise Edition y Android ha tomado auge como plataforma de desarrollo. La infografía publicada es la siguiente:
Parafraseando el articulo ¿Están preparados para el ambiente laboral en Linux?
Convivio GuateJUG 2011
Por tuxtor - FOSS, Tips estupidos de java - diciembre 8, 2011
Bueno un año de JUG se ha acabado y entre los altibajos luego del Java Day queremos finalizarlo en grande, habra pizza, bebidas, licencias (Intelli J IDEA, Structure 101), playeras y compartamos un rato con la comunidad Java Guatemala.
Más información en http://www.guate-jug.net/2011/12/convivio-reunion-guatejug-13-administracion-de-tareas-con-jtrac/
Lectores electrónicos Linuxeros
Este articulo fue publicado en MuyLinux: http://www.muylinux.com/2011/11/21/lectores-electronicos-linuxeros/
–
Aunque seguimos esperando el año de Linux en el escritorio, nuestro kernel preferido ha llegado a rincones que jamas hubiéramos imaginado: tostadores, satélites, teléfonos, televisores, el pingüino y su inseparable compañero ñu pueden estar donde menos lo esperamos.
En algunos lugares Linux existe sin que sus usuarios siquiera lo sepan y el día de hoy revisaremos algunos de los más famosos lectores electrónicos basados en Linux y daremos algunos enlaces útiles para liberar sus prestaciones ocultas y aumentar su potencial, aunque muchos de estos tienen primos a color más avanzados, no debemos de tomar a la ligera los beneficios de la tinta electrónica y que la mayoría de estos lectores están por debajo de los 150 dólares. Como advertencia final la mayoría de estos hacks podría eliminar la garantía del lector, pero todo es parte de la diversión ¿o no?.
Amazon Kindle
Hablar del Kindle es como hablar de las estrellas de cine: nunca dirás algo que otros no sepan ya. Aunque ha recibido duras criticas por su poco flexible administración de DRM, hoy por hoy es el líder de los lectores electrónicos apoyado por una de las tiendas más grandes de libros a nivel mundial.
Datos técnicos:
- Basado en: BusyBox
- Método de liberación: obtener acceso root
- Características destacables a liberar:Screensaver timeout, nuevas fuentes, remover publicidad, instalar mplayer, cliente de correo mutt, acceso a shell, instalación de interprete Java
- Ultimo modelo: Kindle Touch/Kindle Touch 3G
- Más información: http://wiki.mobileread.com/
wiki/Kindle_Hacks_Information (en ingles)
B&N Nook
Mi favorito, se caracteriza por ser más abierto que Kindle y soportar formatos estándar (includo .epub), aun así tiene prestaciones ocultas que podemos aprovechar.
Datos técnicos:
- Basado en: Android
- Método de liberación: obtener acceso root
- Características destacables a liberar: Sideload de aplicaciones (Kindle Reader, AWD Launcher, Amazon AppStore), acceso a shell, navegador web funcional
- Ultimo modelo: Nook Simple Touch
- Más información: http://nookdevs.com/Rooting(en ingles)
Kobo
El Kobo reader es un caso particular, su primer oferta contra el Kindle fue ofrecerse como un lector barato y con buenas prestaciones, las nuevas versiones guardan cierta similitud con dispositivos Nook y aunque su catalogo de ebooks no es tan amplio como el de un Nook o un Kindle, es una opción a tomar en cuenta. Los hacks disponibles tampoco son tan avanzados, pero por pequeño que sea un hack siempre es bienvenido.
Datos técnicos:
- Basado en: Busybox
- Método de liberación: obtener acceso root/ROM personalizada
- Características destacables a liberar: Ejecutar comandos arbitrarios, habilitar telnet y ftp, capturar screenshots
- Ultimo modelo: Kobo Touch
- Más información: http://www.
chauveau-central.net/pub/ (en ingles)KoboTouch/
Sony Digital Reader
Aunque llevan años en el mercado Sony ha sido relegado sobre todo en el mercado americano. Al igual que los Nook los lectores de Sony también están basados en Android y eso abre la posibilidad a hacks interesantes.
Datos técnicos:
- Basado en: Android
- Método de liberación: obtener acceso root
- Características destacables a liberar: Sideload de aplicaciones (Kindle Reader, AWD Launcher, Amazon AppStore), acceso a shell, web browser funcional, reemplazo total de la ROM
- Ultimo modelo: PRS-T1
- Más información: http://blog.the-ebook-reader.
com/2011/10/23/rooting- (en ingles), ROM personalizada con bastantes prestaciones:http://www.mobileread.com/directions-for-sony-reader- prs-t1-video/ forums/showthread.php?t=64510 (en ingles)
¿Cual eligen ustedes?


















