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...
06 Herramientas de monitoreo
en Sistemas GNU/Linux.
Existen algunas herramientas que los
administradores de sistemas utili...
JOSÉ LUIS
BUGARÍN PECHE
CEO de ILUMINATIC SAC. Analista del Grupo Romero.
Docente Universitario UPC en el Programa EPE.
Em...
Existen algunas herramientas que los
administradores de sistemas utilizan
frecuentemente para monitorizar la actividad
de ...
Ejecutando sólo el comando sar, obtenemos
como resultado la información de la actividad
del procesador de la máquina, en e...
se muestra en la Figura 3. En donde podemos
observar que la información mostrada en las
columnas rtps y wtps, nos detallan...
Y aquí estamos de nuevo con
este espacio para hablar un
poco acerca del software libre
y de cómo se va introduciendo
poco ...
un poquito más en Replicant
un dato más relevante es que,
así como Android nos
proporciona la popular Play
Store, Replican...
EtiCA está próximo a cumplir tres
años ¿Desde cuándo eres miembro de
la asociación y por qué decidiste
pertenecer a ella?
...
¿Cuáles son las expectativas que
tienes para la comunidad durante
este año de gestión?
Pues espero poder firmar un conveni...
En la actualidad, vivimos tiempos de
constantes cambios: económicos, políticos,
sociales, culturales, etc. Todo el panoram...
• Acceso encriptado vía SSL
• Actualización In­SITU integrada
• Documentación completa
• Multiplataforma para Linux, Unix ...
institución implementados haciendo uso
de PostgreSQL v 8.1 y superior, incluyendo
los sistemas de información del SINACYT
...
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ánic...
y de tu convivencia con ello para que finalmente lo
termines entregando en un reporte escrito que no
es otra cosa que conv...
escondido en algunas asignaturas que las
ingenierías llevan en los primeros ciclos, pero
además se debe incluir el tema de...
Celebrando juntos el tercer aniversario EtiCA: Degui, Guadalupe Lip, Angel Quiroz y Luis vargas.
Pdta. Guadalupe Lip Curo,...
Algo de Historia en metodologías ágiles y contexto
TDD y BDD
Cuando inicie con el tema de desarrollo de software a
través ...
Pero cuáles son esas ventajas que ofrece esta técnica
que incluso Kent Beck uno de los padres de XP
(implementa TDD) asegu...
“...Cuanto más avanzo con TDD, más me doy cuenta que
mi aprendizaje del mismo ha sido caracterizado por
entrar y salir en ...
“¿Cómo empezar a Desarrollar
Aplicaciones Android?”
Android es un sistema operativo basado en
Linux (esto lo hace súper in...
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
i...
Aplicaciones. En esta capa se encuentran todas
las aplicaciones del dispositivo, tanto las que
tienen interfaz de usuario ...
MMoozziillllaa,, pprrooppoonnee oottrraa ffoorrmmaa ddee ccoommppaarrttiirr nnuueessttrrooss iinntteerreesseess eenn IInnt...
eGNUX #06
eGNUX #06
eGNUX #06
Upcoming SlideShare
Loading in …5
×

eGNUX #06

1,052 views

Published on

Revista virtual eGNUX #06

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,052
On SlideShare
0
From Embeds
0
Number of Embeds
424
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

eGNUX #06

  1. 1. 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. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. EtiCA está próximo a cumplir tres años ¿Desde cuándo eres miembro de la asociación y por qué decidiste pertenecer 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 como asociada cuáles han sido las funciones que has desempeñado dentro 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ál es tu principal compromiso que has asumido con la asociación y los asociados. 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
  10. 10. ¿Cuáles son las expectativas que tienes para la comunidad durante este 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 tiene pensado la asociación realizar en lo que le resta de este año, y cómo se está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 la dirección de la revista eGNUX. ¿Cuál ha sido tu experiencia en esta área? Y ¿Cómo pueden participar otras personas 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 la cultura del Software Libre entre los estudiantes 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 este tercer 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
  11. 11. 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
  12. 12. • 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 con PostgreSQL?” 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 tabla 32 TB Máximo tamaño de fila 1.6 TB Máximo tamaño de campo 1 GB Máximo número de filas por tabla Ilimitado Máximo número de columnas por tabla 350 ­ 1600 (dependien­do del tipo) Máximo número de índices por tabla Ilimitado www.eticagnu.org Julio 2013 eGNUX 14
  13. 13. 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
  14. 14. 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 del libro: "4 Principios para Construir Diagramas Unifilares", nos cuenta su experiencia con el uso del Software Libre para producir su libro e impartir a sus alumnos sus conocimientos con estas herramientas libres. www.eticagnu.org Julio 2013 eGNUX 16
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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 flexible Existe 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 proyecto Se 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
  19. 19. 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
  20. 20. “...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
  21. 21. “¿Cómo empezar a Desarrollar Aplicaciones 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
  22. 22. 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
  23. 23. 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
  24. 24. 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

×