egnux #06

27

Upload: eticagnu

Post on 12-Jun-2015

854 views

Category:

Documents


2 download

DESCRIPTION

Revista virtual eGNUX #06

TRANSCRIPT

Page 1: eGNUX #06
Page 2: eGNUX #06
Page 3: eGNUX #06

www.eticagnu.org Julio 2013 eGNUX 03

El 28 de julio es un día

doblemente especial para

nosotros, no solo por ser

el día de nuestra

independencia sino que

además EtiCA está de

aniversario, hoy

cumplimos nuestro tercer

año juntos como una

familia y espero que se

vengan muchos más.

Este número especial de

eGNUX, cuenta con una

entrevista realizada a mi persona, en donde les

comento sobre los planes que tenemos paraa el

futuro y mi experiencia como integrante de

EtiCA.

Esta edición también nos presentará al nuevo

sistema operativo móvil "Replicant" que cuenta

con el apoyo de la Free Software Foundation

para su desarrollo, hablaremos de Herramientas

de Monitoreo en Linux, desarrollo de

aplicaciones ANDROID, PostgreSQL y entre otros

temas más.

Por otro lado, debo hacer presente mi

agradecimiento a todos aquellos que

colaboraron con su tiempo y artículos para

poder traerles este nuevo número especial para

todos uds. Espero que éste sea de su agrado y

pues cualquier recomendación déjennos sus

comentarios.

28 de julio de 2013

Dirección editorial y

diagramación:

Diseño de carátula:

Suscripciones:

Directiva 2013

Presidenta:

Vicepresidente:

Secretario:

Tesorero:

Asesor:

Contacto

Web:

E­mail:

Twitter:

Guadalupe Lip Curo.

Gustavo Tompasca Panta.

[email protected]

Guadalupe Lip Curo.

Gustavo Fernandez Chavez.

Angel Quiroz Campos.

José Damián Samamé.

Gustavo Tomapasca Panta.

www.eticagnu.org

[email protected]

@eticagnu

Esta revista se publica bajo una licencia de

Creative Commons. Puede copiar, distribuir,

mostrar publicamente su contenido y hacer obras

derivadas, siempre y cuando, cumpla con lo

siguiente: a) reconozca los créditos de la obra, b)

no la uses de forma comercial y c) la compartas

bajo la misma licencia.

Guadalupe Lip Curo.

Directora editorial

[email protected]

Page 4: eGNUX #06

06 Herramientas de monitoreo

en Sistemas GNU/Linux.

Existen algunas herramientas que los

administradores de sistemas utilizan

frecuentemente para monitorizar la actividad de

sus sistemas.

www.eticagnu.org Julio 2013 eGNUX 04

09 REPLICANT, un sistema operativo

completamente libre.

Y aquí estamos de nuevo con este espacio para

hablar un poco acerca del software libre y de

cómo se va introduciendo poco a poco de manera

positiva en el mundo de los dispositivos móviles.

11 Entrevista a Guadalupe Lip Curo,

presideta de EtiCA.

Yo conocí el Software Libre hace muchos años,

cuando aún estaba en primaria inclusive y en esa

época realmente eran a muy pocos los que oía

utilizar ese término.

13 PostgreSQL: un SGBD para tiempos

de independencia tecnológica.

PostgreSQL es un SBGD (Sistema Gestor de Base

de Datos) Objeto Relacional distribuido bajo

licencia BSD y con su código fuente libremente

disponible para descarga.

16 Entrevista al Ing. Pedro Rojas Vera, autor

de un libro hecho con Software Libre.

"si tienes una nueva idea, entonces compártela,

porque pueden haber muchas personas a las

cuales les interese esa idea"

19 Tercer aniversario EtiCA.

Hemos querido compartir algunas imagenes de la

celebración por nuestro tercer aniversario.

20 Desarrrollo a través de meto­

dologías ágiles con Software

Libre. (Parte 1)

23 Introducción al desarrollo de

aplicaciones en Android.

26 NOTICIAS BREVES

Page 5: eGNUX #06

JOSÉ LUIS

BUGARÍN PECHE

CEO de ILUMINATIC SAC. Analista del Grupo Romero.

Docente Universitario UPC en el Programa EPE.

Emprendedor Tecnológico: www.consultorjava.com

Email: [email protected] / [email protected]

Twitter : @jlbugarin / @iluminatic

DANIELA

JÁUREGUI SOLIS

Estudiante de Ing. de Sistemas y computación.

Secretaria del WIE.

Miembro de la rama IEEE Usat.

ALEJANDRO

ROMERO TRIANA

Github: https://github.com/alejo8591

Linkedin: http://www.linkedin.com/in/alejo8591

Twitter: @alejo8591

Facebook: fb.com/alejo8591

Skype: alejo8591

EDDIE

MALCA VICENTE

Gerente de Proyectos Educativos ILUMINATIC SAC –

Desarrollador Web CONCYTEC.

Docente UPCI­ UNAC.

Email: [email protected] / [email protected]

Twitter : @emalca / @iluminatic

degui.

www.eticagnu.org/wetica/author/degui

Iceweasel es el navegador por defecto que

viene en las distribuciones Debian GNU/Linux.

Habrán muchos usuarios de Debian (y de sus

derivados), interesados en remplazar

Iceweasel por el navegador Firefox.

Maddog, anima usar polo Linux.

www.eticagnu.org/wetica

Jon maddog Hall publicó un post, en su blog

para Linux Magazine, animando a todos a

vestir una camiseta Tux este 7 de agosto

(también día de su cumpleaños), como un

manera de decir que GNU/Linux está en todas

partes.

Desde el 30 de mayo del presente año,

linux.com ha empezado a publicar una serie

de vídeos y entrevistas que realizará a 30

desarrolladores del kernel Linux para mostrar

al público en general el espacio de trabajo

desde donde se programan los módulos del

kernel

degui.

www.eticagnu.org/wetica/author/degui

WWW.ETICAGNU.ORG/WETICA

www.eticagnu.org Julio 2013 eGNUX 05

Page 6: eGNUX #06

Existen algunas herramientas que los

administradores de sistemas utilizan

frecuentemente para monitorizar la actividad

de sus sistemas. Estas herramientas además de

brindar información valiosa sobre el

desempeño de las máquinas, ayudan a los

administradores de sistema a tomar decisiones

importantes, basándose en las estadísticas

obtenidas por estas herramientas.

En los sistemas GNU/Linux están presentes

muchas de estas herramientas de monitoreo,

uno en especial llamado sar, que viene en el

paquete Sysstat, del cual hablaremos a

continuación, para conocer de forma general

su uso y la información útil que podemos

obtener de esta herramienta.

INSTALACIÓN Y CONFIGURACIÓN.

El paquete Sysstat, si deseas instalarlo

manualmente, lo puedes descargar desde su

sitio web: http://sebastien.godard.pagesperso­

orange.fr/. Pero su instalación es muy sencilla y

rápida desde terminal, así que nosotros vamos

abrir una terminal y, como usuario root,

ejecutamos la siguiente orden:

#apt­get install sysstat

Una vez instalado, habilitaremos la orden sadc

(system activity data collector), para que

almacene toda nuestra información del sistema

en archivos binarios que luego serán leídos por

la orden sar. Para esto configuramos el archivo

sysstat con el editor vi, ejecutando la siguiente

orden:

#vi /etc/default/sysstat

Una vez dentro del archivo sysstat, nos

dirigimos al final del archivo, y cambiamos el

“false” por “true”, tal como se muestra

continuación:

ENABLED = “true”

Por último guardamos los cambios y salimos

del editor vi. De este modo ya tenemos

instalado y configurado en nuestro sistema el

monitor sar, y también otros monitores que se

incluyen en el paquete Sysstat y que nos serán

de gran utilidad.

USO DEL MONITOR SAR.

Lo primero que vamos a ejecutar es la orden

