17 noviembre 2011

Decepcionado con Ubuntu 11

Ya la versión 11.04 me trajo algunos problemas para instalar la placa de video, pero el 11.10 no sólo vino con esos problemas sino que además tanto Unity como Gnome3 no se bancaron que no tuviera los drivers de la placa y todo andaba muy lento. En estos días opté por lo sano y volví al 10.04 que anda de maravilla (salvo por el problemita del sonido).
Por cierto, por si alguno tiene problemas, les paso los datos de la placa:

OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon HD 4500 Series
OpenGL version string: 3.2.9756 Compatibility Profile Context

Con respecto a la pc, sigo con la Dell Studio 15, aunque ahora sin batería ni cargador, que parece ser un problema bastante común...

25 agosto 2011

SOAP vs REST

Actualizo después de mucho tiempo con un recorte que me llamó la atención. Es de DZone Refcards:
There is a false equivalence asserted about
REST and SOAP that yields more heat than light when they are
compared. They are not the same thing. They are not intended
to do the same thing even though you can solve many
architectural problems with either approach.
The confusion largely stems from the mistaken idea that REST
“is about invoking Web services through URLs”. That has
about as much truth to it as the idea that “agile methodologies
are about avoiding documentation.” Without a deeper
understanding of the larger goals of an approach, it is easy to
lose the intent of the practices.
REST is best used to manage systems by decoupling the
information that is produced and consumed from the
technologies that do so. We can achieve the architectural
properties of:
• Performance
• Scalability
• Generality
• Simplicity
• Modifiability
• Extensibility
This is not to say SOAP-based systems cannot be built
demonstrating some of these properties. SOAP is best
leveraged when the lifecycle of a request cannot be
maintained in the scope of a single transaction because of
technological, organizational or procedural complications.

01 diciembre 2010

Sonido en la Dell Studio 14"

Bueno, demás está decir que no estoy muy feliz con mi nueva notebook, ya que no se por qué le sacaron las luces indicadoras (acceso al disco, caps lock activado, num lock activado, wifi activado, etc). No hay forma de saber si algo está on u off salvo que el sistema te provea algo de información...

Por otro lado, todavía Ubuntu no me activa el sonido... por más que actualizo siempre que se actualiza el kernel tengo que volver a instalar el sonido y por otro lado, en general si uso el firefox se me bloquea el sonido para otras aplicaciones...

En fin, cansado de ejecutar siempre los mismos comandos, creé un script que lo comparto con todos. Es necesario correrlo como superusuario, por lo cual les pido que le den una revisada antes de ejecutarlo. A mi por lo menos me funciona (nota: descarga las librerías en /usr/src/alsa).


#!/bin/sh
/etc/init.d/alsa-utils stop 
apt-get -y install build-essential ncurses-dev gettext xmlto libasound2-dev linux-headers-`uname -r` libncursesw5-dev 

rm -rf ~/.pulse*

if [ -d /usr/src/alsa/alsa-driver-1.0.23 ]; then
        echo "No es necesario bajar los archivos";
else
        echo "Descargando archivos";
 cd /tmp
 wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.23.tar.bz2
 wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.23.tar.bz2
 wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.23.tar.bz2

 rm -rf /usr/src/alsa
 mkdir -p /usr/src/alsa

 cd /usr/src/alsa
 cp /tmp/alsa* . 

 tar xjf alsa-driver*
 tar xjf alsa-lib*
 tar xjf alsa-utils* 

fi

cd /usr/src/alsa

cd alsa-driver*
./configure
make
make install 

cd ../alsa-lib*
./configure
make
make install 

cd ../alsa-utils*
./configure
make
make install 

27 junio 2010

Dell Studio 14" + Ubuntu 10.04

