domingo, 8 de julio de 2012

Conectar Ice Cream Sandwich con Ubuntu 12.04 LTS


Bueno, después de idas y vueltas, pude leer el filesystem de un Samsung Nexus S.


Primero que nada, hay que asegurarse que la conexión del dispositivo está configurado como "MTP".
Luego, arranca la magia;


Ahora hay dos opciones
  • Primera
sudo apt-get install libusb-dev
Luego, descargar la última versión de la biblioteca MTP para linux libmtp, descargarla en la carpeta personal o donde quieran, e instalarla

cd libmtp-1.1.2
./configure --prefix=/usr
make
sudo make install
Conectar el dispositivo android, y debería montarselos de forma automática.
Esa fue fácil. El problema es que por defecto ubuntu no trae instaladas las bibliotecas de manejo de MTP.
  • Segunda
Hay que instalar las herramientas necesarias:
sudo apt-get install mtp-tools mtpfs

Después, con el teléfono el el USB, es necesario correr las siguientes sentencias;
mtp-detect | grep idVendor
mtp-detect | grep idProduct

Abrir, otra terminal y ejecutar el siguiente comando:
gksu gedit /etc/udev/rules.d/51-android.rules
Eso abrirá un editor de texto, donde tendrán que agregar las siguientes líneas;
SUBSYSTEM=="usb"
ATTR{idVendor}=="VENDORID"
ATTR{idProduct}=="PRODUCTID", MODE="0666"
VENDORID y PRODUCTID son los que sacamos de la consola.
Salvar el archivo, y desconectar el teléfono.


Abrir nuevamente la consola, y ejecutar:
sudo service udev restart
sudo mkdir /media/GalaxyNexus
sudo chmod a+rwx /media/GalaxyNexus
sudo adduser USUARIO fuse
Donde USUARIO es el nombre que aparece arriba de la consola, a la izquierda del "@" (tu usuario).
Paso siguiente, escribir gksu gedit /etc/fuse.conf, y se abrirá otro editor de texto, donde hay que descomentar la última línea para dar los permisos necesarios.
#user_allow_other, sacar el #.

Salvar los cambios, y reinicar.
Para finalizar, es necesario agregar a la lista de comandos:
android-connect
android-disconnect

Esto, escribiendo en el terminal:
echo "alias android-connect=\"mtpfs -o allow_other /media/GalaxyNexus\"" >> ~/.bashrc
echo "alias android-disconnect=\”fusermount -u /media/GalaxyNexus\"" >> ~/.bashrc
source ~/.bashrc
Increíblemente, enchufé un iPhone y lo reconoció sin mayores inconvenientes...
Lo increíble es que en un android que está basado en linux, se tenga que hacer toda esa triquiñuela y no lo traiga implementado de forma nativa.

domingo, 24 de junio de 2012

J2ee + Primefaces + GlassFish

Intentando liquidar con el proyecto final del curso de J2ee, resolví usar Primefaces para solucionar la parte gráfica.

Existen varios tutoriales, incluso en el PrimeFace ShowCase se muestra como es fácil integrar una aplicación j2ee con los jars empaquetados que distribuye esta gente. Mentira

Varias cosas a tener en cuenta cuando estás en el nivel "muy amateur":

Skins o Themes: dependiendo de la versión que tengas disponible y la alineación de los planetas en el cosmos, se refieren a lo mismo de forma indistinta.
Existe la posibilidad de importar los .jars con los themes, pero lo que finalmente me resultó fue descomprimir el .jar y tirar la carpeta images y el .css para adentro del proyecto, y en cada .xhtml agergar el tag;

        <h:head>
           <link type="text/css" rel="stylesheet" href="theme.css"/>
        </h:head>

Con eso deberíamos poder instalar cualquier tema del repositorio.

faces-config.xmlSi bien la nueva especificación del estándar están las notaciones como "@ManagedBean(value="myBean")@SessionScoped", no pude safar de crearlo y especificarlos en el mismo, por ejemplo;

   <managed-bean>
       <managed-bean-name>fileUploadController</managed-bean-name>
       <managed-bean-class>FileUploadController</managed-bean-class>
       <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>

