Post on 12-Jun-2015
description
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:
Email:
Twitter:
Guadalupe Lip Curo.
Gustavo Tompasca Panta.
egnux@eticagnu.org
Guadalupe Lip Curo.
Gustavo Fernandez Chavez.
Angel Quiroz Campos.
José Damián Samamé.
Gustavo Tomapasca Panta.
www.eticagnu.org
egnux@eticagnu.org
@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
gtlipcuro@gmail.com
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
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: jlbugarin@gmail.com / jlbugarin@iluminatic.com
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: emalca@gmail.com / emalca@iluminatic.com
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
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:
#aptget 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
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
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
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
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 Fdroid
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, Fdroid 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.
FDroid
www.eticagnu.org Julio 2013 eGNUX 10
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
¿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
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.
emalca@gmail.com
@emalca
www.eticagnu.org Julio 2013 eGNUX 13
• Acceso encriptado vía SSL
• Actualización InSITU 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
(dependiendo del
tipo)
Máximo número
de índices por tablaIlimitado
www.eticagnu.org Julio 2013 eGNUX 14
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
beneficiorendimiento 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
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
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
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
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
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 insitu)
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/diferenciasentremetodologias
tradicionalesyagilesmetodologiasagiles/
2. Highsmith, J. "Agile Software Development Ecosystems". AddisonWesley. 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
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
“...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/egnuxjasmine
www.eticagnu.org Julio 2013 eGNUX 22
“¿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
jlbugarin@gmail.com
@jlbugarin
www.eticagnu.org Julio 2013 eGNUX 23
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
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
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 Pilasengine (http://pilasengine.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 PostPC, 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