sar, que nos muestra por defecto la siguiente

información, como se puede ver en la figura 1,

y que a continuación explicaré.

$sar

Por Gustavo Tomapasca.

@iuged

Figura 1. Monitor sar, con la orden: sar.

www.eticagnu.org Julio 2013 eGNUX 06

Page 7: eGNUX #06

Ejecutando sólo el comando sar, obtenemos

como resultado la información de la actividad

del procesador de la máquina, en este caso

podemos apreciar, como primera información,

que el procesador es un amd64 de dos núcleos

que utiliza el kernel Linux 3.2. La siguiente

información nos muestra, en la primera

columna, el tiempo en que se inició el

monitoreo: 17:45:03, y que cada 10 minutos el

monitor va tomando muestras.

Las demás columnas muestran el tiempo

consumido por cada variable. Por ejemplo, la

variable %user, muestra los tiempos

consumidos por el sistema en modo usuario,

mientras que la variable %system, muestra los

tiempos consumido por el sistema en modo

supervisor. Hay que aclarar que la muestra que

nos presenta el monitor en este caso, es la

media de ambos núcleos.

$sar ­d ­s 18:15:00 ­e 18:55:05 ­f /var/log/

sysstat/sa25

Si mantenemos al monitor sadc, habilitado

(ENABLED = “true”), éste recogerá muestras de

nuestro sistema desde que encendemos la

computadora hasta que la apagemos. Esta

información histórica se guarda en archivos

binarios que luego el administrador de

sistemas podrá consultar con el monitor sar,

que se encargara de leer y pasarlos a un

formato entendible para los humanos.

En este caso, como se muestra en la Figura 2,

la ruta en donde se encuentran los archivos

históricos es /var/log/sysstat y el archivo

consultado es el “sa25”, sadc le da este

nombre con el sufijo del día en que se recogió

la muestra. Esto es muy útil si el administrador

del sistema, decide consultar información

histórica de días anteriores al de hoy.

En este ejemplo monitoreamos el sistema de

archivos del disco duro, ingresándole el

parámetro ­d a la orden sar, en un rango de

tiempo determinado: 18:15:00 ­e 18:55:05,

de una información histórica del día 25, en la

ruta: ­f /var/log/systat/sa25, cuya consulta

nos arroja información valiosa como la tasa de

transferencia por segundo, en la columna tps, y

la lectura y escritura de los sectores por

segundo, en las columnas rd_sec/s y wr_sec/s

respectivamente, como se puede observar en la

figura 2.

$sar ­b ­s 18:15:00 ­e 18:55:05 ­f /var/log/

sysstat/sa25

Hacemos lo mismo para obtener la actividad

de las unidades de entrada/salida con el

parámetro ­b, en el mismo rango de tiempo y

ruta de archivo que el ejemplo anterior, como

Figura 2. Monitor sar, con la orden: sar ­d

Figura 3. Monitor sar, con la orden: sar ­b

www.eticagnu.org Julio 2013 eGNUX 07

Page 8: eGNUX #06

se muestra en la Figura 3. En donde podemos

observar que la información mostrada en las

columnas rtps y wtps, nos detallan las

transferencias por segundo de las lecturas y

escritura, respectivamente, de los dispositivos.

Lo mismo sucede con los bloques de lectura y

escritura en las columnas bread/s y bwrtn/s.

Por último veremos brevemente el uso del

monitor mpstat, este es otro monitor que se

incluye en las utilidades del paquete sysstat al

momento de su instalación. También veremos,

como usarlo dinámicamente sin hacer uso de la

data histórica. Ejecutamos la orden siguiente:

$mpstat ­P 0 5 4

mpstat, es un monitor utilizado para obtener

información específica de la actividad de los

procesadores. En este caso, como se muestra

en la Figura 4, le he ingresado los parámetros

­P 0 5 4, para que me recoja 4 muestras, cada

5 segundos, del núcleo 0 del procesador. Como

se puede observar, usar las herramientas de

monitoreo de forma dinámica es muy útil, ya

que no se está utilizando la data histórica, sino

más bien, la información obtenida en el mismo

instante en que el sistema actua.

Podemos hacer lo mismo para obtener la

actividad del segundo núcleo del procesador, lo

único que cambiaríamos del anterior orden es

el 0 por el 1, como se indica a continuación:

$mpstat ­P 1 5 4

Aquí hemos consultado la información del

segundo núcleo del procesador, como se

muestra en la figura 5, y como podemos

observar, el primer núcleo (0) está

consumiendo mayor tiempo que el segundo

núcleo (2).

Si ejecutamos la orden sar ­A, podremos

observar toda la información histórica que va

recolectando sadc, de nuestro sistema. Si

queremos apagar el monitoreo, solamente

basta cambiar "true" por "false", del archivo

ubicado en: /etc/default/sysstat, como lo

hicimos al inicio de este artículo.

Esto ha sido solamente una breve

demostración de lo mucho que se puede

obtener con el monitor sar, el uso de este y

otros monitores, lo podemos dejar para otras

entregas. Espero que les haya servido como

referencia para despertar su interés en el uso

de estas potentes herramientas.

Figura 5. Monitor mpstat, con la orden: mpstat ­P

Figura 4. Monitor mpstat, con la orden: mpstat ­P

www.eticagnu.org Julio 2013 eGNUX 08

Page 9: eGNUX #06

Y aquí estamos de nuevo con

este espacio para hablar un

poco acerca del software libre

y de cómo se va introduciendo

poco a poco de manera

positiva en el mundo de los

dispositivos móviles. En esta

oportunidad lo podrás saber a

través del presente artículo y

gracias al proyecto Replicant,

¿No has escuchado nada

acerca de Replicant? Bueno,

aquí yo te contaré un poco

sobre él.

Replicant es un sistema

operativo basado en Android

cuya diferencia, y muy

notable se podría decir, es que

este nuevo sistema operativo

funciona completamente con

software libre, lo sé, quizá la

duda que puede surgir en este

momento es que todos

sabemos que Android está

basado en software libre, por

lo tanto ¿Cuál sería la

diferencia? Bueno, puedo

decirte que en algunos casos

Android utiliza ciertos drivers

o firmwares como por

ejemplo los que están

relacionados con las

conexiones inalámbricas que

se caracterizan por ser

licenciados, lo cual hace que

Android no sea libre en su

totalidad, lastimosamente, a

diferencia de Replicant.

Conozcamos un poco más

acerca de Replicant...

En primer lugar pues si vamos

por lo histórico, por decirlo

así, brevemente se puede

contar que Replicant es un

proyecto muy nuevo puesto

que nació recién en el año

2010 pero que sin embargo a

pesar de su juventud en el

mundo de sistemas operativos

móviles, actualmente es

compatible con diez

dispositivos móviles los cuales

en su mayoría son de la línea

Samsung Galaxy, cuyos

teléfonos, como ya es de

nuestro conocimiento, se

caracterizan por ser de los

más avanzados además de ser

de los más adquiridos en el

mercado. Replicant

inicialmente realizó sus

primeras pruebas en tan solo

dos equipos, un Galaxy Nexus

y un HTC.

Por otro lado, si a estas

alturas ya vas interesándote

UN SISTEMA OPERATIVO COMPLETAMENTE LIBRE

Interfaz Replicant

Por Daniela Jáuregui.

www.eticagnu.org Julio 2013 eGNUX 09

Page 10: eGNUX #06

un poquito más en Replicant

un dato más relevante es que,

así como Android nos

proporciona la popular Play

Store, Replicant no se queda

atrás y por defecto F­droid

será nuestra tienda de

aplicaciones, en donde podrás

encontrar las aplicaciones que

son totalmente libres y que

pueden ser personalizadas a

tu gusto. Ojo, F­droid puede

ser utilizada en algunos casos

sin estar utilizando Replicant

como sistema operativo en tu

móvil.

Este proyecto necesita de

usuarios pero también de