Recibí hace poco mi nueva Dell Studio 14". Como pc está impecable. Un detalle que no me gustó es que se sacaron los indicadores luminosos para la tecla mayúsculas, la de actividad de disco y la de wifi (si está activado o no). Después muy linda maquinita.
Una de las primeras cosas que hice es reconfigurar las particiones para instalar Ubuntu, lo cual no fue muy dificil, pero por problemas de compatibilidad con la placa de red Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe, me quedé sin Internet en la notebook. Solucionarlo no fue del todo fácil, aunque en escencia lo que debía hacer era instalar el b43-fwcutter. El problema es que al no tener internet (tampoco por cable de red), debía instalarlo del CD de instalación, pero para instalarse, el b43-fwcutter debe bajar unos archivos de internet... Así que la solución fue bajar esos archivos en otra pc con internet, copiarlos en un pendrive y luego instalar b43-fwcutter.
En si fue fácil resolverlo, lo que no fue fácil fue dar con la solución, que finalmente la encontré en https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#b43%20-%20No%20Internet%20access

Una vez resuelto esto, me puse a configurar las cuentas de mail y chat tratando de probar el gwibber, pero tuve problemas al agregar mi cuenta de facebook. Una vez que autorizaba a Facebook a ser accedido por Gwibber, no encontraba la forma de agregar la cuenta. Al final tuve que reiniciar la pc por una actualización de seguridad y cuando volví a intentar de agregar mi cuenta de Facebook, apareció esta vez un botón Add que me permitió culminar el proceso.

Por último, los botones a la izquierda no me gustaron, creo que es algo de interfaz de usuario que ya está grabado en todos nosotros y me encontré varias veces yendo a buscar los botones a la derecha... Como el theme nuevo me gustó mucho, lo único que deseaba era mover los botones, y aquí encontré la solución: http://www.howtogeek.com/howto/13535/move-window-buttons-back-to-the-right-in-ubuntu-10.04/

Otra cosa que me falló fue el sonido. Aparentemente también tuve que instalar drivers propietarios. Para esto ejecuté los siguientes comandos:
sudo add-apt-repository ppa:ubuntu-audio-dev/ppa
sudo apt-get update
sudo apt-get install linux-alsa-driver-modules-$(uname -r)

Ahora si, a disfrutar de la nueva pc!

12 marzo 2010

Java + Scala

Creo que una de las ventajas de Scala es la facilidad de mezclar código Scala con código Java, haciendo mucho más fácil el desarrollo.
Para empezar, hay que instalar Scala:
sudo aptitude install scala

Luego hay que instalar el plugin de Eclipse (o tu ide preferida). El update site es:
http://www.scala-lang.org/scala-eclipse-plugin

Si estamos trabajando con un proyecto Java, le hacemos click derecho sobre el proyecto y vamos a la opción
Scala -> Add Scala Nature

Ahora podemos crear una clase Scala (o un objeto que viene a ser un Singleton) y referenciarlo desde nuestras clases Java. El único problema que vi es que desde la clase java, si referencio a un método de Scala, me aparece un error de compilación, pero creo que esto se debe al orden de compilación. Primero se compila el código Java y luego el Scala (es como el huevo y la gallina, uno de los dos tiene que ir primero).

Desde Scala invocando código Java no tengo ese problema. Igualmente si ejecuto, andan ambas invocaciones, hacia un lado y hacia el otro.



El eclipse que usé es el eclipse-SDK-3.5 para linux

23 noviembre 2009

Grails and Vaadin

Vaadin es un exelente framework para hacer aplicaciones web, a mi particularmente me gustó porque tiene una forma de programar muy similar a Swing. Me encontré con algunos inconvenientes para dejarlo funcionando, así que aquí voy a documentar un poco mi experiencia:

Después de pelearme un poco para integrar grails con vaadin, decidí empezar por un ejemplo simple con Vaadin: http://vaadin.com/tutorial
Aquí empezaron los problemas, pero también pude encontrar las soluciones. En primer lugar, en el ejemplo (http://dev.vaadin.com/svn/incubator/SimpleAddressBook) se ve que en el web.xml el servlet-mapping define la url como /* y esto es muy importante para que funcione la aplicación. Yo traté de cambiarlo por /HelloWorld y no funcionaba... Pero encontré la solución (si bien todavía no se el porqué real).
El url pattern debe terminar con /*, es decir, para lo que quería hacer debería quedar como /HelloWorld/* y además hay que agregar un mapping al mismo servlet que mapee /VAADIN/*. Dicho esto, la parte del web.xml que define los servlets mappings quedaría:
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld/*</url-pattern>
</servlet-mapping>
<!-- this is needed to work with vaadin -->
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>

Ahora si, de vuelta a grails... creé una aplicación:
grails create-app test
Luego para poder editar el web.xml (que por defecto no aparece en la aplicación):
grails install-templates
Luego edité el web.xml como en el ejemplo.
Agregué el jar de vaadin a la carpeta lib
Agregué el código de mi aplicación vaadin en src/java

Todo parecía que iba a marchar bien, pero luego de ejecutar grails run-app y al acceder a la aplicación de ejemplo, ocurría un error al tratar de cargar la clase que yo había agregado al src/java. Sin entender por qué, compilé mi aplicación en un jar y lo agregué en la carpeta lib... Y ahora si estaba funcionando!
Luego hice lo siguiente: borré el jar que había creado y generé el war de la aplicación con grails war y esta vez si me compiló la clase que había agregado y pude deployar el war en un tomcat 6 y vi funcionando la aplicación.
Otra opción que encontré que funciona es ejecutar grails run-war en vez de grails run-app. Esto también compila la carpeta src y anda.

En resumidas cuentas, parece que al ejecutar run-app no se compilan los fuentes que están en src/java. Todavía no pude encontrar una explicación o motivo... seguramente alguna configuración que no modifiqué...

Todavía queda pendiente ver como acceder los scaffolding de grails desde vaadin y obtener en poco tiempo una aplicación con una linda interfaz y generada rápidamente con grails

02 septiembre 2009

Gestión de tareas o incidentes con trac y eclipse

Algo que no me gusta de usar trac, bugzilla, mantis u otro sistema de gestión de incidentes es que todos tienen interfaz web, y eso implica loguearse, navegar hasta un incidente y recién entonces editarlo. Muchas veces encontrar el incidente implica realizar muchas veces este proceso. Por estos motivos en general siempre veo que los incidentes terminan siendo monitoreados por los Project Leaders o alguna otra persona que termina invirtiendo su tiempo en averiguar el estado de las tareas e irlo actualizando. Es así que seguí buscando hasta dar con una combinación que me gustó: Mylyn + Trac.

Hace tiempo había escuchado de Mylyn para eclipse, pero nunca había podido probarlo ni tampoco había encontrado mucha documentación. Ahora conseguí hacerlo funcionar con el Trac. Es un proceso muy sencillo y hace que uno se sienta a gusto con su uso.

Lo primero es tener instalado el eclipse (yo tengo la versión 3.4 del eclipse classic) y un trac (http://trac.edgewall.org). Los pasos para instalar el plugin de eclipse son:
  1. Ir a actualizaciones (help -> software updates...)
  2. Ir a Available software
  3. Add site
  4. Agregar: http://download.eclipse.org/tools/mylyn/update/e3.4 y http://download.eclipse.org/tools/mylyn/update/extras (verificar que lo agregue a la lista de Available software, si no, es posible que haya que marcarlo en Manage sites)
  5. Buscar y marcar Mylyn connector: Trac
  6. Install
  7. Si no tenían instalado Mylyn, les va a instalar también las dependencias
Luego de esto habrá que reiniciar el eclipse. La lista de tareas de mylyn hay que habilitarla:
  • window -> show view -> other...
  • Tasks -> task list
La lista de tareas es muy fácil de usar, pero lo que quiero aclarar es como conectarse con trac, y para esto lo primero es agregar un "Task repository" (buscar entre las acciones de la lista de tareas). Seleccionar trac y seguir las instrucciones. Si buscan entre las opciones avanzadas se puede configurar un proxy (es útil si hay que conectarse a una vpn, pero ese es otro asunto). Prueben primero validar la conexión, y si hicieron las cosas bien, ya tendrían disponible sus tareas.

Ahora sólo falta un paso más, que es definir una Query para obtener las tareas. Ahí pueden definir con qué criterios obtener las tareas (por defecto no van a ver ninguna). Se pueden definir tantos queries como sean necesarios. Y eso es todo. Ahora si pueden gestionar sus tareas de trac desde eclipse. Y realmente ahorra mucho tiempo.

Quizás después explique un poco mi experiencia usando la herramienta, pero por ahora sólo publico la guía del usuario que está fácil de seguir y con imágenes: http://wiki.eclipse.org/index.php/Mylyn/User_Guide