miércoles, 4 de septiembre de 2013

Leer un xml con Java

El siguiente post explica como usar la librería JDOM que permite trabajar los XML con java. Podemos acceder a la API y su documentación en la pagina oficial. A su vez pueden descargar el código de ejemplo que utilizo desde GitHub. 

Hay que tener en cuenta 2 cosas:
1- Es necesario bajar la API de JDOM
2- Conocer la estructura con la que se va a trabajar.

El siguiente método forma parte del código que se encuentra en GitHub y explica modestamente como se utiliza la API JDOM.

public void LeerPrimerNivel() {

 
  // Se crea un SAXBuilder para poder parsear el archivo
  builder = new SAXBuilder();
  xmlFile = new File(path.leerPath());

  try {
   //Se parcea el archivo xml para crear el documento 
   //que se va a tratar.
   documento = (Document) builder.build(xmlFile);

   // Se obtiene la raiz del documento. En este caso 'cruisecontrol'
   rootNode = documento.getRootElement();
   
   // Obtengo el tag "info" como nodo raiz para poder trabajar 
   // los tags de éste.
   rootNode_Level2 = rootNode.getChild("info");
   
   // Obtengo los nodos "property" del tag info y los almaceno en
   // una lista.
   lista = rootNode_Level2.getChildren("property");
   
   //Imprimo por consola la lista.
   for (int i = 0; i < lista.size(); i++){
    System.out.println(((Element)lista.get(i)).getAttributeValue("value"));
   }
  
  } catch (IOException io) {
   System.out.println(io.getMessage());
  } 
  catch (JDOMException jdomex) {
   System.out.println(jdomex.getMessage());
  }
 } 

Como resultado, obtenemos la siguiente salida por consola

FormulasMatematicas
20130430111319
2013-04-30T16:48:55
20130430134855
build.2
300
true
/opt/cruisecontrol-bin-2.8.4/logs/FormulasMatematicas
log20130430134855.xml
20130430111319
El método build() parsea y construye el documento que va a tratar el programa a traves de la API JDOM.
documento = (Document) builder.build(xmlFile);
Se crea un element que va a contener el Nodo Raíz del XML que se esta parseando. El método  getRootElement() va a retornar el elemento raíz del documento XML.
rootNode = documento.getRootElement();
El método get.Child() devuelve un Nodo hijo del XML/ el Nodo del segundo nivel del elemento que se ha definido como Nodo Raíz.
rootNode_Level2 = rootNode.getChild("STRING");
El método getChildren() nos retorna una lista con el nombre de los elementos encerrados en los tags. 
lista = rootNode_Level2.getChildren("property");
Por último el método getAttributeValue() nos va a retornar el valor que poseen los elementos que nos devuelve el método getChildren().
getAttributeValue("value")

domingo, 16 de junio de 2013

Curso de Manejo de Git/GitHub y Meteor en UNdeC

Quiero agradecer en nombre de mis compañeros y mio a la Universidad Nacional de Chilecito por abrirnos sus puertas y permitirnos dictar los cursos de tecnologías Open Source y Software Libre. Nos han hecho sentir muy a gusto y hemos disfrutado nuestra estadía en Chilecito y de la hospitalidad de su gente.




Los temas que se trataron fueron: Meteor JS, Git/GitHub y uso de la consola de GNU/Linux.

**Especial agradecimiento a Fernanda Carmona y Horacio Martínez del Pezzo por el apoyo y  colaboración brindada.**

Para aquellos interesados, paso a publicar el link de donde pueden descargar el material que se expuso durante el dictado del curso Git/GitHub.

https://github.com/franciscocoenda/CursoChilecito2013



sábado, 18 de mayo de 2013

Solución a corte en Videollamada Skype 4.1 en Ubuntu 12.04