desarrolladores, si eres un

desarrollador o bueno si no lo

eres, también deberías saber

que Replicant cuenta con un

emulador propio para realizar

las pruebas correspondientes

de las aplicaciones

construidas.

Tal vez en este momento la

compatibilidad con equipos

no sea abundante sin

embargo es un proyecto que

va creciendo poco a poco y

rápidamente, algo que es de

resaltar, por lo tanto nadie

puede decir que más adelante

no se podría convertir en un

sistema operativo muy

importante dentro del mundo

móvil.

Como dato final se puede

decir que Richard Stallman

junto a la Free Software

Foundation, han lanzado una

propuesta para adquirir

fondos y así obtener más

equipos móviles con la

finalidad de que el Proyecto

Replicant pueda realizar las

pruebas correspondientes y así

ir ajustando el sistema

operativo a nuevos teléfonos o

tablets e ir evaluando las

posibles fallas que podrían

surgir para mejorarlas y poco

a poco ir expandiendo este

sistema operativo para un

mayor número de dispositivos

móviles.

También existe una página

web en donde se aceptan

donaciones para que este

proyecto pueda seguir

creciendo y esperemos que

sea así, entonces si tienes un

dispositivo compatible podrías

darle una oportunidad a

Replicant, teniendo en

consideración que cuenta con

menos usuarios por no ser tan

conocido, y a menos usuarios

menos interés para ser

vulnerado y más tranquilidad

para poder utilizar tu equipo

sin temor a que puedan robar

tus datos personales o acceder

a tus redes sociales, asimismo

será menor la invasión de

virus y como punto final

porque cuenta con el apoyo de

grandes personajes dentro del

mundo open source, cosa que

es un buen respaldo.

F­Droid

www.eticagnu.org Julio 2013 eGNUX 10

Page 11: eGNUX #06

EtiCA está próximo a cumplir tresaños ¿Desde cuándo eres miembro dela asociación y por qué decidistepertenecer a ella?

Soy miembro desde finales del año pasado,

no recuerdo con exactitud el mes en el que

me uní. En realidad mi decisión de

pertenecer fue algo que salió de improviso,

no tuve mucho tiempo para meditarlo pero

no me arrepiento de haber aceptado.

Durante todo ese tiempo comoasociada cuáles han sido lasfunciones que has desempeñadodentro de la asociación y en quéproyectos participaste.

El año pasado me desempeñé como

tesorera y pues desde enero de este año

soy la actual presidenta. Hasta el momento

he participado en la organización del

Llampageek 2012 y como directora de la

revista con la que cuenta la asociación,

eGnux; pero estoy segura que con todo lo

que tenemos planeado se vienen muchos

proyectos más.

Ahora como presidenta de EtiCA cuáles tu principal compromiso que hasasumido con la asociación y losasociados.

Las responsabilidades asumidas son varias

pero considero que la principal es hacer lo

necesario para que nuestros planes se

puedan llevar a cabo y así poder cumplir

con los objetivos que tenemos como

asociación.

www.eticagnu.org Julio 2013 eGNUX 11

Page 12: eGNUX #06

¿Cuáles son las expectativas quetienes para la comunidad duranteeste año de gestión?

Pues espero poder firmar un convenio que

tenemos planeado desde hace cierto tiempo

pero por sobre todo hacernos más

conocidos y lograr que más gente se una a

nuestra causa.

¿Cuáles son los proyectos que tienepensado la asociación realizar en loque le resta de este año, y cómo seestán organizando para lograrlo?

Tenemos diversos proyectos como LibreCole

o el Llampageek 2013, además de la entrega

de dos números más de eGNUX como

mínimo, entre otros.

Para poder sacar adelante estos proyectos

pues tenemos a nuestro jefe de proyectos

que nos mantiene a todos completamente

organizados y presentándole nuestros

respectivos avances para poder verificar que

no estamos dejándolos en el olvido.

Sabemos que tienes a cargo ladirección de la revista eGNUX. ¿Cuálha sido tu experiencia en esta área? Y¿Cómo pueden participar otraspersonas en este proyecto?

Realmente estar como directora de eGNUX

es una genial experiencia, he aprendido

diversas cosas y me he tenido que poner en

contacto con distintas personas para poder

invitarlas a participar en los distintos

números de la revista, eGNUX me está

ayudando para mejorar en mi

desenvolvimiento con otras personas

definitivamente.

Para poder participar en este proyecto pues

las personas solo deben comunicarse

conmigo a través de las distintas redes

sociales como Facebook o Twitter o

directamente al correo de la revista que yo

les responderé lo más pronto posible y les

agradeceré mucho el interés mostrado.

¿Cómo observas el avance de lacultura del Software Libre entre losestudiantes de la región Lambayeque,se han logrado importantes avances?

Yo conocí el Software Libre hace muchos

años, cuando aún estaba en primaria

inclusive y en esa época realmente eran a

muy pocos los que oía utilizar ese término;

en la actualidad he podido percibir que

cada vez hay más personas, no solo

estudiantes, que se están interesando en el

Software Libre, y a pesar de que el apogeo

aún no se puede comparar con los software

pagados puedo decir que ha habido una

mejora y eso ya es un avance.

¿Cuáles son las actividades para estetercer aniversario de la asociación?

Espero que podamos tener un compartir

entre los integrantes de la asociación; una

torta, un brindis, unas palabras que espero

no tenga que darlas yo jajaja. Poder pasar

un lindo momento con la familia de EtiCA.

Por EtiCA GNU/Linux.

www.eticagnu.org Julio 2013 eGNUX 12

Page 13: eGNUX #06

En la actualidad, vivimos tiempos de

constantes cambios: económicos, políticos,

sociales, culturales, etc. Todo el panorama

mundial cambia día a día, y

tecnológicamente no estamos ajenos a

estas transformaciones.

En nuestro país, es evidente el

crecimiento exponencial que ha sufrido las

herramientas de Software Libre y Open

Source, no sólo entre las docentes y

estudiantes de las universidades que

hacen uso de las mismas para el desarrollo

de sus contenidos curriculares, sino

también en los entornos empresariales y

gubernamentales, donde cada día se

gestan soluciones de negocios basadas en

tecnologías libres, así como modelos de

negocios y emprendimientos tecnológicos

basados en ellas.

Ante este panorama, contamos ya con un

ecosistema tecnológico donde conviven

tanto tecnologías libres como propietarias,

donde cada una de ellas se encuentra

posicionada, y los profesionales de TIC

que las implementan han logrado una

especialización en base a su uso constante

como soluciones de negocio real. Es aquí

donde un sector importante del mercado

lo constituyen los SGBD, donde existe ya

una alternativa real, robusta, y con

soporte adecuado debido a la creciente

legión de profesionales y estudiantes que

la prefieren: PostgreSQL.

“¿Qué es PostgreSQL?”

PostgreSQL es un SBGD (Sistema Gestor

de Base de Datos) Objeto Relacional

distribuido bajo licencia BSD y con su

código fuente libremente disponible para

descarga. En la actualidad se ha

constituido por sus características como el

SGBD de código abierto más potente del

mercado y en sus últimas versiones no

tiene nada que envidiarle a otras bases de

datos comerciales como Oracle o MS SQL

Server.

PostgreSQL utiliza un modelo

cliente/servidor y usa multiprocesos en

vez de multihilos para garantizar la

estabilidad del sistema. Un fallo en uno de

los procesos no afectará el resto y el

sistema continuará funcionando.

“¿Qué características tiene?”

Entre las características principales que

posee la versión 9.2 de PostgreSQL

tenemos:

• 100% ACID

• Integridad Referencial

• Tablespace para ubicación física de

archivos de la base de datos

• Puntos de Restauración

• Replicación Síncrona y Asíncrona

• Commit en dos fases

• Copias de Seguridad en caliente

• Codificación UNICODE

• Juegos de Caracteres Internacionales

