jueves, 21 de noviembre de 2013

Calidad en el Desarrollo de Software Científico

Bueno, hace tiempo que andaba con ganas de publicar este documento, que fue con el que me recibí de Ingeniero. 

La temática que planteo en mi trabajo es la calidad en el desarrollo de software, pero en los ámbitos científicos y técnicos, lugares donde el desarrollo de software es amateur, debido a que no han sido formados en la disciplina del desarrollo de software.

Dejo a continuación los links donde pueden descargarse mi trabajo y espero que sea de su interes. 


En Scribd:

http://es.scribd.com/doc/186188898/Calidad-en-el-Desarrollo-de-Software-Cientifico

En GitHub:

https://github.com/franciscocoenda/Calidad_Software

lunes, 18 de noviembre de 2013

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

miércoles, 17 de abril de 2013

Como Instalar BugZilla en Ubuntu 12.04


Hola, he decidido compartir esta guía de como instalar BugZilla en Ubuntu 12.04, ya que es una herramienta complicada en su proceso de instalación, pero una vez que hemos sorteado este escollo tenemos una herramienta muy intuitiva en su manejo.

Lo primero que vamos a realizar, es verificar que contamos con todos los componentes necesarios para usar BugZilla. Estos son MySql, Apache y Perl. 
 
1- Verificamos que contamos con perl.

$perl -V

Si no tenemos perl instalado, lo instalamos

$sudo aptitude install perl

2- Verificamos que tenemos mysql instalado. 

$mysql --version

Si no tenemos mysql instalado. Debemos instalar los siguientes paquetes.

$sudo aptitude install mysql-server mysql-client

3- Una vez que contamos con mysql en nuestro sistema, vamos a crear la base de datos 
donde vamos a alojar los bugs. Para este caso, yo cree la base de datos bug

$mysql -u root -p
$mysql> create database bug;
$mysql> grant all privileges on bug.* to usuario_maquina@localhost;

La última linea le otorgo todos los privilegios a mi usuario sobre la base de datos creada.

4- Verificamos que tenemos apache instalado.

$apache2 -v

Si no se encuentra instalado, lo instalamos.

$sudo aptitude install apache2

5- Ahora vamos a vincular BugZilla con apache, para esto vamos a editar el archivo 
apache2.conf y agregar el siguiente código al final del documento.

$sudo vi /etc/apache2/apache2.conf
 
Alias /bugzilla/ /var/www/bugzilla/
<directory /var/www/bugzilla>
Addhandler cgi-script .cgi .pl
Options +Indexes +ExecCGI +FollowSymLinks
DirectoryIndex index.cgi
AllowOverride Limit
</directory>
 
6- Agregamos los usuarios del sistema al archivo envvars.

$sudo vi /etc/apache2/envvars

Buscamos las siguientes lineas y agregamos los usuarios (user y group).

export APACHE_RUN_USER=usuario_maquina
export APACHE_RUN_GROUP=grupo_pertenece_usuario

7- Ahora instalamos BugZilla. Para ello nos lo bajamos del sitio oficial (yo he instalado la 
última versión 4.2.5, ). 

$sudo tar -xvf bugzilla-4.2.5.tar
$sudo mv /download/bugzilla-4.2.5 /usr/local/
$sudo ln -s /usr/local/bugzilla-4.2.5 /var/www/bugzilla

8- Nos aseguramos que el directorio que creamos posea permisos rw.

$sudo chown -R www-data:www-data /var/www/bugzilla

9- Ahora vamos a verificar que contamos con los módulos de perl necesarios para 
configurar y hacer andar BugZilla. Todo este proceso de trabajar con perl lo vamos a 
hacer como super usuarios.

$sudo su

#cd /var/www/bugzilla
#./checksetup.pl --check-modules

Esta linea nos va a mostrar los módulos que están instalados y lo que no están instalados.
Primero muestra los módulos esenciales, después los módulos de BD y por último los 
módulos opcionales. A su vez nos da el comando para instalar cada módulo individualmente 
y el comando para instalarlos a todos de una sola vez. En este caso, hacemos una instalación

de todos los módulos de una sola vez.

/usr/bin/perl install-module.pl --all

10- Ejecutamos checksetup.pl  para que nos genere el archivo localconfig que va a contener la configuración de BugZilla.

#./checksetupe.pl

11- Abrir el localconfig para editarlo y linkear BugZilla con la BD.

#vi localconfig

$db_name = 'bug';
$db_user = 'ichigo';
$db_pass = '';

12- Volver a ejecutar el checksetupe.pl para generar la base de datos de BugZilla.

#./checksetup.pl

13- Volvemos a editar para configurar el webserver.

#vi localconfig

$webservergroup = 'ichigo';

14- Volver a ejecutar el checksetupe.pl para aplicar los cambios realizados.

#./checksetupe.pl

Al finalizar la configuración nos va a pedir la cuenta de mail del administrador de BugZilla, 
usuario y password. Los escribimos y listo. Ya tenemos BugZilla.

15- Para finalizar, reiniciamos apache.

sudo /etc/init.d/apache2 restart

16- Abrimos un web browser y escribirmos

http://localhost/bugzilla/