Hola a tod@s. De seguro que más de uno se ha topado con problemas al usar skype (la última versión 4.1) en ubuntu y no poder realizar una vídeo llamada o que este se nos cierre repentinamente o algún otro tipo de problema (aparentemente, desde que el todo poderoso microsoft lo compro, por los menos las versiones de android y algunos linux han tenido problemas). Pues bien, mi solución fue sencillamente bajarme la versión que usa Linux Mint Nadia. Aclaro que en ningún momento baje la versión desde la página de skype. Hay 2 formas de proceder.

La primera es desde el siguiente enlace

http://www.ubuntuupdates.org/package/mint_import/nadia/import/base/skype

La segunda forma (la que utilice yo), es realizar los pasos que a continuación detallo.

1- Agregamos los repositorios de Linux Mint Nadia al final del archivo
source.list que utiliza ubuntu para almacenar los repositorios.

sudo vim /etc/apt/source.list

Como mencione al final del archivo agregamos la siguiente linea.

deb http://packages.linuxmint.com/ nadia main upstream import

2- Realizar un update.

sudo apt-get update

3- Agregamos el keyring.

sudo apt-get install linuxmint-keyring

4- Luego hacemos un update del sistema.

sudo aptitude update

5- Y por último instalamos skype.

sudo aptitude install skype:i386


Saludos.

miércoles, 1 de mayo de 2013

Resetear o Reestablecer la contraseña root de MySQL


Si nos hemos olvidado la contraseña root de mysql, nos vamos a topar con que no podemos realizar muchas operaciones que digamos. En los siguientes pasos les explicare como resetear la contraseña de root para poder trabajar con mysql.


1- Detenemos el servidor MySQL
$sudo /etc/init.d/mysql stop

2- Reiniciamos MySQL saltando la identificación y deshabilitando la escucha de red.

$sudo mysqld_safe --skip-grant-tables –-skip-networking&

Al usar --skip-grant-tables deshabilitamos el sistema de privilegios, por lo que se tiene acceso ilimitado a todas las bases de datos.
-skip-networking& deshabilita la escucha por red haciendo que el motor trabaje localmente.

3- Nos conectamos a mysql

$sudo mysql mysql -u root

4- Actualizamos la contraseña de root
UPDATE user SET password=PASSWORD('nuevacontraseña') WHERE user="root";

5- Reiniciamos el servidor MySQL

$sudo /etc/init.d/mysql restart


Listo, con estos simples pasos hemos reseteado la contraseña del usuario root.

lunes, 22 de abril de 2013

Hacer andar Wifi Atheros AR9462 en Ubuntu 12.04


Hola, al instalar Ubuntu 12.04 en mi nueva laptop me tope con un viejo problema y es el de las placas wifi. Buscando e interiorizandome, he encontrado esta solución. Los controladores son Atheros (AR9462). Para solucionar el problema básicamente hay que bajar los driver del siguiente enlace y compilarlos.

1- Debemos instalar las herramientas para realizar el trabajo.

$sudo aptitude install linux-headers-generic build-essentials


2- 
Después descargamos la última versión de los drivers (compat-wireless-3.6.8-1) del siguiente link. (He subido los drivers, ya que aparentemente no se pueden descargar del link en el que se encontraban subido anteriormente).




3- Descomprimimos el .tar e ingresamos al directorio que se nos crea.

$cd Descargas
$tar -xvf compat-wireless-3.6.8-1
$cd compat-wireless-3.6.8-1
$sudo su
#./scripts/driver-select ath9k
#make
#make install
#exit


4- Después de esto, desconectamos los módulos y drivers

$sudo make unload
$sudo modprobe ath9k


5- Reiniciamos la notebook y listo.

Nota aclaratoria: Cuando se produce una actualización del núcleo de linux, es necesario recompilar los driver nuevamente. A continuación dejo los pasos.

$cd compat-wireless-3.6.8-1
$sudo su
#./scripts/driver-select restore
#./scripts/driver-select ath9k
#make clean
#make
#make install
#exit


$sudo make unload
$sudo modprobe ath9k

Reiniciar la notebook