• Regionalización por columnas

• Control de Concurrencias

Multiversión

• Múltiples Métodos de Autenticación

Por Eddie Malca.

[email protected]

@emalca

www.eticagnu.org Julio 2013 eGNUX 13

Page 14: eGNUX #06

• Acceso encriptado vía SSL

• Actualización In­SITU integrada

• Documentación completa

• Multiplataforma para Linux, Unix y sus

variantes y Windows de 32 y 64 bits

• Funciones y Procedimientos

almacenados para en diversos

lenguajes de programación como

PL/pgSQL, PL/Perl, PL/Python y

PL/Tcl.

• Diversos tipos de datos y nuevos

tipos para definir.

• Soporte de almacenamiento de

objetos binarios grandes

• APIs para programar en lenguajes de

programación como C/C++, Java,

.Net, Perl, Python, Ruby, Tcl, ODBC,

PHP, Lisp, Scheme, Qt y otros.

Podemos leer mayor información del

proyecto en:

• http://www.postgresql.org/

• http://www.postgresql.org.es/

Algunos límites a considerar:

“¿Qué podemos hacer conPostgreSQL?”

Con PostgreSQL es posible impartir la

enseñanza de los cursos de Bases de Datos

en las entidades educativas hasta

implementar bases de datos en producción

en diversas organizaciones, pasando por

generar servicios tecnológicos alrededor

del modelo de negocio propiciado por el

mismo uso de esta tecnología.

El costo único de usarla es su simple

descarga e instalación,

independientemente del sistema operativo

que se utiliza, ello debido a que posee

soporte multilenguaje incluyendo al

Español–Perú dentro de su motor, una

interfaz gráfica de administración muy

simple como lo es el PgAdmin que viene

por defecto con el paquete de instalación.

Asimismo modeladores gráficos muy

intuitivos como PgDesigner en entornos

libres ó PgMaestro en entornos

propietarios.

Incorpora el estándar SQL que integra

tanto lenguaje DDL como DML, para la

creación de objetos relacionales en su

motor, los mismos que identifican con un

identificador único llamado OID.

“¿Lo que yo te puedo decir?”

De mi experiencia personal, tengo

contacto con PostgreSQL desde el año

2008 cuando se realizó la primera

migración en los sistemas de información

del CONCYTEC, que soportaban los

procesos administrativos de la entidad

como el sistema de trámite documentario

entre otros. Ello dio pie a que me

aventurara a incluirlo en el curso de

Lenguaje de Programación II de la UNAC

vía conexión con lenguaje de

programación web PHP.

A mi retorno a CONCYTEC, entidad en la

cual laboro desde fines del 2010, fue

grande mi sorpresa al encontrar la

mayoría de los sistemas de información

tanto administrativos como Core de la

Límite Valor

Máximo tamaño

de base de datos

Ilimitado (Depende del

sistema de almacena­

miento)

Máximo tamaño

de tabla32 TB

Máximo tamaño

de fila1.6 TB

Máximo tamaño

de campo1 GB

Máximo número

de filas por tablaIlimitado

Máximo número de

columnas por tabla

350 ­ 1600

(dependien­do del

tipo)

Máximo número

de índices por tablaIlimitado

www.eticagnu.org Julio 2013 eGNUX 14

Page 15: eGNUX #06

institución implementados haciendo uso

de PostgreSQL v 8.1 y superior, incluyendo

los sistemas de información del SINACYT

(Sistema Nacional de Ciencia y

Tecnología) más importantes como el

Directorio Nacional de Investigadores

(DNI), aplicativo que almacena los CV’s de

los investigadores en ciencia y tecnología

peruanos, constituyendo la base de datos

de profesionales en investigación más

importante a nivel nacional, corriendo por

más de cinco años sobre esta tecnología

libre sin ningún tipo de problema o

inconveniente generado por el motor.

Es importante señalar que a pesar de los

esfuerzos de empresas proveedoras de

tecnologías propietarias como Oracle y

Microsoft por proveer a la entidad de

soluciones alternativas al DNI basadas en

los SGBD que sus marcas ofrecen, no han

podido superar los criterios costo­

beneficio­rendimiento con los que

contamos desde que se hace uso de

PostgreSQL.

Esta realidad que vivo cada día con

PostgreSQL me llevó a considerarlo como

herramienta para el desarrollo del curso

de Administración de Base de Datos en la

UPCI, motor con el cual ya llevo 3 ciclos

de enseñanza formando profesionales con

conocimientos en dicha tecnología con lo

que espero aportar a tener cuadros

técnicos que brindarán el soporte

necesario en el producto y lograr una

mayor penetración del mismo en las

organizaciones.

“¿Qué te recomiendo?"

Siempre inicio el curso de Administración

de Base de Datos (de los cuales llevo 120

estudiantes formados en PostgreSQL),

preguntando a los estudiantes qué SGBD

les gustaría aprender, con los cual prosigo

preguntando cuántos cursos de los

mismos encuentran en el mercado local.

Esta pregunta es base para que de ellos

mismo parta la iniciativa de aprender algo

nuevo y libre como lo es el SGBD

PostgreSQL.

Recomiendo el uso de ciertas

herramientas que complementan el uso de

este SGBD:

• PgAdmin

• PgDesigner

• DbDesigner

• SQL Power Architect

Para los casos de configuración,

administración y monitorización, los

comandos propios del motor son más que

necesarios.

“Mi consejo”

Si eres docente, no enseñes algo que

sabes. Enseña algo que les será útil a los

estudiantes. Si eres estudiante, aprende lo

que el profesor imparte, pero invierte más

tiempo en investigar, esto se constituirá en

la diferencial entre lo común y lo

excepcional.

La difusión del Software Libre y de las

tecnologías Open Source, no es

exclusividad de algunos elegidos o alguna

asociación en especial; es oportunidad y

obligación de todos los que de alguna

manera creemos que no debemos

depender tecnológicamente de alguna

marca o proveedor en especial, todos

podemos aportar desde nuestra ubicación,

hagamos lo que hagamos, a lograr la gran

ansiada independencia tecnológica que

anhelamos.

Es posible encontrar mayor información,

tutoriales, cursos libres, del autor, en las

siguientes direcciones:

www.emprendedortecnologico.com

www.iluminatic.com

www.eticagnu.org Julio 2013 eGNUX 15

Page 16: eGNUX #06

Quisieramos saber ¿Cuál es la función que

desempeña en la universidad? y ¿Cómo

nació su vocación por ser Ingeniero

Mecánico Eléctrico?

Yo soy Chiclayano pero no vivo en Chiclayo

actualmente, vivo en Trujillo por un tema de

beneficio profesional. Cuando era joven nunca tuve

la intención de estudiar mecánica eléctrica, más me

gustaba el tema de la electrónica, pero en la

universidad local UNPRG no había esa carrera y es

por ello que me decidí por esta carrera dado que

era la que más se asemejaba.

El campo laboral, fue lo que definió mi especialidad

porque yo soy más eléctrico que mecánico, a pesar

de que la carrera es de ambas y, creo que lo que

más me ha gustado del tema de la electricidad es

que no está directamente relacionado con la parte

técnica sino que también con la propia persona; si

miramos el tema de la electricidad puedo llegar

incluso al extremo de decirte que la electricidad

puede hacerte feliz.

En el tercer libro, por ejemplo, que estoy

escribiendo y que espero salga a fines de año o a

comienzos del próximo, hay muchas partes en las

que menciono como la electricidad está muy

relacionada con tu forma de sentir y ver las cosas.

¿Cómo surgió la idea de comenzar a escribir

un libro?

Creo que todos llevamos dentro el tema de querer

escribir, no todas las cosas que están en el mundo

son completas para uno, al menos para un

estudiante, yo creo que ni para una ama de casa.

Siempre encontramos cosas que no son completas

para posiblemente nuestros gustos pero de repente