FileUpload Auto: Después de que el proyecto estaba configurado, necesitaba un control para manejo de archivos. Intenté probar con el FileUploadAuto, y no me funcionaba, pero tampoco me daba ningún error. Así que cambié a FileUploadSimple, que me tiró una muy linda Exception y me di cuenta que era lo que estaba pasando.

Primero: Estos controles usan unas bibiliotecas de apache (common-io y el commons-fileupload).
Estos jars hay que importarlos al proyecto e indicar que los empaquete dentro de /WEB-INF/lib.

Segundo: Si compila todo, pero no se logra hacer el deploy, hay copiar esos jars en toda carpeta /lib que se encuentre dentro del GlassFish.

Tercero: Agregar los siguientes tags en el web.xml

<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

Con eso y agregando los Backing Beans que sean necesarios, debería funcionar.




lunes, 16 de enero de 2012

Es relativo...

Lunes otra vez, y más pesado que de costumbre...

Después de haber metido horas de playa, que el roce con el agua tibia quema... tabla y tabla, que no me podía abrochar la camisa hoy de mañana... comida y bebida que el mate hoy vino con carqueja y yerba para flojitos...

La paloma este fin de semana quebró la gala. La cantidad de gente justa, el agua transparente, ni frío ni calor, olas de entre medio metro y metro.

Flotando en el medio del agua, pensando en el asadito que se venía en un par de horas, es cuando se te vienen a la mente frases como: "Yo no elegí nacer en Uruguay, solo tuve suerte!".


martes, 27 de septiembre de 2011

Un poco de marketing... pero solo un poco...

Hoy volviendo del centro con Guillermo R. me terminé de quemar sobre algo que me acosa casi todos los días, y le dije: "voy a levantar el blog, solamente para descargarme".

Probable, que él lector piense que necesito vacaciones, o que estoy con un nivel de histerismo peor que el de su mujer en esos días que están saladas...

Hay que aclarar que no soy ningún experto en el tema, es más, si tuviera que dar una charla diría la chantada de "las cuatro Ps" y... creo que ya me quedo sin labia! Pero algún que otro recurso como para "remarla" hay... El tema es, como en todo, el abuso y el mal uso! Esta vez, me la agarré con "Promotion".

Varias veces me ha pasado de dejar el auto estacionado en la calle, y cuando vuelvo tengo pegado en el vidrio de atrás propaganda sobre alguna empresa... Olvídate si lo dejas en pleno enero en la rambla de punta del este, que te lo forran.

La primera reacción, obviamente es despotricar contra el pobre tipo que anda recorriendo auto por auto, pegando adhesivos, y en el caso particular de mi vidrio que rara vez está limpio, además, primero le tiene que pasar la mano para que pegue mejor...
Ni hablar cuando me pongo a pensar en el trabajo que me da después sacarlo... por lo general me quedan pedazos pegados, y con eso todo roto se me hace todavía más difícil... a eso le sumo calentura y más calentura!

Entonces se me da por ponerme a pensar; esta gente gasta dinero en hacer el adhesivo, más en que alguien se tome el trabajo de caminarse toda la rambla e ir pegando en cada auto que está estacionado, y en lugar de generar una sensación de bien estar, o necesidad de ir a conocer la tienda o comprar algo, produce ganas de ir para tener la suerte de encontrar al dueño y sugerirle un buen lugar donde colocar su adhesivo.

Otra parecida... hasta hace un par de meses en cada semáforo que había alguien regalando papelitos, bajaba ventanilla, agarraba papelito, lo miraba los últimos cinco segundos que demoraba en cambiar la luz, y a la guantera... cuando quise acordar, no me entraba un alfiler, y lo único bueno era que no tenía que gastar en servilletas o papel higiénico de emergencia... Todo terminaba yendo a la basura, sin siquiera haberlo leído entero...

Sin pecar de soberbio, y manteniendome en mi posición de muuuy amateur en el tema, los cráneos pensantes de estas empresas no se dan cuenta de que la ecuación no anda?!

A las únicas que les acepto cosas, son a las promotoras de Conaprole, y solo porque dan algo que me calza justo para ahorrarme el desayuno!