no tenemos los medios o la forma en que alguien

nos guíe para poder decir "si tienes una nueva idea,

entonces compártela, porque pueden haber muchas

personas a las cuales les interese esa idea" creo que

la universidad fue el motivo de apertura para poder

escribir.

Entonces, cómo nació el tema de escribir, hay

muchas cosas con las cuales yo me relaciono,

enseño y que siento que hay cosas que no están

aún escritas. Los dos libros que he escrito, tratan de

llenar un nicho que no existe, el nicho no lo he

buscado por un tema comercial, el nicho es una

necesidad. Hay formas de buscar un nicho, puede

ser por lo que más le guste a la gente pero la

necesidad de escribir salió porque hay cosas que no

están y entonces hay que recopilarlas, juntarlas,

poner un poco de tu experiecia, de la forma como

tú analizas o deduces las cosas que otros autores

puedan decir, le pones la autenticidad de tu opinión

Por Guadalupe Lip Curo.

El Ingeniero Pedro Rojas Vera, docente universitario, autor dellibro: "4 Principios para Construir Diagramas Unifilares", noscuenta su experiencia con el uso del Software Libre paraproducir su libro e impartir a sus alumnos sus conocimientoscon estas herramientas libres.

www.eticagnu.org Julio 2013 eGNUX 16

Page 17: eGNUX #06

y de tu convivencia con ello para que finalmente lo

termines entregando en un reporte escrito que no

es otra cosa que convertir tus ideas.

En su libro, usted indica haber hecho uso de

herramientas de Software Libre. Cuéntenos,

¿Cómo conoció el Software Libre?

Cuando yo llegué a USAT, yo había escuchado

mucho hablar de él y también que el tema era un

poco difícil, inclusive mi primera maestría fue en

informática y ahí fue donde me enteré de muchas

ventajas del Software Libre, pero abordar el tema

de Linux no fue algo que tenía en mente. El tema

de la maestría fue más que todo para poder

automatizar el tema de mantenimiento de la

empresa en la que laboraba en ese tiempo.

Años después, yo vengo a

desarrollar cátedra aquí en USAT y

me encuentro con que las máquinas

tenían Linux, entonces fue como un

reto aprender a usarlo y asi terminé

enamorándome de éste.

Actualmente inclusive uso Linux en

mi casa, como una plataforma

natural, claro que debo convertir

algunas cosas porque algunas veces

cuando he enviado información por

correo me contestaban con que no

podían abrir el archivo y es por ello

que ahora lo convierto a pdf y asi no

tengo ese problema.

Exactamente, ¿Para qué utilizó estas

herramientas en su libro?

Como ingenieros, nosostros tenemos un lenguaje

de comunicación y éste para nosostros son los

planos dado que con las palabras perdemos mucha

objetividad. La mayor parte de nuestra carrera se

basa en bibliografía americana o de cualquier otros

países y entonces el problema es que hay mucha

simbología gráfica que no está acorde con la

normatividad que existe en el país.

Nuestro pais ha asumido una norma internacional

que es la IEC para todo lo que es símbolos gráficos,

y estos son una forma de comunicación mucho más

específica y científica porque cualquier

equipamiento lo expresas de una forma que será

entendida por el receptor.

Mucha bibliografía que viene de otro países no

utiliza la simbología con la cual está normada

nuestro pais, entonces el encontrar este tipo de

comunicación un poco confusa me llevó a escribir

este libro que se llama "Cómo construir diagramas

unifilares" y ahí expongo cuáles son las razones del

porqué un profesional debe usar este lenguaje de

manera correcta.

Al escribir este libro, hice uso del editor de texto

LibreOffice Writer, para las imágenes hice uso de

Gimp y Shutter, que es una herramienta que

encontramos en el repositorio de Ubuntu, y para

realizar los diagramas unifilares hice uso de las

herramientas CAD. Mucha gente está familiarizada

con el AutoCad pero no saben utilizar todas las

funciones que nos ofrecen, en mi caso yo hago uso

de LibreCad.

¿Alguna vez ha dictado un taller sobre

diagramas unifilares?

Siempre lo hago, no como un taller pero cada vez

que en las clases de las asignaturas que dicto se

incluye algo de diagramas tengo que hacer una

pequeña clase de ello.

Siento la necesidad de que debe haber un taller de

diagramas unifilares aunque creo que el tema está

Guadalupe Lip Curo, entrevistando al ingeniero Pedro Rojas Vera.

www.eticagnu.org Julio 2013 eGNUX 17

Page 18: eGNUX #06

escondido en algunas asignaturas que las

ingenierías llevan en los primeros ciclos, pero

además se debe incluir el tema de las

normatividades.

Al momento de dictar sus asignaturas ¿ha

hecho uso de Software Libre?

Siempre lo hago. Dado que en las aulas las

computadoras cuentan con Windows, he tenido que

pedir ayuda a los de informática para que instalen

en las máquinas en las que desarrollo las clases,

Software Libre.

El año pasado dicté un curso llamado "Análisis

Matemático I", fue un curso de primer ciclo, y dado

que eran alumnos que recién ingresaban a la

universidad traté de darles la mayor cantidad de

herramientas que hay en software libre para

matemática como por ejemplo Scilab, Maxima u

Octave que son para realizar cálculos matemáticos.

Entonces, en este curso les mostré de manera

panorámica a los alumnos mucho Software Libre

que hay en cuanto a matemática, por dos motivos,

en primer lugar abrirlos por el campo del Software

Libre ya que se puede usar sin costo alguno y

también porque uno tiene la posibilidad de

modificarlo y hacerlo a su medida, pero además

tratar de ganarme a los alumnos con clases más

didácticas.

En la actualidad hay jóvenes que son un

tanto reacios a comenzar a usar Software

Libre ¿Sus alumnos se mostraron de esa

forma?

Creo que existe una gran cantidad de jóvenes y

nosotros mismos, que nos gustan las cosas sencillas

y creemos que éstas son aquellas que son más

usadas, pero fíjate en algo, en la medida que tú

encuentres a alguien que te explique cuán fácil

puede llegar a ser algo, es fácil que pueda ser

adoptado por los alumnos; en la medida que el

alumno pueda entender que un software es un

instrumento de ayuda y que sepa valorar no la

arquitectura sino el resultado que se puede obtener

con él, creo que puede entender que en realidad es

una herramienta y no algo que solo llene su vista.

Yo no he encontrado alumnos reacios, por ejemplo

en esa asignatura que te he mencionado que he

dictado, también les hice mención de software de

pago como MatLab o Maple, no les cerré la visión

sino más bien les abrí el abánico para que ellos

puedan ver la diferencia entre estos software.

Al momento de trabajar con la imprenta ¿no

tuvo ningún problema con el formato libre?

El primer libro que escribí lo hice con Scribus, esta

herramienta nos sirve para maquetear pero al

momento que uno lo manda a la imprenta se envía

en pdf.

Para finalizar, usted nos ha mencionado su

tercer libro ¿Algún adelanto que nos pueda

dar sobre éste? y ¿Dónde podemos comprar

su segundo Libro?

Mi segundo libro lo pueden adquirir a través de

Amazon.com y bueno, sobre mi tercer libro les

puedo decir que en él hablaré sobre la iluminación,

cómo es que influye en las personas, y el uso de los

artefactos eléctricos.

Ingeniero Pedro Luis Rojas Vera, docente universitario USAT.

DATOS:

­ El libro se puede adquirir en Amazon:

http://www.amazon.com/dp/B00DB2GI8M

­ También puedes visita el sitio web del autor:

http://www.diagramasunifilares.info

www.eticagnu.org Julio 2013 eGNUX 18

Page 19: eGNUX #06

Celebrando juntos el tercer aniversario EtiCA: Degui, Guadalupe Lip, Angel Quiroz y Luis vargas.

Pdta. Guadalupe Lip Curo, partiendo la torta EtiCA.Con torta y champagne celebramos el tercer

aniversario EtiCA.

www.eticagnu.org Julio 2013 eGNUX 19

Page 20: eGNUX #06

Algo de Historia en metodologías ágiles y contexto

TDD y BDD

Cuando inicie con el tema de desarrollo de software a

través de metodologías ágiles, obviamente con una

formación clásica en programación e ingeniería del

software, me surgieron varias preguntas, tales como;

¿Las metodologías ágiles realmente consideran la

ingeniería del software importante?, otra pregunta muy

parecida es ¿una cosa es la manera en que realizó

iteraciones en el equipo de trabajo, pero la ingeniería del

software donde queda?, ¿Es cierto que las metodologías

ágiles me ahorran mucho tiempo en documentación,

junto con la estructura de un software más entendible y

escalable, pero de qué manera? entre otras preguntas

muy parecidas y buscando cual era realmente la utilidad

en la construcción de código, rápidamente y de calidad.

Dentro de mi investigación encuentro interesantes

prácticas como TDD (Test Driven Development) y una

evolución, bastante importante y que aporta demasiado

al ecosistema de desarrollo, llamada BDD (Behaviour

Driven Development) que en un momento hablaré de

qué tratan estas espectaculares “herramientas”

enfocadas a buenas prácticas, predictivas, de la

construcción de software, y que responde de cierto

modo, una de mis preguntas; realmente si existe

ingeniería del software en la aplicación del paradigma

ágil.

Tal vez esté leyendo una persona nueva en el mundo del

desarrollo e incluso el desarrollo ágil, o hasta un

experto, en todo caso a manera informativa y de

análisis, propio o en grupo, las siguientes tablas (Tabla

11 y Tabla 22) como referencia, para entrar en contexto y

relacionar metodologías ágiles contra

tradicionales, de las más importantes y

usadas, aportando un marco de

referencia para continuar con el

artículo:

Luego de tener un par de referentes

con respecto a las metodologías ágiles,

las comparaciones de características y

que tanto comportamiento flexible

tienen entre ellas, continuamos

relacionando TDD y luego BDD.

¡Ahora si! ¿qué es TDD? según la

Agile Alliance1 que es el ente que

analiza y explora los principios

ágiles, la define como:

“...un estilo de programación en el que

tres actividades están estrechamente

entrelazadas: codificación, pruebas ­

en forma de pruebas unitarias (Unit

Test) ­ y diseño ­ en forma de

refactorización (Refactoring) ­.”

Metodología Ágil Metodología Tradicional

Pocos Artefactos. El modelado es

prescindible, modelos desechables.

Más Artefactos. El modelado es esencial,

mantenimiento de modelos

Pocos Roles, más genéricos y flexibles Más Roles, más específicos

No existe un contrato tradicional, debe

ser bastante flexibleExiste un contrato prefijado

Cliente es parte del equipo de desarrollo

(además in­situ)

El cliente interactúa con el equipo de

desarrollo mediante reuniones

Orientada a proyectos pequeños. Corta

duración (o entregas frecuentes), equipos

pequeños (< 10 integrantes) y

trabajando en el mismo sitio

Aplicables a proyectos de cualquier

tamaño, pero suelen ser especialmente

efectivas/usadas en proyectos grandes y

con equipos posiblemente dispersos

La arquitectura se va definiendo y

mejorando a lo largo del proyectoSe promueve que la arquitectura se

define tempranamente en el proyecto

Énfasis en los aspectos humanos: el

individuo y el trabajo en equipo

Énfasis en la definición del proceso:

roles, actividades y artefactos

Basadas en heurísticas provenientes de

prácticas de producción de código

Basadas en normas provenientes de

estándares seguidos por el entorno de

desarrollo

Se esperan cambios durante el proyecto Se espera que no ocurran cambios de

gran impacto durante el proyecto

1. Diferencia entre metodologias tradicionales y agiles

http://arevalomaria.wordpress.com/2011/11/15/diferencias­entre­metodologias­

tradicionales­y­agiles­metodologiasagiles/

2. Highsmith, J. "Agile Software Development Ecosystems". Addison­Wesley. 2002

3. agilealliance.org

Tabla 1. Diferencias entre metodologías ágiles y no ágiles (generalmente clásicas)

Por Alejandro Romero Triana

@alejo8591

www.eticagnu.org Julio 2013 eGNUX 20

Page 21: eGNUX #06

Pero cuáles son esas ventajas que ofrece esta técnica

que incluso Kent Beck uno de los padres de XP

(implementa TDD) asegura que son posibles los

siguientes logros:

­ La calidad del software aumenta (con el tiempo y la

experiencia es exponencial).

­ Conseguimos código altamente reutilizable.

­ El trabajo en equipo se hace más fácil, une a las

personas.

­ Nos permite confiar en nuestros compañeros aunque

tengan menos experiencia.

­ Multiplica la comunicación entre los miembros del

equipo.

­ Las personas encargadas de la garantía de calidad

adquieren un rol más inteligente e interesante.

­ Escribir el ejemplo (test) antes que el código nos obliga

a escribir el mínimo de funcionalidad necesaria, evitando

sobrediseñar.

­ Cuando revisamos un proyecto desarrollado mediante

TDD, nos damos cuenta de que los tests son la mejor

documentación técnica que podemos consultar a la hora de

entender qué misión cumple cada pieza del rompecabezas

(puzzle).

En conclusión a grandes rasgos con respecto a TDD,

porque puede ser tema de artículos y libros, le permite a

los desarrolladores, pensar

con claridad acerca de las

especificaciones antes de que

sus mentes se encuentren

nubladas con los detalles de la

implementación. También

asegura que las pruebas se

escriban siempre, lo que es

demasiado útil.

¿Pero BDD, que tiene que

ver en todo esto?, ¡mucho!

pues de nuevo cito como

referencia la Software

Alliance, quien la define

como:

“... BDD (Behaviour Driven Development) es una síntesis

y el perfeccionamiento de las prácticas derivadas de TDD

(Test Driven Development) y ATDD (Test Driven

Development aceptación).”

Aquí encontramos un término nuevo, ATDD; es una

práctica igualmente derivada de TDD, y consiste en el

uso de las pruebas de aceptación automatizadas con la

restricción adicional de que estas pruebas pueden

escribirse antes de la aplicación correspondiente.

Por otro lado BDD tiene unas características propias

como:

­ Pensar "de afuera hacia adentro", es decir

implementar sólo aquellos comportamientos que

contribuyen más directamente a los resultados del

negocio, así como para minimizar el desperdicio en

tiempo.

­ Describir los comportamientos en una única

notación que pueden acceder directamente los expertos

de dominio o en algunos casos conocidos como

arquitectos de software, testers y desarrolladores, con el

fin de mejorar la comunicación en el equipo de trabajo.

Teniendo en cuenta todos estos conceptos y un poco de

historia que abre el panorama de la importancia en

buenas prácticas para desarrollo de software; aquí viene

lo que realmente nos interesa, vamos a trabajar en gran

medida con BDD ¿Por qué?, la respuesta es con base al

artículo de Dan North llamado “Introducing BDD”,

donde le ocurre la misma sensación que tuve cuando

inicie, y posteriormente avance con TDD:

Sistema como algo

cambiante

Colaboración

Resultados

Simplicidad

Adaptabilidad

Excelencia técnica

Prácticas de

colaboración

Media CM

Media Total

CMM

1

2

2

1

2

4

2

2.2

1.7

ASD

5

5

5

4

5

3

5

4.4

4.8

Crystal

4

5

5

4

5

3

5

4.4

4.5

DSDM

3

4

4

3

3

4

4

3.6

3.6

FDD

3

4

4

5

3

4

3

3.8

3.6

LD

4

4

4

3

4

4

3

3.6

3.9

Scrum

5

5

5

5

4

3

4

4.2

4.7

XP

5

5

5

5

3

4

5

4.4

4.8

Tabla 2. Ranking de metodologías ágiles (Los valores más altos representan una mayor agilidad)

www.eticagnu.org Julio 2013 eGNUX 21

Page 22: eGNUX #06

“...Cuanto más avanzo con TDD, más me doy cuenta que

mi aprendizaje del mismo ha sido caracterizado por

entrar y salir en callejones sin salida. Me he preguntado

a mí mismo “¿por qué nadie me dio la solución antes?”

muchas más veces que lo que he pensado “se abrió una

puerta”. Y siempre pensé que debería existir una forma

de presentar TDD en la cual se pueda acceder a lo bueno

sin tener que pasar por todos los malos momentos.”

El interés del presente escrito no es desprestigiar TDD o

algo por el estilo, al contrario es entender que sirve

como marco de referencia y que gracias a él conocimos

una evolución para quienes trabajamos a diario con

desarrollo de software a través de metodologías ágiles.

Para empezar a entender cómo nos puede ayudar BDD,

vamos a tomar el típico ejemplo de la calculadora, y

como la idea de BDD es llegar al nivel de tarea más bajo

de nuestro desarrollo, algo así como cuando se modela

con metodologías clásicas, por nombrar alguna como

RUP (Rational Unified Process) utilizando UML (Unified

Modeling Language), siendo esto un ejemplo literal,

tenemos una serie de diagramas que construir antes de

iniciar con el desarrollo formal de mi aplicación, entre

ellos podría ser los “Casos de Uso”, “Diagrama de

Clases”, “Diagrama de Secuencias”, “Diagrama de

Objetos” entre otros y por nombrar algunos; esto con el

fin de “modelar” mi aplicación sin tener en cuenta hasta

el momento posibles comportamientos, propios de las

características que puedan llegar a tener mis “objetos”

en el proceso de codificación.

En el mismo caso y resuelto con BDD se dividiría con los

“User Story” que no son más sino una escueta

representación de los requisitos de mi desarrollo. Por

ejemplo trabajaremos la suma o adición, usted empieza

con varios supuestos como: debe ser capaz de sumar o

adicionar números enteros positivos. Debe ser capaz de

sumar o adicionar números enteros negativos. Debe ser

capaz de sumar números decimales, y no sólo enteros,

adicional puede pensar en muchas maneras diferentes

con respecto a las funciones que debe cumplir la

calculadora en el proceso de suma o adición.

Antes de que hayas escrito nada del código, ya sabes

cómo desea que se comporte, pero no ha escrito

extensos documentos con estos mismos supuesto lo que

le lleva a un ahorro de tiempo interesante. Usted inicio y

escribió parte del código para suma o adición teniendo

en cuenta los supuestos anteriormente analizados y

realiza los “tests” correspondientes a sumar 2 y 2, ­5 y 4,

8 y 0, 1.2 y 3.4544, 4 y ­4 entre otras pruebas que usted

puede tener en cuenta. Al ejecutarlas, usted puede

obtener que la operación se llevó a cabo y es correcta

(que funciona de acuerdo con la especificación) o que

realmente no es correcta (no cumple con la

especificación requerida).

Si ha ejecutado todas las pruebas y arrojó el sistema que

es correcta cada una, entonces usted puede estar seguro

de que la calculadora con respecto a la suma o adición

funciona y esta lista para implementar. De los contrario

si ejecuta estas pruebas y arroja algunas fallas, entonces

usted sabe que la calculadora para sumar o adicionar no

funciona. Esto ocurre para todas y cada una de las

funciones que implemente la calculadora: resta,

multiplicación, división entre otras dependiendo de la

necesidad, pero los test dependiendo la especificación de

funcionalidades debe probarse por los test.

En este punto es donde entran las herramientas con las

cuales construiremos nuestro ejemplo y al mismo tiempo

aplicando BDD para Javascript con Software Libre a

través de Node.JS4 y Jasmine5. Algunos de ustedes ya

conocerán Node.JS y el auge que tiene en este momento

para construcción de aplicaciones ágiles que incluso

funcionan muy bien en los entornos de emprendimiento

y startups, tema que le invito a ampliar y leer en

anteriores ediciones de eGNUX6 pues es abordado con

más rigor. Adicional a esto en Github encuentra el

repositorio con los ejercicios del artículo llamado egnux­

jasmine7.

... La segunda parte de este artículo, continuará

en la siguiente edición de su revista eGNUX.

4. http://nodejs.org/

5. http://pivotal.github.io/jasmine/

6. http://eticagnu.org/egnux/

7. https://github.com/alejo8591/egnux­jasmine

www.eticagnu.org Julio 2013 eGNUX 22

Page 23: eGNUX #06

“¿Cómo empezar a DesarrollarAplicaciones Android?”

Android es un sistema operativo basado en

Linux (esto lo hace súper interesante) diseñado

originalmente para dispositivos móviles, tales

como teléfonos inteligentes (Smartphone).

Hablar, leer, escuchar de Android es hablar de

GOOGLE que es propietaria de la patente del

sistema operativo. Android fue presentado el

2007 junto a la fundación del Open Handset

Alliance: un consorcio de compañías de

hardware, software y telecomunicaciones para

avanzar en los estándares abiertos de los

dispositivos móviles. El primer móvil con el

sistema operativo Android fue el HTC Dream y

se vendió en octubre del 2008.

Para poder desarrollar, es decir programar

aplicaciones nativas para Android (aplicaciones

nativas son aquellas aplicaciones que se

instalan en el propio dispositivo y tiene una

extensión .apk), necesitamos conocer las

siguientes herramientas:

• Android SDK, que es el Software

Development Kit. Este nos

proporcionará el conjunto de

herramientas y librerías que permiten

construir nuestras aplicaciones

móviles.

• Android Developer Studio, se trata del

entorno integrado de desarrollo para

aplicaciones Android. También existe

un plugin para eclipse IDE y para

Netbeans.

• Emulador, es el elemento que nos

permite probar nuestras aplicaciones

(también puedes hacerlo en un

Smartphone o en una tablet usando la

conexión usb). Es similar a una

maquina virtual, se simula el

funcionamiento del sistema operativo

Android.

• Lenguaje de Programación, el lenguaje

de programación que se necesita

conocer para desarrollar aplicaciones

en Android, es JAVA. Se usa

programación orientada a objetos,

polimorfismo, editores de interfaces

graficas, archivos xml. Es posible

desarrollar aplicaciones híbridas para

Android desde otra plataformas como

HTML5 y CSS, PHP o Python, pero el

desarrollo nativo es y será sobre Java.

• Hardware, es bueno recalcar que para

lanzar adecuadamente el emulador de

Android en el sistema operativo que

haya elegido como plataforma de

desarrollo, necesitará de buena

cantidad de memoria para su trabajo.

Mínimo 6 GB de RAM es

recomendada.

“Arquitectura de Android”

La arquitectura de ANDROID se encuentra

formada por varias capas que facilitan al

desarrollador la creación de aplicaciones.

Además, esta distribución le permite al

desarrollador acceder a las capas más bajas

mediante el uso de librerías para que no tenga

que programar a bajo nivel las funcionalidades

necesarias para que una aplicación haga uso de

los componentes de hardware de los teléfonos.

Cada una de las capas utiliza elementos de la

capa inferior para realizar sus funciones, es por

ello que a este tipo de arquitectura se le conoce

también como pila. Se muestra un gráfico que

esquematiza este modelo.

Por José Burgarín

[email protected]

@jlbugarin

www.eticagnu.org Julio 2013 eGNUX 23

Page 24: eGNUX #06

Kernel de Linux. Como ya señalamos

anteriormente el núcleo de Android está

basado en el kernel de Linux versión 2.6, muy

idéntico al que encontrarás en una distro como

Ubuntu y otras, simplemente adaptado a su

ejecución en dispositivos móviles. Este se

comporta como un elemento de abstracción

entre el hardware, ya que gestiona los diversos

recursos del teléfono y el resto de las capas de

la arquitectura, ya que gestiona los procesos,

elementos de comunicación entre otros.

Librerías. Se constituyen en la segunda capa

de la arquitectura y se ubica sobre el kernel

constituida de las bibliotecas nativas Android.

Éstas se encuentran desarrolladas en C o C++

y compiladas para la arquitectura hardware

específica del teléfono. El objetivo de las

librerías es proporcionar funcionalidad a las

aplicaciones para tareas que se repiten con

frecuencia, evitando tener que codificarlas

cada vez y garantizando que se llevan a cabo

de la forma “más eficiente” y

“transparentemente posible".

Entre las librerías incluidas habitualmente

encontramos OpenGL (motor gráfico),

Bibliotecas multimedia (formatos de audio,

imagen y video), Webkit (navegador), SSL

(cifrado de comunicaciones), FreeType

(fuentes de texto), SQLite (base de datos),

entre otras.

Runtime. Se encuentra

formado por librerías, ya

que no se trata de una capa

propiamente dicha, Aquí

encontramos las librerías

con la funcionalidades

habituales de Java así como

otras específicas de Android.

El componente principal es

la máquina virtual Dalvik.

Esta máquina virtual ejecuta

las aplicaciones codificadas

en Java y compiladas

posteriormente en formato

.dex. Dalvik es una variación

de la máquina virtual de

Java y no es compatible con

el bytecode de Java.

Framework de aplicaciones. Se encuentra

formada por todas las clases y servicios que

utilizan directamente las aplicaciones para

realizar sus funciones. Proporciona una

plataforma abierta para el desarrollo que

permite la reutilización de componentes. A

través de este Framework se puede acceder a

los dispositivos, información de ubicación,

ejecutar servicios, etc. Aquí podemos

encontrar:

•Activity Manager

•Windows Manager

•Content Provider

•View

•Notification Manager

•Package Manager

•Telephony Manager

•Resource Manager

•Location Manager

•Sensor Manager

•Cámara y Multimedia

Figura 1. Arquitectura Android.

www.eticagnu.org Julio 2013 eGNUX 24

Page 25: eGNUX #06

Aplicaciones. En esta capa se encuentran todas

las aplicaciones del dispositivo, tanto las que

tienen interfaz de usuario como las que no, las

nativas y las administradas, las que vienen

preinstaladas en el dispositivo y aquellas que el

usuario ha instalado.

En esta capa encontramos también la

aplicación principal del sistema: Inicio (Home)

o lanzador (launcher), porque es la que

permite ejecutar otras aplicaciones mediante

una lista y mostrando diferentes escritorios

donde se pueden colocar accesos directos a

aplicaciones o incluso widgets, que son

también aplicaciones de esta capa.

“El Play de Google”

Se trata de la tienda de software en línea de

Google para Android. Permite a los usuarios

descargar aplicaciones para sus dispositivos,

sean gratuitas o de pago y a los desarrolladores

contar con una plataforma para publicar sus

proyectos. Ha superado la cifra de 700,000 app

disponibles. Su ejecutable se llama

Vending.apk

El registro para desarrolladores cuesta $ 25.00

donde los mismos reciben 70% de las ventas

generadas de sus aplicaciones cargadas en la

plataforma.

“Estructura de Aplicación Android"

Toda aplicación para Android sigue una misma

estructura básica que se compone de los

siguientes elementos:

­ Directorio SRC: Se encuentra toda la lógica

de aplicación, todas las clases programadas en

JAVA. Dentro de ella puedes definir distintos

paquetes, donde puedes dividir en capas tus

reglas de negocio.

­ Android Library: Se encuentran todas las

librerías propias del SDK de Android,

dependiendo la versión elegida al crear el

proyecto tendrá una versión u otra.

­ Directorios RES: Se encuentran todos los

archivos con los recursos que usan la

aplicación; las imágenes, archivos de idiomas,

estilos, etc:

• Drawable, es el directorio con todas

las imágenes de la app.

• Directorio layout, es donde se

encuentran las distintas “pantallas”

de la aplicación, es decir, los archivos

xml con las interfaces visual asociadas

a las activities.

• Values, es el directorio con los xml de

contenido de la app.

­ Directorio Bin: Se encuentran todos los

archivos generados por la propia app.

­ Directorio Gen: En esta carpeta esta el

archivo R.class, éste contiene lo identificadores

los recursos usados por tu proyecto: imágenes,

layout, etc...

­ Directorio Assests: Es el directorio donde se

encuentran los archivos auxiliares de tu

aplicación: imágenes, audios, vídeos...

­ Directorio Lib: Es el directorio donde se

encuentran las librerías externas importados

que necesites.

­ Android Manifest: Es el archivo básico de

configuración de toda aplicación Android. En

él se definen todas las activities de la app, sus

permisos, etc...

Es posible encontrar mayor información,

videotutoriales y cursos libres en la dirección:

http://www.consultorjava.com

www.eticagnu.org Julio 2013 eGNUX 25

Page 26: eGNUX #06

MMoozziillllaa,, pprrooppoonnee oottrraa ffoorrmmaa ddee ccoommppaarrttiirr nnuueessttrrooss iinntteerreesseess eenn IInntteerrnneett..

Cuando Mozilla dice que quiere cambiar la web, lo dice muy en serio. La última iniciativa es una nueva

propuesta para compartir nuestros intereses con los anunciantes y los sitios web que visitamos. Ahora

mismo, esos intereses no los compartimos explícitamente sino que se obtienen analizando las páginas que

visitamos y “siguiendo” nuestros pasos de navegación.

Lo que Mozilla propone es darle al navegador la posibilidad de transmitir esos intereses a las páginas web,

todo bajo nuestro control. Firefox analizaría nuestro historial de navegación extrayendo nuestros intereses.

Después podríamos compartirlos (si queremos) con ciertas páginas web para tener una experiencia

personalizada. De esta forma, nuestro historial seguiría siendo privado y tampoco tendríamos que

conectarnos con Facebook u otras redes sociales.

Fuente: www.genbeta.com

UUnn SSooffttwwaarree LLiibbrree ppaarraa qquuee hhiijjooss yy ppaaddrreess pprrooggrraammeenn ssuuss pprrooppiiooss vviiddeeoojjuueeggooss..

El software Pilas­engine (http://pilas­engine.com.ar) es una herramienta sencilla y potente pensada

especialmente para que chicos y padres aprendan juntos a programar videojuegos y así convertirse en

verdaderos desarrolladores de software. Este proyecto está creado por la cooperativa de software libre

Gcoop y está integrado a Huayra, el sistema operativo de Conectar Igualdad.

La idea principal es presentar diferentes juegos y desafíos para aprender, de a poco, a programar. No se

necesita ningún conocimiento de computación previo ni manejar el idioma inglés: este motor utiliza el

español en todos sus contenidos: software, manuales, juegos y tutoriales. Así, jugando, y paso a paso, los

usuarios podrán crear sus propios videojuegos.

Fuente: www.conectarigualdad.gob.ar

AAnnddrrooiidd ssiigguuee lliiddeerraannddoo eell mmeerrccaaddoo ddee ttaabblleettaass dduurraannttee eell sseegguunnddoo ttrriimmeessttrree ddeell 22001133.

En los últimos meses hemos hablado mucho de la caída en la venta de PCs y cómo ha aumentado la

venta de dispositivos Post­PC, es decir, tabletas y smartphones. De hecho, aunque sea un tema que

genera bastante controversia, las proyecciones de ventas indican que en 2017 se venderán 6 tabletas

por cada PC vendido; un dato que creo que nos da una buena foto de cómo han cambiado nuestros

hábitos de acceso a la información.

Fuente: Planetubuntu.es

www.eticagnu.org Julio 2013 eGNUX 26

Page 27: eGNUX #06