El desarrollo de las ciencias de la computación y de las grandes empresas de tecnología durante la era de la información se ha visto impulsado y fortalecido a través de grandes eventos que buscan reunir a personas que desean ser parte del desarrollo tecnológico de la humanidad. Grandes empresas como Microsoft, Oracle, Cisco y otras, realizan eventos periódicos para dar a conocer sus nuevos productos, las tendencias del mercado, nuevas tecnologías y oportunidades de emprendimiento y de negocios. Al nivel públicogubernamental, también se realizan esfuerzos por impulsar eventos académicos donde la tecnología y el desarrollo digital figuran como oportunidades de crecimiento y de creación de nuevos espacios de trabajo para las naciones. En Guatemala, existe desde hace 15 años el Congreso de Estudiantes de Ciencias y Sistemas (COECYS) que busca dos objetivos principales: • Integrar a Centro América para desarrollar tecnología de forma regional y que pueda competir a nivel global. • Fortalecer los lazos entre la academia, la industria y el estado para que sean el pilar del desarrollo tecnológico de la región. Todo estudiante, profesional, empresa o institución pública que participa en el Congreso de Estudiantes de Ciencias y Sistemas tiene la oportunidad de compartir con personas que comparten cultura, idioma y pasión por la tecnología para buscar soluciones innovadoras a problemas regionales, además, de iniciar vínculos y contactos que permitirán crear valor intelectual e ideológico en el que todos ganan. Las empresas privadas tienen la oportunidad de conocer y entender la visión académica, conocer profesores y estudiantes, problemas en la enseñanza de la tecnología y el acceso a recursos tecnológicos. Por su parte, los estudiantes y profesionales conocen la visión de la industria en el campo tecnológico, sus necesidades y requerimientos, las tecnologías y certificaciones que los acercarán a los sectores de la industria que son de su interés. Finalmente, el estado, entiende el comportamiento de un sector que puede impulsar la economía y el desarrollo de la nación a gran escala, permitiendo elevar el nivel de vida de sus ciudadanos, impulsar otras industrias importantes para el país como lo son el turismo y la agricultura, asegurar nuevos recursos para fortalecer los grandes problemas sociales como la salud, la seguridad, la transparencia y la educación. De esta forma, el gobierno puede impulsar leyes, programas y proyectos que permitan invertir los recursos del pueblo en un sector que realmente genere beneficios para la nación; y si además, todo esto se desarrolla en toda Centro América, se tiene la oportunidad de crear un mercado para la tecnología que sea amplio, nuevo y prometedor, que podría competir en Latino América y, posiblemente, en todo el mundo; se podría crear un modelo de desarrollo donde la tecnología impulsa sectores tradicionales y donde el talento de Centro América se une para resolver los problemas que por décadas han afectado la región. En este nuevo modelo, las empresas de desarrollo tecnológico puedan desarrollar proyectos junto a la academia, estos proyectos pueden convertirse en nuevos productos y servicios que se pueden aplicar tanto a nivel regional como latinoamericano y que deben enfocarse en resolver las principales necesidades de la sociedad, los distintos actores participan, aportan y obtienen beneficios que se convertirán en desarrollo que beneficiará a toda la población. La chispa para encender una cadena de progreso, desarrollo y bienestar para toda la sociedad puede nacer de un Congreso Estudiantil, donde el talento joven, la experiencia profesional, la visión empresarial y la buena voluntad de las autoridades de gobierno pueden combinarse y desarrollar este modelo, a partir del cual el futuro de las nuevas generaciones podrá ser más prometedor y esperanzador porque habrá más oportunidades, más igualdad y una cultura que fomente valores para forjar una sociedad pacífica y feliz. Director General
Marlon Pérez Türk
Ing. Marlon Antonio Pérez Türk
Director Escuela de Ingenieria en Ciencias y Sistemas
Coordinación Editorial Ricardo Morales Prado Redacción, diseño y diagramación Christian Ivan ChouJo Gálvez
Portada Equipo COECYS, Christian Ivan ChouJo Gálvez
OPINIÓN
03
DIDACTICA, MORAL Y ÉTICA DEL DOCENTE UNIVERSITARIO
TECNOLOGÍA
06
FPGA: "VERDADERO PARALELISMO" Pablo Abimael Ajtun Argueta
Luis Fernando De Paz Santizo
09 EMPRENDE UN FUTURO DIFERENTE, EL CAMBIO ESTÁ EN TI Jorge Mario Rubio Vidal
13
10 CONSEJOS PARA SER INGENIERO EN CIENCIAS Y SISTEMAS Y NO MORIR EN EL INTENTO
11
MANEJANDO TU PROPIA INFRAESTRUCTURA: DESPLEGANDO APLICACIONES CON DOCKER Andres Ixim Sebastian Oliva Casado
15
LENGUAJES FORMALES EN PROCESOS INDUSTRIALES Fabelio Estuardo Ajtún Bulux
Hector Vinicio Cabria Barrientos
17
COECYS UNA AVENTURA, DESAFÍO, EXPERIENCIA Luis Eduardo Paiz Girón
23
UNA BARRIGA POR CONOCIMIENTO Ángel Luis Chic Patzan
20
HERENCIA EN CÓDIGO DE 3 DIRECCIONES Diego Alejandro Ríos Sagastume
27
UN BREVE VISTAZO A LA PROGRAMACIÓN FUNCIONAL EN C# Eder Julián Chamalé Cifuentes
31
MAQUILAS DE DESARROLLO DE SOFTWARE Ángel Fernando Hernández Rodríguez
33
IMPORTANCIA DE ADMINISTRAR LA CONFIGURACIÓN Gepser Haroldo Hoil González
36
AVANCE DE LOS CYBORG EN INSECTOS
Comentarios y/o sugerencias
revista.ecys@gmail.com
José Francisco Rodas Véliz
Didáctica, moral y ética de docente universitario
La didáctica es uno de los temas más importantes en el ámbito educativo, pues por medio de este, se facilita el proceso de ensañanzaaprendizaje entre docente y estudiante. Tomando en cuenta la moral y ética que deben ser parte de la cultura de todo profesional, lo cual es carente en muchos casos. Student asking question teacher by www.audiolucistore it https://www.flickr.com/photos/audiolucistore/14163042905/ Attribution (http://creativecommons.org/license/by/2.0/) Photo Attribution by PhotoForClass
L u i s F e r n a n d o D e P a z S a n ti z o l u d e p s @g m a i l .c o m E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C
Palabras claves: Ética, moral, docente, enseñanza y aprendizaje
conocimientos sobre el planteamiento de su materia en el aula dando respuestas adecuadas a situaciones educativas. La didáctica, moral y ética del docente universitario La didáctica es la disciplina científicopedagógica que tiene como objeto de estudio, los procesos y elementos existentes en la enseñanza y el aprendizaje. Por tanto, es la parte de la pedagogía que se ocupa de las técnicas y métodos de enseñanza, destinados a plasmar en la realidad las pautas de las teorías pedagógicas.
Los principios éticos y morales del profesional docente deben ser bien cumplidos, atendiendo adecuadamente a cada una de las necesidades del estudiante. Exigiendo así, que el profesional docente conozca los métodos, procedimientos y materiales de enseñanza que favorezcan Díaz Barriga la define como: una disciplina teórica, histórica la continuidad al hecho educativo. y política. Tiene su propio carácter teórico porque responde La didáctica en el nivel universitario, tiene un buen enfoque a concepciones sobre la educación, sociedad, persona, respecto al tutor académico (auxiliar docente), no obstante, saber y la ciencia. Es histórica, ya que sus propuestas nuestra facultad exige actualmente profesionales docentes responden a momentos históricos específicos. Y es política cada día mejor preparados para que la enseñanza dé porque su propuesta está dentro de un proyecto social frutos. Se deben aplicar planes y programas de estudio con (Díaz Barriga, 1992:23). Cabe destacar que esta disciplina sentido completo, planteando así la necesidad de formar es la encargada de articular la teoría con la práctica. profesionales competentes, que además de ser buenos conocedores de su materia, sean capaces de transmitir
3
UNIVERSIDAD
DE
SAN CARLOS
DE
GUATEMALA ‐ FACULTAD
DE INGENIERÍA
Juan Amos Comenio fue quién acuñó la palabra didáctica en su obra "Didáctica Magna", desarrollada en 1657. Está vinculada con otras disciplinas pedagógicas como la organización escolar y la orientación educativa, la didáctica pretende realizar los fundamentos y regular los procesos de enseñanza y aprendizaje. La Universidad de San Carlos de Guatemala como institución estatal a favor del mejoramiento académico, se debe procurar un control más exhaustivo en lo que respecta a los catedráticos. En especial la Facultad de Ingeniería, ya que considero que tienen olvidado el por qué de los departamentos administrativos o las Escuelas porque se le ha otorgado todo el control al catedrático sin medida, dejando a los estudiantes a la disposición de los mismos. Esto da como resultado que el perfil del estudiante de ingeniería haya decaído por la poca entereza que demuestran nuestros catedráticos que han hecho un negocio de la enseñanza y no una disciplina respetada como solía serlo.
La educación universitaria exige una enseñanza integra y completa. Por tanto, el profesional docente debe determinar los objetivos, enfocados a provocar interés y entusiasmo de sus estudiantes, preparándose para lograr un proceso de formación con responsabilidad ética y moral. A mi criterio puedo destacar que en el área común de la Facultad de Ingeniería existen catedráticos que demuestran muchos más profesionalismo que los del área profesional de cada Escuela, aunque son contados los catedráticos que en lo personal despiertan el interés en cursos que por historia se cursan con temor o con una expectativa alta de dificultad como: Organización de lenguajes y computadoras 1, Redes de computadoras 1, entre otros. Por experiencia personal, me atrevo a decir que el entusiasmo y el interés para el estudiante logre captar el conocimiento han sido puntos clave. No quiero decir que traten al estudiante como una persona incapaz de entender temas complejos, sino que porque por más complejo que un tema sea este pueda ser entendido por la gran mayoría.
La mencionada evaluación periódica de catedrático en donde el estudiante es el encargado de dar su opinión a base de una seria de preguntas, para evaluar la imagen positiva o negativa del catedrático, pero como estudiante me permito decir que todo se convierte en pérdida de tiempo y esfuerzo, debido a que nunca existe una acción Tomando en cuenta que en ocasiones los métodos de palpable con respecto a las peticiones del estudiante. La enseñanza con los que se han regido las instituciones no es grandeza y el éxito no se miden con una posición sino con el mejor, los catedráticos deben tener cierta libertad para el conocimiento y la sabiduría para transmitir el mismo. impartir su catedra, porque no todos pueden expresar su conocimiento de la misma manera. Pero, si debe de existir La transparencia que un profesional debe demostrar deben el control de las actividades solicitadas al estudiante, para están fundamentadas desde su educación más básica, no mantener un buen nivel académico, no permitiendo las obstante, existen infinidad de factores por los cuales su interés en una catedra sea únicamente monetaria, he aquí faltas a la moral y ética de catedráticos. el por qué existe una brecha entre la ejecución correcta de Los contenidos del curso se cumplen regularmente, pero las una catedra y la ejecución por cumplir con un trabajo. notas no siempre son entregadas en el tiempo estipulado de 15 días luego de realizadas las pruebas o actividades, ¿Por qué este proceso no es más transparente y son públicos los resultados de todos los catedráticos? Además, punto que debería estar en la mira de la Escuela. deberían publicarse los resultados cada semestre, asi como Algunos catedráticos de la Escuela fallan constantemente las las acciones que se toman para aquellos quienes no en la asistencia del curso, quien debería informar su obtienen los mejores resultados. También sería una buena inasistencia con anticipación. ¿Dónde están las normas que forma para promover aquellos a los que los estudiantes han rigen al docente titular de una catedra? Es cierto que existe evaluado en forma positiva. una encuesta en donde los estudiantes contestan algunos puntos sobre didáctica y ética de los cursos. Pero, ¿existen En cuanto a la parte normativa, el Reglamento de la Carrera acciones basados en esa encuesta por parte de la Escuela? Universitaria indica: Nuestra Escuela debería preocuparse porque el tutor académico proporcione toda la información necesaria para el control de las actividades a realizar durante el semestre, complementando la enseñanza práctica con la teórica de la cual se encarga el catedrático.
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
4
Artículo 53. Los resultados de la evaluación del profesor universitario serán conocidos por la autoridad nominadora quien notificará al profesor dentro del primer trimestre del año siguiente. En caso de que dichas evaluaciones sean insatisfactorias, el profesor deberá buscar su capacitación para la corrección de los aspectos que en las mismas fuere deficiente, dentro de los programas de formación que ofrece la Universidad de San Carlos o fuera de ella. En este caso, la corrección de los aspectos insatisfactorios por medio de los programas mencionados tiene carácter de obligatorio.
En lo que respecta a los artículos antes citados, se mencionan ciertas sanciones a los catedráticos que incumplan con los mismos, como lo es en el artículo No. 53 que dice textualmente: “el profesor deberá buscar su capacitación para la corrección de los aspectos que en las mismas fuera deficiente, dentro de los programas de formación que ofrece la Universidad de San Carlos o fuera de ella”, en mi parecer el catedrático nunca tomará una decisión correctiva con su persona, he aquí donde el rol de la Escuela o la Facultad debe ejercer su mando y asignarle al mismo los lineamientos que debe cumplir para rectificar sus inconsistencias educativas.
Artículo 54. El profesor universitario que obtenga resultados insatisfactorios durante dos años consecutivos o en dos de CONCLUSIONES tres evaluaciones, queda sujeto al procedimiento Las medidas correctivas en función de la encuesta disciplinario establecido en este estatuto. realizada a los estudiantes no tienen un objetivo claro en Artículo 75. Los profesores sólo podrán ser destituidos de pro del bienestar estudiantil. De igual forma como al docente auxiliar se le imparten su puesto por justa causa debidamente comprobada. Son métodos para transmitir mejor el conocimiento, este debería causas justas, que facultan a la autoridad nominadora para de ser aplicado para los docentes de catedra para mejorar destituir de su puesto a un profesor, sin responsabilidad el aprendizaje del estudiante. para la Universidad de San Carlos de Guatemala, las El control de asistencia del catedrático en semestre, debe siguientes: 75.10. Cuando el profesor obtenga durante dos de ser tomado en cuenta al igual que se hace en curso de años consecutivos o en dos de tres en evaluaciones vacaciones, y tomar buenas medidas de control. insatisfactorias. REFERENCIAS
Luis A. Lira A. Didáctica Universitaria. http://www.monografias.com/trabajos40/didacticauniversitaria/didacticauniversitaria.shtml Wikispace. Como afecta la ética y la moral a los universitarios. http://documentodhtics.wikispaces.com/como+afecta+la+etica+y+la+moral+a+los+universitarios Departamento Evaluación y Promoción del Personal Académico. RECUPA. http://ddasfpu.usac.edu.gt/deppa/reglamentodelacarrerauniversitariaparteacademica/
5
UNIVERSIDAD
DE
SAN CARLOS
DE
GUATEMALA ‐ FACULTAD
DE INGENIERÍA
FPGA: “Verdadero paralelismo” Pablo Abimael Ajtun Argueta abimaelajtun@gmail.com E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C Palabras claves: FPGA, microprocesador, Hablar de FPGA (del inglés Field Programmable Gate Array) es hablar del verdadero procesamiento en paralelo y de cómo utilizando un lenguaje descriptor de hardware podemos sintetizar y configurar nuestro propio hardware, logrando de esta manera la creación de sistemas complejos.
Antes de empezar en el tema, es importante entender la tecnología FPGA. Un FPGA o Arreglo de Compuertas Programables en Campo, es un circuito integrado de silicio reprogramable, el cual utilizando un lenguaje descriptor de hardware, dentro de el se sintetizan las interconexiones, permitiendo que el mismo chip sea utilizado para múltiples funciones una y otra vez. En el siguiente articulo nos adentramos en su funcionamiento el cual es de gran importancia en las ciencias aplicadas, además, las ventajas que tienen sobre los microprocesadores.
Ventajas del FPGA sobre el microprocesador Un FPGA ofrece alta confiabilidad de una solución basada puramente en hardware, lo cual lo hace más óptimo en la ejecución de tareas especificas frente a soluciones que tratan de emular dicha funcionalidad como los microprocesadores.
Tal es la flexibilidad del FPGA, que nos permite la reconfiguración del hardware y la reprogramación del software en tiempo real, creando de esta manera sistemas La forma en cómo opera un FPGA, esta dado por tres complejos adaptables al entorno, contrario a los componentes básicos según lo define “National microprocesadores donde su arquitectura es cerrada y nos vemos limitados a los recursos e instrucciones previamente Instruments”: definidas por el fabricante. 1. Conjunto de bloques de lógica configurables, donde los bits son procesados para producir resultados En cuanto a la portabilidad, la tecnología FPGA provee al diseñador libertad en la arquitectura, es decir, que al programáticos. momento de vernos en la necesidad de más recursos, 2. Interconexiones programables que funcionan como una podemos migrarlo a dispositivos más grandes sin necesidad matriz de conmutación para rutear señales de un bloque de cambiar el diseño, ya sea de la misma familia o no. lógico a otro, además son usados para interconectar los Inclusive si fuere de otro fabricante, situación que con los microprocesadores sería imposible, porque en este caso su bloques de entrada y salida. kernel está amarrado a la arquitectura del mismo. 3. Bloques de entrada y salida para interactuar con el Una de las características más importantes, y la razón de exterior. este artículo, es el paralelismo, el cual es la capacidad de Con un FPGA, ya no hablamos solo de compilar código, ejecutar varios procesos de manera concurrente. El estamos hablando de sintetizar el código escrito en alto diseñador de un FPGA puede especificar cualquier cantidad nivel y plasmarlo en hardware configurable, que hace la de tareas que se ejecutaran como circuitos físicos en paralelo permitiendo que sean autónomos e independientes gran diferencia con los microprocesadores.
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
6
Los microprocesadores no cuentan con esta característica de forma nativa, lo que estos hacen es utilizar un complejo algoritmo de calendarización de tareas para lograr un seudo paralelismo, incluso con los nuevos sistemas multinúcleo. La limitante de un miprocesador está en la cantidad de instrucciones que puede ejecutar por ciclo de reloj, mientras que un FPGA pueden ejecutar instrucciones en paralelo de forma independiente a nivel de hardware. A continuación se muestra en distintas graficas el crecimiento de los Tiempos de desarrollo de un microprocesador vs un FPGA microprocesadores al lado de los FPGA’s, y el tiempo que lleva el diseño y construcción de las respectivas Aplicación de los FPGA’s en los sistemas actuales tecnologías. Sistemas de imágenes médicas, ya que con más frecuencia se emplean las FPGA’s para el tratamiento de imágenes biomédicas, imágenes tridimensionales etc. Y cada vez precisan de una mayor resolución tomadas en tiempo real. Tal es el caso de estudio en “El Laboratorio de Biomecánica Ortopédica en la Universidad de Florida”, en donde desarrollan programas y sistemas para entender y estudiar mejor el movimiento humano. Y uno de estos proyectos es un novel, el cual consiste en una plataforma utilizada para buscar imágenes quirúrgicas y caracterizar las propiedades Crecimiento del microprocesador vs FPGA mecánicas de la columna vertebral. Estas características, han sido de gran importancia en el mercado desplazando de esta manera sistemas con hardware personalizado basado en microprocesadores ya que estos se ven limitados frente a las demandas exigidas por dichos sistemas complejos. ¿En que se desarrolla? Como se había mencionado antes con un FPGA el Universidad de Florida desarrollador ya no compila su código sino sintetiza el http://sine.ni.com/cms/images/casestudies/uflaa.jpg?size código en hardware y para ello se ha desarrollado un Lenguaje Descriptor de Hardware entre los cuales se puede Sistemas de visión artificial: En la actualidad existen cada mencionar: Verylog, VHDL y ABEL. vez más dispositivos que cuentan con visión artificial como cámaras de vigilancia, robots, etc. Los cuales necesitan Estos lenguajes proporcionan una serie de instrucciones de constantemente conocer su posición y ubicación procesando alto nivel para realizarlas en el hardware a sintetizar. Entre gran cantidad de imágenes tomadas en tiempo real. Un los entornos de desarrollo más populares esta ISE Design ejemplo de eseto es el “Sistema de Visión WiseWELDING Suite desarrollado por Xilinx disponible para Windows y para Soldadura Robótica Adaptativa”, el cual es una Linux, el cual cuenta con un simulador incorporado llamado máquina con un sistema de visión 3D que adapta y corrige Isim, en donde podemos observar los resultados del sistema los caminos de soldadura, según la variación entre la antes de implementarlo en el FPGA físico. geometría de las partes, y estamos hablando de variaciones no mayores a 0.05 mm las cuales deben ser corregidas en tiempos de producción, basándose en las imágenes correspondientes.
7
UNIVERSIDAD
DE
SAN CARLOS
DE
GUATEMALA ‐ FACULTAD
DE INGENIERÍA
Radioastronomía: ciencia que se encarga de estudiar los fenómenos que ocurren en el espacio mediante la captación de radiación electromagnética procedente de este, ejemplo de esto es el experimento para “Establecer el tiempo de vida de un muon” en el cual se utilizaron FPGA’s para digitalizar los pulsos producidos por el fenómeno. En donde un pulso característico de las mediciones consistía en un conjunto de 16 bines, cada uno correspondiente a un intervalo de 25ns y se generaban archivos de una hora de duración en tres canales diferentes. Debido a estas aplicaciones de los FPGAs en sistemas complejos, el mercado para el 2010 se estimo en 2.75 billones de dólares, teniendo como principales proveedores a Xilinx y Altera, en una encuesta a diseñadores de sistemas embebidos realizada por UBM Electronics. Como aplicarlo en la carrera Como futuros innovadores, esta tecnología puede ser aplicada en la carrera en cursos como Arquitectura de Computadores y Ensambladores 2, enfocado a soluciones en sistemas de control y producción donde el objetivo sería introducir al estudiante a esta tecnología y sus ilimitadas aplicaciones.
CONCLUSIONES La adopción de la tecnología FPGA en el mundo tecnológico actual, nos empuja a nosotros los desarrolladores a llevar nuestro nivel de abstracción a otro nivel. La tecnología FPGA, nos lleva a pensar en el próximo salto de evolución tecnológica, los sistemas autónomos, en donde la única limitante sería su capacidad de adquirir recursos de hardware de forma independiente. La aplicación de FPGA’s a sistemas complejos continuaran desplazando a las tecnologías basadas en hardware personalizado como los microprocesadores, dejando a estos como sistemas secundarios para la realización de tareas mecánicas y repetitivas, un ejemplo claro son algunos routers que tienen un FPGA interno para realizar el ruteo dinámico de forma más eficiente. Vemos entonces como la síntesis de hardware permite que el paralelismo este en su máxima expresión optimizando de esta manera la ejecución de procesos.
REFERENCIAS Dylan McGrath ( 24 May. 2006). FPGA market to pass $2.7 Además, el nivel de abstracción para desarrollar en esta billion by ’10, InStat says (Revista Digital EE Times). tecnología va más allá sólo generar el código, se debe http://www.eetimes.com/document.asp?doc_id=1161569 contar con el conocimiento en software y hardware realizar (23 Mar. 2015). las interconexiones entre ambos para su correcto funcionamiento, como Ingenieros en Ciencias y Sistemas, Gustavo Valdés, Introducción al LabView FPGA (Webinar). abstracción no es una palabra desconocida para nosotros. https://ni.adobeconnect.com/p86343456/?launcher=false&fc sContent=true&pbMode=normal (23 Mar. 2015). En lo personal me llama bastante la atención esta tecnología, y con la ayuda de un compañero estudiante de Juan Carlos Téllez Mosqueda (Julio 2012). Estado de la Ingeniería Electrónica Haroldo López hemos desarrollado formación en sistemas embebidos ¿Se pueden crear sin un pequeño demo, a fin de ejemplificar de manera simple respaldo educativo y sin vinculación empresarial? (Infotec). las ventajas de un FPGA: "Manipulación de Dos Motores http://www.infotec.com.mx/work/models/infotec/Resource/60 DC de forma paralela usando un FPGA" 88/1/images/CT_no1.pdf (23 Mar. 2015). Video: http://www.youtube.com/watch?v=7IcHkZkdT5g Explicación: https://www.dropbox.com/s/9og7njkalwzcio0/Explicacion%2 0Demo.pdf?dl=0 Proyecto: https://github.com/haroldolopeziron/Paralelismo/tree/master/ ControlMotores/Paralelismo
Melisa Maidana & Viviana Villafañe (Noviembre 2011). Tiempo de vida medio del µ en agua. http://www.ib.cnea.gov.ar/~experim3/informes/2011info3.pdf (23 Mar. 2015). National Instruments Corporation, Áreas de aplicación de hardware FPGA . http://www.ni.com/fpga hardware/applications/esa/ (23 Mar. 2015).
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
8
Emprende un futuro diferente, el cambio está en ti
¿Qué significa ser Emprendedor (LIBRE)? bit.ly/1AekdlV
Jorge Mario Rubio Vidal jrrubio005@gmail.com Estudiante de Ingeniería en Ciencias y Sistemas USAC Palabras claves: Emprendimiento, innovación, desarrollo, cultura, ideas, visión, iniciativa, futuro, pymes
no expresamos nuestras ideas, nuestras excusas pueden ser por miedo al fracaso, porque la situación no es la idónea para desarrollarla, entre muchas otras que no mencionaré porque la lista es larga y el tiempo corto. Sin embargo, en un mundo globalizado en donde si no tomamos lo mejor de nosotros: conocimiento, habilidades, contactos, esfuerzo y tiempo, para empezar a forjar algo más trascendente que un producto o una marca. La cultura, que se define como el conjunto de conocimientos que nos permite formar y desarrollar un juicio crítico en base a los modos de vida, costumbres, y el grado en el que desarrollemos conocimiento artístico, científico e industrial.
Actualmente muchos de los profesionales en Guatemala nos educamos y salimos al mercado laboral con el objetivo de alcanzar un rango salarial aceptable, que nos permita obtener todo aquel bien material o no que nos permita sentirnos llenos. Si bien es cierto, el dicho: “No solo de pan vive el hombre”, trabajar para lograr un salario no es la única opción de salir a flote en la situación precaria que atravesamos como nación, donde la seguridad ciudadana, Si no generamos una cultura de emprendimiento bien justicia, libertad de expresión y las ofertas de empleo no son definida nos encontramos con problemas de liderazgo, comunicación, mala definición de los principios y valores de las mejores en la región centroamericana. que seguimos, un rumbo indefinido e incierto por falta de Tenemos dentro de todos nosotros un espíritu de libertad e objetivos claros, ¿dónde queremos estar? ¿qué buscamos innovación que nos lleva a alcanzar objetivos propios, esto, ser? Todo esto puede introducir el sentimiento más peligroso del emprendedor: “El fracaso”, eso que va es la esencia de un ser emprendedor. sofocando las ideas buscando acabar con las esperanzas Actualmente, en Guatemala existen muchas cosas para de éxito, prosperidad y superación personal. quejarnos, sin embargo, está en nosotros como profesionales o futuros profesionales el cambiar la situación Nosotros los guatemaltecos, debemos recordar que a pesar del país, esto no se consigue de la noche a la mañana de ser un país pequeño, con los índices de seguridad claro, pero debemos empezar lo antes posible. El problema ciudadana por los suelos, una economía que apenas sale a de nosotros los guatemaltecos radica principalmente en que flote, tenemos una chispa e ingenio que puede ser la
9
UNIVERSIDAD
DE
SAN CARLOS
DE
GUATEMALA ‐ FACULTAD
DE INGENIERÍA
envidia de muchos. En Guatemala han surgido productos que han llegado a ser referencias a nivel mundial como: la cajita feliz introducida y pensada en sus inicios por Yolanda Fernández de Cofiño en 1970, el café instantáneo, desarrollado por el doctor Federico Wyld o la incaparina creada por el Dr. Ricado Bressani para contribuir en la solución a los problemas de desnutrición. Claro que hay muchos más ejemplos de guatemaltecos que han ido más allá, alcanzando objetivos.
la idea de que hay más posibilidades de desarrollo económico y personal que están allí afuera para cambiar nuestro futuro, vale la pena el riesgo, el esfuerzo, el tiempo y la dedicación para crear nuevas oportunidades y un mejor lugar para vivir.
Si puedo decir, que en mi corta experiencia he logrado comprobar que la perseverancia y terquedad son parte del carácter del guatemalteco. Es por eso que debemos empezar a tomar riesgos, confiar en nosotros mismos, El espíritu emprendedor es en el que si se tiene una idea y motivarnos cuando nadie más lo hace y tomar esas se observa una oportunidad, hay que tomarla. Claro, el éxito decisiones, “No alcanzaremos el éxito sino lo buscamos”. no puede venir sólo, viene con riesgos, fracasos, pruebas y esfuerzo. Pero no hay mejor recompensa, que alcanzar un CONCLUSIONES objetivo establecido por nosotros mismos, haciéndonos La aplicación del conocimiento a problemas de la vida real confiar y ampliar nuestros conocimientos. como los sociales, con el objetivo mejorar y a los que nos Las ciencias de la computación van en auge creciente, pero rodean, harán que las nuevas ideas nos encaminen a ser hay que recordar que seguimos siendo humanos y la exitosos. interacción es parte del ser social y cultural, emprender no es una cosa individual es colectivo en el que se involucra a El apoyo a nuevas ideas por parte de entidades privadas o familia, amigos, profesores, expertos, etc. “Hay para todos” públicas son importantes en el desarrollo, pues no sirve que no es que si yo soy exitoso la gente que me rodea no los tengamos el conocimiento si no lo aplicamos en la solución será, es en este principio en el que se basa la teoría de de los problemas. equilibrio de Nash, elegir nuestra mejor estrategia y conocer Corre riesgos, experimenta lo bueno y malo, persevera y la de los demás para alcanzar el éxito. motívate cuando nadie más lo hace. Estudia, pero no solo Un emprendedor demuestra: pasión, iniciativa, superación, libros sino también las relaciones humanas, las áreas que liderazgo, creatividad, orden. Su éxito depende de factores nadie más quiere estudiar, es posible que allí esten las como: ayuda colectiva, innovación, fondos, infraestructura, respuestas a las más grandes preguntas. gobierno. Guatemala actualmente posee iniciativas que apoyan a gente con ideas innovadoras (campus TEC, Un emprendimiento sin fondos e infraestructura es como un Junior Achievement Guatemala, Guatemala emprende), se barco cargado, pero sin motores, ni velas, asegúrate de que les conoce como incubadoras de negocio que pueden ser al emprender tengas sostenibilidad y crecimiento no solo a de índole privada o pública, algunas se enfocan en corto plazo sino también a largo plazo. El impacto a largo adentrarse en las universidades donde formentan que plazo será menos visible pero más profundo y directo. jóvenes como nosotros explotemos todo lo que aprendemos día con día en favor de nosotros mismos, y a su vez brindar REFERENCIAS beneficio a más personas creando nuevas posibilidades de desarrollo a corto y largo plazo. Aclaro que “emprendedor” Abraham Ayala (04 Mar 2009). Historia del Café Soluble o es una palabra general y no distingue sexo, edad, etnia, Instantáneo. http://cafelibros.blogspot.com/2009/03/historia delcafesolubleoinstantaneo.html color, estrato social. Wikipedia. Happy Meal. Mi objetivo cuando leas esto, no es darte la receta o fórmula http://es.wikipedia.org/wiki/Happy_Meal para lograr el éxito como emprendedor, es despertar la Campus Tecnológico de Guatemala – TEC http://tec.com.gt/ conciencia de que no es necesario trabajar para alguien Fundación Emprende. Empresarios Juveniles de Guatemala más, como normalmente se hace, es despertar en tu mente http://jaguatemala.org/
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
10
Manejando tu propia infraestructura: Desplegando aplicaciones con
Andres Ixim Sebastian Oliva Casado 200815609@ingenieria.usac.edu.gt Estudiante de Ingeniería en Ciencias y Sistemas USAC Palabras claves: Contenedor, recurso, virtualización
Con el avance de la sofisticación de herramientas tecnológicas para el manejo de virtualización se ha posibilitado la aparición de proveedores de “equipo de cómputo virtual” como un recurso, cimentando un cambio de paradigma de decidir entre infraestructura dedicada propia hacia un modelo donde es más económico rentar por una cuota proporcional al uso.
Tecnologías de virtualización han facilitado el acceso a grandes aprovisionamientos de recursos de cómputo. El manejo, mantenimiento y administración de recursos de cómputo es facilitado por herramientas como Docker, que permite la creación de Contenedores para aplicaciones o servicios, y su ecosistema asociado, lo cual incrementa la productividad, efectividad y eficiencia de administradores de sistemas y DevOps. Este articulo tiene como intención proveer una corta introducción a Docker y herramientas asociadas.
Contenedores A diferencia de la virtualización tradicional Docker utiliza contenedores, basada en LinuX Containers (LXC), un método de virtualización a nivel de sistema operativo que permite ejecutar múltiples raíces de sistema de archivos y arboles de proceso aislados sobre un contenedor. Internamente, el Kernel Linux incluye manejo y aislamiento de recursos utilizando cgroups. LXC combina Cgroups y namespaces para proveer ambientes transparentes y aislados a las aplicaciones. Docker es capaz de correr en otros sistemas operativos base mediante un proveedor de Virtualización completa Linux, en el cual en un sistema Mac OS o Windows se virtualiza primero un Kernel Linux y sobre este se corre Docker.
Atado a esto, el incremento a las necesidades de cómputo de tareas altamente paralelizables guía el mercado a una oferta de infraestructura orientada a proveer una gran cantidad de máquinas virtuales a disposición del personal de IT. Sin embargo mantener una cada vez creciente cantidad de recursos, sean propios ó virtuales, se vuelve Los contenedores están orientados a ejecutar procesos y una carga cada vez mayor a la ausencia de herramientas grupos de procesos de manera aislada e individual, sin el costo asociado de virtualizar todo el sistema operativo. que permitan manejarlos. Entre las herramientas más utilizadas para el manejo de En el caso de Docker, se empaqueta una imagen la cual contenedores se encuentra Docker, el cual esta basado en contiene todos los paquetes y ambiente de ejecución. Linux Containers y ha sido adoptada por varias organizaciones de gran escala. Principios de Contenedores Virtualización tradicional En la virtualización tradicional Un hipervisor, que puede o no ser integrado en el sistema operativo base, provee una capa de abstracción del hardware subyacente que permite ejecutar otros sistemas operativos sobre el mismo. Este proceso de virtualización involucra varias operaciones complejas que impactan el rendimiento.
11 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
Orquestación El Contenedor no es mas que una manera de correr y aislar procesos, pero para correr una aplicación o servicio se necesita de una variedad de procesos asociados, almacenamiento, bases de datos, herramientas para el manejo de trabajos, contenedores, configuración, administración y otros servicios. Existe una variedad de imágenes de sistemas operativos para Docker, pero en particular CoreOS es un sistema operativo mínimo el cual provee servicios como etcd, systemd y Docker preinstalados, lo cual permite facilitar el despliegue a gran escala como base de infraestructura. CoreOS está basado en Chromium OS y no incluye un administrador de paquetes, sino que está diseñado para correr contenedores Docker. Introduce también el concepto de separación de raíz, el cual permite actualizar el sistema operativo sin afectar los contenedores corriendo sobre él. Fig es un manejador de ambientes de desarrollo que permite describir contenedores e imágenes y sus relaciones entre sí con un simple archivo de texto. Con este se puede replicar un ambiente de desarrollo, ajustar ambientes de producción en estaciones de trabajo y desplegar los cambios fácilmente.
El manejo de clusters es detallado en el documento “Omega: flexible, scalable schedulers for large compute clusters” que compara la taxonomía del espacio de opciones posibles para administradores de tiempo e introduce una arquitectura basada en el manejo común de estados que provee control de concurrencia optimista y libre de bloqueos. En este documento también menciona el manejo de pedidos en dos niveles, tal como utilizado en plataformas como Apache Mesos, la cual provee manejo de trabajo y comunicación entre procesos, sin embargo requiere que la aplicación esté programada sobre su API. Apache Mesos es utilizado en producción en Twitter y es uno de los mas populares servicios de orquestación de trabajos. Flynn es otro proyecto libre orientado en proveer manejo y descubrimiento de servicios, inspirado en el documento Omega, pero con afán de presentar una alta facilidad de uso y una API amigable para desarolladores. CONCLUSIONES El manejo de infraestructura utilizando tecnologías de virtualización es mas accesible ahora que núnca antes, permitiendo reducir costos y complicaciones para operaciones de IT. Docker es una plataforma solida y con un fuerte ecosistema que es ideal como base de una estrategia de IT basada en servicios y contenedores. Los contenedores y aplicaciones altamente contenidas facilitan utilizar el Software como un Servicio, facilitando su despliegue, administración y minimizando desperdicio de tiempo y divergencia con ambientes de desarrollo. REFERENCIAS Omega: flexible, scalable schedulers for large compute clusters. (EuroSys 2013; Praga, Republica Checa). Malte Schwarzkopf, Andy Konwinski, Michael AbdElMalek, ohn Wilkes. http://eurosys2013.tudos.org/wpcontent/uploads/2013/paper /Schwarzkopf.pdf
Manejo de clusters Para el manejo de un cluster de contenedores existen The Twelve Factors: Adam Wiggins, 30 de Enero, 2012. varios recursos. Herramientas como Kubernetes, de Google http://12factor.net/ permite el manejo de proveedores de maquinas virtuales, manejo de recursos y contenedores corriendo sobre una variedad de backends. Kubernetes es utilizado en algunos servicios de Google y tiene ya un pujante ecosistema de companias que ofrecen soporte y servicios relacionados.
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
12
10 Consejos para ser: Ingeniero en Ciencias y Sistemas y no morir en el intento En este artículo encontraras diez consejos si decides ingresar, o si ya estas adentro de la carrera de Ingeniería en Ciencias y Sistemas, que pueden ayudarte como una pequeña guía en la forma de llevar la carrera.
2. No subestimes el curso de introducción a la programación. Es el primer curso del área profesional, es decir, el primero de programación. Es un curso de gran dificultad ya que te exigen habilidades de lógica, Palabras claves: matemática y deducción. Si crees que ya sabes programar Ingeniería, ciencias, sistemas, éxito, consejo, y lo tomas a la ligera, pensando en que será tan fácil como ganar, triunfar, programación. cualquier otro curso que se gana solo haciendo todas las La carrera de Ingeniería en Ciencias y Sistemas es la tareas y estudiar un poco, estás equivocado; así que carrera de moda y por esa razón muchas personas la eligen préstale mucha atención a este curso, trata de darle por su fama, buenos comentarios y el prestigio que tienen prioridad ante los demás. un ingeniero, razón por la que cuando un estudiante ingresa a la facultad de Ingeniería se encuentra con el área común 3. Empieza a ser autodidacta, cambia tu paradigma sobre la de las carreras en donde permanecen por lo menos, forma de llevar un curso. Cuando inicias en el área profesional, crees que los todos los cursos se ganan de la durante un año. misma manera: poniendo atención en clase y haciendo tus Sin embargo, cuando se ingresa al área profesional, un tareas. Los catedráticos te enseñan lo teórico y con las gran porcentaje de los estudiantes se cambian de carrera. tareas pones en práctica dichos conocimientos, pero, la Algunas de las razones son porque no tenían idea de lo que carrera de ingeniería en sistemas todo el tiempo se trata de conlleva la carrera, su gran dificultad o porque simplemente resolver problemas, problemas y más problemas , no no les gusta o “no le entienden”. Este fenómeno sucede importando el lenguaje de programación. Los catedráticos muy a menudo en el transcurso del 3ro, 4to y hasta 5to te darán las bases y la orientación ena la lógica y forma de semestre, por lo que en este artículo trataré de dar algunos pensar, pero no la receta para hacer las tareas, prácticas o consejos necesarios para culminar con éxito la carrera de proyectos. Debes cambiar tu forma de pensar, a partir de este punto corres por tu cuenta para hacer tus proyectos Ingeniería en Ciencias y Sistemas. con éxito. Debes aprender a ser autodidacta, aprendiendo a 1. Cierra el área común lo más pronto posible. Tu mayor resolver tus dudas por ti mismo. Hector Vinicio Cabria Barrientos hcabria@gmail.com Estudiante de Ingeniería en Ciencias y Sistemas USAC
ventaja será adelantar algunos cursos de los más difíciles como la matemática básica 1 y 2, pero si no lo logras en semestre puedes recuperarte en vacaciones. Es más importante no atrasarte en el pensum y sacar todos los cursos como los idiomas técnicos y los del área de social humanística. Este consejo es de vital importancia, ya que te impulsará como un trampolín en la carrera y te liberará de tiempo cuando entres al área profesional.
4. Todos los cursos son importantes, dedícales tiempo a todos. Cuando ya estás en el área profesional de la carrera, inconcientemente puedes descuidar los cursos del área común que aún lleves, simplemente porque no llevan un laboratorio de programación. El problema de esto, es que estos cursos son prerrequisitos de otros más complicados. Recuerda que si no les diste cierta prioridad puedes atrasarte un semestre.
13 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
5. Consigue un buen grupo de trabajo. La carrera de Ingeniería en Ciencias y Sistemas tiene la reputación de ser la más complicada, y por lo tanto, la mejor forma de ayudarte a ti mismo, es trabajando en equipo con tus compañeros. Ojo, salir adelante depende de ti, pero cuando tienes un grupo de amigos que se apoyan alimentan el mismo entusiasmo por cerrar la carrer. Esto no significa, copiar o dar copia, ni mucho menos aprovecharte, sino más bien, pequeñas ayudas cuando te quedas “trabado” en algo o recordatorios, son el mejor apoyo que puedes recibir para salir adelante en un curso. Evita los compañeros que te atrasan y te quiten el tiempo.
trata de poner en práctica lo aprendido. Todo esto te hará superior a la competencia.
6. Mantente firme en el área media de la carrera y duplica tus esfuerzos. A la mitad de la carrera, puede que sientas que todo se complica, probablemente tienes que desvelarte,tendras más de un curso con proyectos o trabajar en grupo e incluso, llevar cursos adicionales. Es de importancia que sepas a lo que te enfrentas, ya que como dice el refrán: “sobre aviso, no hay engaño”, tienes que prepararte mentalmente para redoblar esfuerzos y trabajar “con ganas”. Recuerda que no eres el único, si otros han podido, por qué tú no.
Estos 10 consejos, los comparto como parte de experiencias personales y de lo que se observa cada semestre en la carrera de Ingeniería en Ciencias y Sistemas.
7. Aprueba los cursos aprendiendo todo lo que puedas. Debes saber multiplicar para aprender a elevar potencias, en esta carrera cada curso tiene un propósito, sobre todo aquellos que son prerequisitos, en cada proyecto en los cursos obtienes los conocimientos previos para los siguientes. Por esta razón, aprende todo lo puedas de tus catedráticos, auxiliares y de tus propias investigaciones. También recuerda, que cuando trabajes en el área, todo lo aprendido será solo una mínima parte.
10. No te cases sólo con la carrera. Recuerda que para triunfar en la vida, no solamente debes depender de una rama de la ingeniería, de las ciencias o de conocimientos. Trabaja en otras áreas de tu vida, como las relaciones interpersonales que te harán sobresalir ante los demás, trata de convivir con tus amigos, viajar y desestresarte. No hagas siempre lo mismo, no te acomodes, no pierdas tu calidad de vida y sé feliz estudiando lo que te gusta. Vive cada día como si fuera el último.
Todos cometemos errores y aprendemos de los mismos, pero siempre y cuando sepamos a lo que nos enfrentamos, seremos más conscientes y capaces de lograr nuestras metas. Recuerda que la mejor forma de alcanzar el éxito es vencerse a uno mismo, puedes hacer lo que quieras cuando te lo propongas. CONCLUSIONES Estos consejos no son todo, se requiere mucho esfuerzo y que trates de ubicar las áreas débiles en tu vida, para trabajar en ellas. Estudia con entusiasmo, debes sentirte siempre cómodo y disfrutar lo que haces, será tu profesión, lo que harás la mayor parte de tu vida.
8. Ayuda y déjate ayudar. En esta carrera, tienes que perder el orgullo, pide ayuda a compañeros vayan más adelante o que simplemente hayan hecho algo que tu no. Pueden sacarte de apuros, ganar tiempo o simplemente aprender más. Cuando tú puedas ayudar, ayuda, no seas egoísta y comparte con tus compañeros los conocimientos que puedas, cuando una persona ayuda a obtiene una satisfacción muy grande, aumenta el autoestima y confianza. 9. Lee, actualízate, comparte, investiga y practica. En la parte final de la carrera, te toparás con cursos que no suelen tener la misma dificultad que los cursos de la mitad de la carrera, sin embargo, estos son a los que más debes prestar atención, son los más útiles cuando empieces a trabajar para mostrar tus conocimientos como ingeniero “en la calle”. Te aconsejo, entonces, lee un poco más sobre estos temas. Comparte todo lo que hayas investigado y
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
14
Lenguajes formales en procesos industriales La comunicación entre las máquinas y los humanos, puede complicarse si no se utilizan las técnicas adecuadas en este proceso. Para resolver este problema y obtener el mejor beneficio de las máquinas (robots) en los procesos que estas llevan a cabo se propone la implementación de los lenguajes formales. Estos lenguajes creados mediantes reglas estrictas de diseño, permiten personalizar el comportamiento de cada una de las máquinas con la que cuenta una empresa y sacar el mayor beneficio de estas. Industrial Processes by: Lauren Wellicome htts://www.flickr.com/photos/laurenkeith/4377108441/ Attribution (https://creativecommons.org/licenses/by/2.0/) Photo attribution by PhotosForClass.com
Fabelio Estuardo Ajtún Bulux fabelioajtun@hotmail.com Estudiante de Ingeniería en Ciencias y Sistemas USAC
la teoría de los lenguajes formales, se refiere a las reglas o especificaciones sintácticas de los lenguajes, entendiéndose estas como el orden en el que pueden ser construidas las diferentes expresiones del lenguaje. Es Palabras claves: importante mencionar que dentro de las labores de los Lenguaje, formal, procesos, industria, mejoras, lenguajes formales queda excluida toda verificación del tipo ganancias semántico, entendiéndose como la coherencia que pueden En la actualidad vivimos en un mundo en el que la tener las expresiones del lenguaje. información y la forma en que esta se procesa es uno de los principales factores que influyen en el posicionamiento de En la teoría de los lenguajes formales se pueden distinguir las empresas en el ámbito comercial. Las empresas que dos diferentes tipos de mecanismos en la construcción y mejor captan y administran la información tienen los reconocimiento de los mismos, los cuales son: las mejores ingresos anualmente. El procesamiento de la gramáticas, mecanismos generadores de lenguajes y los información es toda una ciencia, en la que como cualquier autómatas, que son mecanismos reconocedores de otra, entran en juego variables que determinan el éxito o lenguajes. fracaso análisis de los datos con los que se cuenta. Estas variables van desde el diseño de algoritmos que se Al estudiar los autómatas se puede llegar a analizar la utilizaran en el análisis que proveen información para forma en que las máquinas de funcionamiento sistemático, determinar las acciones a tomar, a partir del estado actual y procesan la información y su forma de actuar. Al utilizar las proyecciones. Nosotros, los humanos le indicamos a las autómatas se puede procesar información que entra a un máquinas procesadoras de información, cómo deben sistema, entiéndase este como una máquina (hardware), y administrar los datos. Es aqu,í donde entran en juego los la información resultante que sale de este mismo sistema, lenguajes formales, se utilizan como una vía de esto al considerar este conjunto de datos como un lenguaje comunicación entre un lenguaje comprensible por el ser formal. humano y un lenguaje comprensible por las distintas máquinas (computadoras, procesadores, etc.) que se Lenguajes formales en los procesos utilizan en las diferentes industrias. Como lo mencioné, el conjunto de datos que forman la ¿Qué es un lenguaje formal? información de entrada y salida de un sistema se puede considerar como un lenguaje formal. Al considerarlos de Un lenguaje formal se define como un conjunto de reglas este tipo, los operadores encargados de las acciones que que delimitan un conjunto finito de expresiones, las cuales deben llevar a cabo las distintas máquinas a su cargo, están formadas a su vez por un conjunto finito de elementos pueden facilitarse la comunicación máquinahumano. que forman un vocabulario o alfabeto. Cuando hablamos de Evidentemente, todo usuario de una máquina, no se
15 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
comunica con ella directamente con nuestro lenguaje natural. Para programar el funcionamiento de una máquina es necesaria la utilización de un lenguaje entendible por el humano, que después de pasar por ciertos procesos genera lengua que la máquina entiende y ejecuta lo que el usuario desea.
trabajos que pueden ser automatizados muy fácilmente con la implementación de maquinaria controlada atrevés de lenguajes formales de programación; específicamente diseñados para cada tarea en particular. Un ejemplo de estas industrias son las innumerables maquilas presentes en nuestro país. Muchas de estas maquilas pertenecen a empresarios guatemaltecos que de automatizar sus Mediante el diseño de un lenguaje formal, en el que se procesos de fabricación y almacenamiento, podrían generar describan todas las acciones que una máquina pueda mayores ingresos para ellos y el país. realizar, utilizando un lenguaje que sea lo más cercano al lenguaje natural del hombre, se facilitaría la programación La automatización se haría a través de maquinas con tareas de las tareas y por ende la eficiencia del sistema. Un específicas, programadas por medio de lenguajes de ejemplo claro de esta teoría es un caso hipotético en la programación. Se podrían programar tareas como: la programación y automatización de las acciones que lleva a selección y clasificación de materias primas, el corte y cabo un robot encargado de acomodar paquetes dentro de ensamblado de piezas para la contracción de productos una bodega. Estos robots pueden ser programados finales, empaquetado y clasificación en el almacenamiento mediante un lenguaje formal, diseñado exclusivamente para de los productos previo a su distribución, etc. las tareas que este puede y debe hacer durante el día, mejorando el rendimiento que este provee a la empresa en Algo importante a resaltar en este artículo, es que aunque el la que se encuentra. nivel de automatización sea muy alto, siempre se necesitará la supervisión periódica del ser humano. Es en esta parte Mediante un lenguaje formal se pueden programar ciclos de en donde entran en juego los ingenieros en ciencias y trabajo, decisiones basadas en las condiciones del sistema, sistemas, con los conocimientos adquiridos y desarrollados secuencias de procedimientos dependiendo del estado a través de su formación académica. Los ingenieros en actual del sistema, etc. Cada empresa, con su propio sistemas son profesionales capaces de diseñar, desarrollar, equipo de desarrollo y programación, puede adaptar cada implementar y supervisar sistemas automatizados una de sus máquinas a las necesidades específicas que controlados. esta tenga. Y con esto obtener el mejor beneficio en la utilización de sus recursos. CONCLUSIONES La teoría de los lenguajes formales nos lleva a conocer la teoría planteada por Chomsky, el cual plantea una jerarquía de lenguajes basada en las restricciones de diseño con la que cada uno de los lenguajes puede ser creado. Basándose en esta jerarquía se pueden crear diferentes tipos de lenguajes y por ende diferentes tipos de autómatas. Esto nos da una amplia gama de posibilidades al momento de querer implementar el uso de un lenguaje de programación para comunicarse con una máquina. Ya que existen lenguajes que se basan en estados y entradas actuales del sistema que pueden apoyarnos en la industria de líneas de ensamblado o fabricación. También están los lenguajes que pueden expresar frases con instrucciones que son llevadas a cabo, los lenguajes independientes del contexto, que pueden ser utilizados en la programación de máquinas que realizan varios trabajos y acciones en el día, entiéndase estas como un montacargas, trenes de transporte de materiales e incluso los mismos vehículos de transporte pesado.
La implementación de lenguajes formales en la programación de procesos ayuda en mejorar el rendimiento del sistema ya que el operador expresa de forma más clara las acciones que se deben ejecutar. La automatización en las diferentes áreas de trabajo en nuestro país, debe empezar por la implementación de mejores comunicaciones máquinahumano para aprovechar mejor los recursos con los que se cuenta. Los lenguajes formales pueden ser el punto de partida en el crecimiento económico de empresas con procesos automatizables, basándose en que el mejor manejo de la información que conlleva a una mejor posición global en el mercado. REFERENCIAS
Alfred V. Aho (2008). Compiladores principios, técnicas y herramientas (2da. Edición). Mexico: Pearson Educacion de En la industria guatemalteca existen diferentes áreas Mexico. industriales que aún realizan trabajos de forma manual,
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
16
COECYS es una organización sin fines de lucro, que tiene la finalidad de reducir la brecha digital en el país, llevando conocimientos relacionados con la tecnología y emprendimiento a estudiantes universitarios, profesionales y entusiastas interesados.
Para llevar a cabo COECYS, primero, tuvimos que formar una organización pues no hay una estructura definida y la mayoría de veces se debe de empezar desde cero. Se debe contar con un nombre para el congreso, este año es: “Expandiendo los límites, Trascendiendo más allá del código”, que será el eje central, con esto nos trazamos el objetivo de ser mejores este año. Tenemos nuestra visión que es a dónde queremos llegar y nuestra misión de cómo hacerlo, debimos definir nuestra proyección social, actividades para recaudar fondos, elaboración de logo, etc. Esto es parte de algunas de muchas actividades que tenemos que realizar para poner a flote la organización, llevamos más de 5 meses organizando y preparando este evento.
El objetivo de COECYS, es que el estudiante de Ingeniería en Ciencias y Sstemas amplie la visión de los diversos campos en los que puede desarrollar un papel importante para el crecimiento de las empresas, tanto como a nivel nacional como Centroamericano. De la misma forma, analizar los posibles segmentos del mercado que tiene la industria en la actualidad, los diferentes roles que se puedan tener para exponer los diferentes aspectos del emprendimiento e innovación que permite el óptimo La mayor importancia de COECYS en su organización es desempeño de una empresa. una buena administracion. Esto nos lleva a que primero Este año tengo el agrado de pertenecer de comité debimos realizar una buena planificación de todas las organizador de COECYS 2015, antes de tomar la decisión actividades a realizar, qué vamos hacer durante todo este de estar en el comité organizador, escuchaba algunos periodo que de organización sin dejar de vista las comentarios que formar parte de COECYS era fácil, que no actividades aunque sean mínimas pero se incorporan ya quitaba mucho tiempo, que ya todo estaba hecho. Ahora que para que algo salga bien tiene que estar todo puedo decirles a esas personas que no es como ellos lo planificado como es que se va a realizar. Luego pasamos a decían o que posiblemente nunca fueron parte de la la organización de las actividades, necesitamos saber quién organización, es por eso hago una invitación a que formen va a realizar cada actividad o quien va hacer el encargado parte de de ella. Esos comentarios eran falsos, con todas de cada una de las actividades para no estar todos en una las actividades que se deben de realizar, puedo decir que misma y tener un desorden, así poder devengar bien el lleva más tiempo de lo que uno piensa y tampoco puedo trabajo para no estar todos cargados y llevar un mejor decir que va a ser fácil, debido a que todavía tenemos control de todo, y saber también cuál es la posición de cada mucho por delante pero como he aprendido a lo largo de la integrante de la organización. Posteriormente pasamos a la dirección de las actividades, para ver por dónde es que van vida que todo tiene su nivel de dificultad. las cosas y saber si algo falta o como es que nos está
17 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
yendo con cada actividad que estamos realizando y si nos están dando los frutos que pensamos desde un principio, o bien simplemente ver si nos fue bien para poderla volver a realizar el siguiente semestre. Por último dar el seguimiento respectivo y ver si las cosas van como lo planeamos y ya dejar que lo demás se lleve a cabo por su propia cuenta. Más que todo es incentivar a la gente que de su mejor esfuerzo para poder realizar las cosas y sobre todo hacerlas con el corazón, ya que de ahí vienen las mejores cosas que se pueden realizar en la vida, y con esto llevarnos la mejor satisfacción de que hicimos algo para todas aquellas personas que se dejaron influenciar por nosotros para llegar a darles una mejor información sobre lo que pueden llegar a realizar en cada empresa o bien cómo es que pueden sobresalir en su vida generando sus propias empresas u organizaciones, que al final como sabemos es ayudar a salir adelante a Guatemala.
de que necesiten algo de nosotros.
En COECYS, hemos pensado en la unión de diferentes grupos de personas ya que esto nos llevara a tener un punto de vista distinto y no solo del estudiante de la Universidad de San Carlos sino que, de personas de diversas universidades, profesionales y empresas. De las universidades podemos hablar por el momento debido a que con ellos hemos tenido ya contacto, y pues podemos decir que las universidades que hemos visitado hasta el momento están dispuestas a ayudar en todo lo que se les sea posible o bien en lo que está en sus manos. Con las empresas esperamos que con los patrocinadores tengamos la participación de personas que laboran en ellas. La unión con las universidad nos interesa mucho debido que de aquí es donde podemos formar las mejores alianzas con los estudiantes, ya que cada uno de los estudiantes de las diferentes universidades tiene un pensamiento diferente que Como mencioné anteriormente, como es una organización al unirlos no sabemos a dónde es que pueden llegar o sin fines de lucro, hemos tenido el deber y la tarea de incluso dar la una solución para empezar el cambio. buscar nuestros llamados patrocinadores, para poder tener un mejor evento, de alta calidad, como lo deseamos No puedo decir hasta el momento si vamos bien o mal, pero realizar, al final de cuentas. En esta oportunidad hemos lo único que puedo decir es que en este momento tengo hablado ya con más de 6 potenciales patrocinadores hasta muchas metas que tengo que alcanzar con esta el momento y en busca de más. Creo que la verdad las organización ya sean para la organización, como persona y empresas puramente guatemaltecas estas dispuestas a para los demás y sé que los demás organizadores también ayudar con este tipo de actividades, ya que miran una las tienen. Lo que puedo decir hasta este momento es que brecha para poder contactar a gente para sus empresas. no pierdo ninguna oportunidad para poder hacer posible También quieren ser parte de esto, debido al gran auge que esas metas que me he propuesto alcanzar, a veces dicen últimamente hemos estado manejando, y con esto lo que que se cierra una puerta pero se abren más y sinceramente estoy diciendo es que por el momento ninguna empresa nos creo en esas cosas debido a que en esto por todas las ha cerrado sus puertas, lo único es que debemos de saber cosas que he estado viviendo desde que me comprometí cuáles son esas empresas que están dispuestas a realizar con esta organización, al igual creo que al finalizar esto estos patrocinios o intercambios. Cabe mencionar que no muchas cosas van a cambiar pero sé que van hacer para solo nos han dado su apoyo, sino que también nos han bien. estado abriendo puertas en diferentes lados para poder así tener más gente involucrada en este evento. También es Yo sé que al final de todo esto me va a dejar una gran importante mencionar que hemos tenido el agrado de conocer personas que se desarrollan en diferentes puestos de trabajo, que han servido al país y también gente que se relaciona con personas importantes. Otra de las actividades que realizamos para recolectar dinero es la de talleres, conferencias, campeonatos de futbol, rifas, venta de chocolates, torneos de videojuegos, etc. Ya que esto nos ayudó, primero para recolectar dinero y luego para poder empezar a darnos a conocer, esto nos ha ayudado mucho ya que ahora ya saben con quién abocarse al momento
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
18
experiencia muy diferente a otras. Puedo decir que gracias al apoyo de las personas, ya sea la persona que lea este artículo, algún amigo que nos apoye, a las empresas con sus patrocinio, que la organización cumpla con sus metas y a la gente que le llame la atención este articulo vamos a llegar hacer algo diferente y de mucha ayuda a los estudiantes, profesionales y entusiastas en el tema. Es por ello que estamos realizando esta organización y así poder hacer un cambio significativo a las personas, para poder así formar parte del cambio que necesita urgentemente el país. Lo único que quiero con este artículo, es transmitirles a las personas que no se tengan miedo para realizar las cosas, debido a que si seguimos con ese miedo nunca vamos a realizar nada en esta vida, que si tenemos una meta no la dejemos a medias o simplemente tirada, sino retomarla y cumplirla. Pero no que no sea porque alguien nos obligó o por alguna persona, sino que sea por uno mismo porque uno quiere salir adelante y formar parte de muchas cosas y sobre todo de ese cambio que necesitamos.
que puedan ayudar, no tengan pena en contactarnos, ya que siempre estamos abierto a nuevos comentarios, criticas, aportes y sobre todo a cosas nuevas. CONCLUSIONES COECYS como organización está haciendo un gran cambio, si COECYS lo está haciendo tú porque no lo haces. Cada persona que conforma esta organización está haciendo su mejor esfuerzo, creo que necesitamos de tu parte también para hacer algo mejor. COECYS para tener diferentes puntos de vista, necesita la participación de diferentes grupos de personas con esto digo Estudiantes de diferentes universidades, Profesionales, Empresas y todas aquellas personas interesadas en COECYS.
Debido a la gran influencia que hemos tenido ya nos Después de poner todo en orden no puedo concluir nada, si estamos dando a conocer y así poder hacer nuestro mejor esto va hacer una experiencia, aventura o un desafío más aporte. en mi vida. Pero lo que puedo decir es que ya estoy en él y voy a dar lo mejor de mí para que esto sea algo grande que sirva de cambio, que tengamos reconocimiento a nivel internacional y ayudar a nuestro país. Al igual invito a todas aquellas personas que quieran ser parte de esta organización ya sea como un colaborador, parte de la planilla, patrocinador o como ustedes piensen
19 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
Herencia de código en 3 direcciones La herencia es un mecanismo que utilizan los lenguajes de programación para la reutilización de código previamente escrito. En código de 3 direcciones debe mantenerse esta idea, utilizando técnicas que permitan reutilizar el código de las clases padres, basándonos para esto en la utilización correcta de los atributos y de la tabla de símbolos para una correcta generación de código de 3 direcciones
Diego Alejandro Ríos Sagastume dalejrios@gmail.com E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C Palabras claves: 3 Direcciones, Compilador, Herencia, Objetos, Código, Símbolos
En el mundo de la programación es imprescindible conocer la forma en que los compiladores generan el código objeto que luego ejecutamos. Con el auge de los lenguajes de programación orientados a objetos se hace necesario el conocer el método de herencia para la reutilización de clases. Hay que tener en cuenta que el objetivo principal de la herencia es la reutilización de código, por lo que necesitamos tener esto presente para la correcta generación de nuestro código de 3 direcciones.
que explicara de manera sencilla como funciona el método de la herencia en el paradigma orientado a objetos. Paradigma Orientado a Objetos No ahondaremos acerca de cómo generar código de 3 direcciones para la creación de objetos, solo daremos una pequeña introducción del tema. Sabemos que para generar un objeto se necesita una clase y luego esta clase puede ser utilizada como un tipo de datos para instanciar un objeto. Acá entra una estructura de datos nueva llamada heap, el cual me servirá para almacenar los atributos de los objetos y también entra en juego el constructor de clase el cual es un método que será el encargado de inicializar los atributos de cada clase.
El presente artículo tiene como función principal mostrar la forma en que se debe generar el código de 3 direcciones al momento de la utilización del método de herencia así como también la forma de llenar la tabla de símbolos, basándonos para lograr nuestro objetivo en una serie de pasos y 2 ejemplos prácticos. La idea de realizar el presente artículo es que en mi experiencia como estudiante de cursos de compiladores hay mucha falta de información con respecto al paradigma orientado a objetos y se me hizo necesario un documento
En el ejemplo podemos apreciar que existe una clase Trabajador, la cual genera un método constructor que será el encargado únicamente de inicializar los atributos de clase. Luego podemos ver en el siguiente trozo de código
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
20
que se crea un nuevo objeto de tipo Trabajador, lo que se Tomando en cuenta los pasos anteriores realizaremos el hace acá es llamar al método constructor y asignarle su siguiente ejemplo # 2. posición en la pila para posteriormente mover 2 posiciones el puntero del heap. No está demás mencionar que el puntero del heap siempre debe estar al final. Tabla de Símbolos Como es sabido, la tabla de símbolos es una estructura de datos que me servirá para generar el código objeto, nos sirve como un directorio y en ella se guardan única y exclusivamente todos los identificadores con algunas La tabla de símbolos cuando se empieza a analizar la clase características. Para nuestro caso consideraremos la Trabajador quedaría así: siguiente tabla de símbolos. Acá tomamos el paso # 1, ya que el tamaño inicial de la A manera de ejemplo, los códigos anteriores quedarían de clase Trabajador es el tamaño de la clase Persona. Ahora la siguiente manera en la tabla de símbolos: continuaremos analizando el paso # 2, que indica que el puntero que se deberá contar es el tamaño de la clase padre, por lo que el siguiente atributo que analicemos en Trabajador empezará con el puntero hpt+2. Como podemos ver, únicamente se ingresan los identificadores, los cuales simplemente me servirán para generar código, es decir, por ejemplo, la variable T en código de 3 direcciones ya no se accederá a ella como T sino con su valor relativo en la pila (ptr + 0). Además cabe mencionar algo importante, el tamaño en este caso de las variables int se ha tomado como 1, el tamaño de las clases es su número de atributos y el tamaño de las funciones es la cantidad de variables locales que se hayan declarado.
Como podemos ver, la clase Trabajador se ha actualizado a tamaño 3 debido a que está tomando en cuenta sus atributos y los de la clase padre. Siguiendo con el paso # 3, nuestro código de 3 direcciones de las 3 clases quedaría así.
Herencia void Persona(){ void Trabajador(){ La herencia no es difícil de implementar, mostraré paso a t1 = hptr + 0; Persona(); paso lo que se debe hacer para implementarla. Heap[t1] = 2077; t3 = hptr + 2; t2 = hptr +1; Heap[t3] = 1011; 1. El tamaño inicial de la clase hija es el tamaño de la clase Heap[t2] = 23; } padre y en la tabla de símbolos debe haber una columna } indicando de que clase hereda. 2. El puntero del heap para la posición de los atributos en la Podemos ver en el ejemplo anterior que realizamos el paso clase hija deberá empezar en el tamaño de la clase padre. # 3, el cual es que el constructor de la clase hija llama al 3. El constructor de la clase hija deberá primero llamar al constructor de la clase padre para inicializar los atributos y constructor de la clase padre y luego irá el código del luego inicializa los suyos. constructor de la clase hija. 4. Para buscar un atributo de clase, se busca en la clase Por último en el paso # 4 si queremos acceder a un atributo hija y si no se encuentra se cambia el ámbito y se busca en de un objeto de la clase Trabajador, lo buscaremos en la la clase padre de forma recursiva. tabla de símbolos y si no lo encontramos con el ámbito Trabajador, cambiamos el ámbito al de su clase padre
21 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
(Persona) y volvemos a realizar la búsqueda.
CONCLUSIONES
Por último la clase Principal quedaría así. void Principal_main(){ Trabajador(); t4 = ptr + 0; Stack[t4] = hptr; hptr = hptr +3; }
La herencia es un método para la reutilización de código. La tabla de símbolos sirve como directorio para generación del código objeto. Lo único que cambia en la tabla de símbolos en la herencia es agregar otra columna para indicar de que clase hereda y empezar a contar los atributos después de los del padre.
A manera de ejemplificar mejor, este sería el procedimiento que se realiza de forma gráfica: No es necesario repetir los atributos de cada clase padre en cada clase hija debido a que esto genera código 1) Al instanciar la clase, primero se llama al constructor innecesario. padre y éste mete sus atributos en el heap: REFERENCIAS 2) Luego el constructor de la clase hija mete sus atributos Alex Rodríguez. Concepto o Definición de Herencia en JAVA. en el heap: http://aprenderaprogramar.com/index.php?option=com_cont ent&view=article&id=651:conceptoodefiniciondeherencia Donde lo sombreado en verde son los atributos de la clase enjavaprogramacionorientadaaobjetosiquees padre y lo de celeste son los de la clase hija. ejemploscu00684b&catid=68:cursoaprender programacionjavadesdecero&Itemid=188 (22 marzo de Consideraciones a tomar 2015) No repetir los atributos, a veces se tiene la tendencia a copiar todos los atributos de la clase padre en la clase hija y Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman volverlos a meter todos, esto genera código demás, ya que (2008). Compiladores, principios, técnicas y herramientas si sabemos de qué clase hereda la clase hija podemos (Segunda Edición) México, S.A. de C.V: Pearson Education. acceder a los atributos de la clase padre sin volver a copiarlos. Utilizando la forma anterior se puede tener muchas herencias, es decir se puede tener lo siguiente: clase1 extends clase2, clase 3 extends clase1, etc. No confundir el heap con el stack, en el stack van únicamente las variables locales, en el heap van los atributos; cabe destacar que los objetos creados en funciones también son variables locales. Recordar que la tabla de símbolos no existe al momento de la ejecución. Lo visto en este artículo es en tiempo de compilación no en tiempo de ejecución, no confundir las cosas, el stack y el heap existen únicamente en tiempo de ejecución, por lo que estas 2 estructuras deben ser accedidas por posiciones relativas, no directamente con algún número.
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
22
Una barriga por conocimiento Un estudiante de ingeniería en sistemas por lo general tiene largas jornadas lo cual no representa el problema real, el problema radica en que la gran parte de este tiempo permanece sentado, lo cual implica estar en un estado sedentario y si a esto le agregamos el estrés diario y una alimentación poco balanceada tenemos una grave repercusión en su estado de salud y aspecto físico.
A man sleeping by CGP Grey https://www.flickr.com/photos/cgpgrey/4887846284/ Attribution, non commercial (https://creativecommons.org/licenses/bync/2.0/) Photo Attribution by PhotosForClass.com
Á n g e l L u i s C h i c P a tz a n a n g e l e l g o l e a d o r @g m a i l .c o m E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C Palabras claves: Salud, Sobrepeso, Actividad física, Alimentación, Ingeniería
Un estudiante de ingeniería en sistemas por lo general inicia sus labores estudiantiles a las 7:10 AM y en muchas ocasiones debe de quedarse hasta tarde para recibir algún curso, lo cual implica que debe de desayunar y almorzar en la universidad o en algunos casos hasta cenar con tal de asistir a sus cursos y poder aprender así como también poder aprobarlos. También implica que deba de llevar sus herramientas de trabajo para poder avanzar en algo las tareas y proyectos que tenga por entregar, lo cual no representa el verdadero problema ya que como todo estudiante debe de esforzarse para alcanzar sus objetivos. El problema radica en que la mayor parte del tiempo permanece sentado sin realizar ninguna actividad física y si intenta cuidar su alimentación es realmente difícil encontrar una opción saludable dentro de la universidad ya que el menú que nos ofrece abarca desde panes, hamburguesas, pizzas y muchas gaseosas de todos los sabores y colores.
cursos, ya que los catedráticos responsables de dichos cursos al no dedicarse completamente a impartir cursos no pueden acomodar a sus labores profesionales las clases a impartir, por lo que llegan a la universidad a impartirlo luego de su jornada laboral por lo que el estudiante en ocasiones tienen que esperar entre 5 o 6 horas para recibir el curso. En algunos casos los estudiantes que tienen la fortuna de vivir cerca de la universidad, pueden retirarse y regresar para el curso, en otros casos por la distancia y tiempo que representa el tener que retirarse y regresar optan por esperar en la universidad y adelantar tareas, practicas o bien proyectos pendientes lo cual es genial desde cualquier punto de vista. El problema radica en que la mayoría al tener que salir temprano de sus casas no tienen tiempo de desayunar y mucho menos llevar preparado su almuerzo para la espera, por lo que tienen que comprar y consumir sus alimentos en la universidad y si a eso le agregamos el tiempo que permanece sentado un estudiante de ingeniería en sistemas obtenemos graves repercusiones en el estado físico y más preocupante aun en el estado de salud de la persona.
Si bien la universidad ofrece un amplio abanico de opciones para escoger al momento de desayunar, almorzar o bien cenar son muy pocas las opciones saludables y que en realidad aportan un valor nutricional para nuestro organismo. Sin ir más lejos basta con ver a medio día los negocios que están llenos de estudiantes buscando algo Un estudiante de ingeniería en ciencias y sistemas inicia para almorzar, entre los menús más buscados porlos labores académicas desde muy temprano y en algunas estudiantes debido a la rapidez para adquirirlo y por el bajo ocasiones debe de quedarse hasta tarde para recibir otros precio a pagar por ellos tenemos pizzas, panes con
23 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
salchicha, queso burguesas, pollo frito, snacks y sobre todo esto sin mencionar la cantidad de azúcar que puede una gaseosas para todos los gustos los cuales están presentes persona ingerir a partir del consumo de bebidas carbonatadas o jugos procesados, el porcentaje propuesto en diversos tamaños. por la OMS para una persona adulta promedio es la Más de alguno ha escuchado a algún catedrático siguiente: bromeando con la expectativa de vida de un ingeniero en clase y todos nos reímos, pero en realidad esa broma es • Grasa total (%kcal): entre 15 y 30 % de la ingesta diaria, una mezcla de humor con la realidad a la que nos menos del 7% debe ser saturada. enfrentamos debido a la mala alimentación y poco • Hidratos de carbono (%kcal): entre 45 y 65% de la ingesta saludable estilo de vida marcada por el sedentarismo. Si diaria. bien se ha estandarizado que el promedio de kilocalorías • Proteínas totales (%kcal): entre 10 a 15 % de la ingesta por día aconsejado para consumir por un hombre está en diaria. los 2,500 y en una mujer 2000, un estudiante de ingeniería • Azúcar: Menos del 5% del total de las kilo calorías fácilmente llega a superar esos números por día o en caso consumidas, aproximadamente 25 gramos. contrario logra reducir dicho límite calórico pero con niveles nutricionales exageradamente bajos, basta con hacer un Para interpretar estos datos basta con hacer un simple análisis de las calorías que aporta cada uno de los cálculo ya que se sabe que 1 gramo de carbohidratos productos que se venden para el consumo dentro de la aporta 4 calorías, 1 gramo de grasa aporta 9 calorías y que universidad eso sin tomar en cuenta las grasas saturadas y 1 gramo de proteína aporta 4 calorías, además tomando carbohidratos complejos que cada uno de estos aportan al como base una dieta de 2500 Kcal se podría simular un día organismo. Sin más a continuación muestro un aproximado común de un estudiante de ingeniería el cual consume 2 de la información nutricional que ofrecen una porción de comidas además de un snack para alimentarse tal como se pizza, hamburguesas, pollo frito, snacks y gaseosas con la presenta en la siguiente tabla: finalidad de darnos una idea de lo que estos aportan a De la tabla anterior podemos visualizar que la dieta para nuestro organismo. este caso en particular queda lejos de los 2500 kcal • 1 porción pequeña de pizza aporta a nuestro organismo requerido lo cual genera un déficit calórico, se nota también 192 kilo calorías, con un total de 9.9 gramos de grasa total, que a pesar de ser solamente 2 comidas y un snack el 4.4 gramos de grasa saturada, así como 17 gramos de porcentaje de grasa ya es del 34.2 % del total consumido y carbohidratos, 2 gramos de azúcar y 8.9 gramos de más preocupante aun el 36% es de grasas saturadas lo cual está muy por encima del 7% recomendado. Finalmente proteína. • 1 hamburguesa con queso aporta 317 kilo calorías con un se puede apreciar que a pesar de que los carbohidratos son aporte total de 14.56 gramos de grasa, 6.1 gramos de grasa el 56% del total consumido gran parte del mismo es saturada, 28 gramos de carbohidratos, 7 gramos de azúcar y 17.25 gramos de proteína. • 1 pechuga de pollo frito tiene entre 320 y 420 kilo calorías con un aporte total de aproximadamente 25 gramos de grasa, 12 a 15 gramos de carbohidrato y 38 gramos de proteína esto sin contar las papas fritas que suele llevar un combo. • 1 bolsa de doritos nachos de 55 gramos cuenta con 266 obtenido de los alarmantes 119 gramos de azúcar lo cual kilo calorías, 14 gramos de grasa total, 2 gramos de grasa está completamente por encima de los 25 gramos saturada, 30 gramos de carbohidratos y 5 gramos de recomendados para la ingesta diaria por lo que se genera lo que se conoce con el nombre de carbohidratos vacíos los proteína. • 1 gaseosa de Pepsi de 500 ml aporta 53 gramos de cuales solamente aportan energía en forma de azúcar al organismo que luego se almacena en forma de grasa sin azúcar, 53 gramos de carbohidratos y 214 kilo calorías. aportar micronutrientes tales como vitaminas y minerales. Si nos guiamos en los porcentajes recomendados por la OMS para el consumo de macronutrientes (grasa, proteína Por lo tanto las personas no pueden esperar otra cosa que y carbohidratos) nos podemos dar cuenta inmediatamente no sean daños y en muchos casos irreversibles en su salud que se excede el porcentaje recomendado en la ingesta debido a una alimentación basada en comida chatarra. Si a principalmente de grasas saturadas y carbohidratos vacíos esto le agregamos un estilo de vida sedentaria, como el de
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
24
Promedio del índice de masa corporal por país. https://jaymans.files.wordpress.com/2013/04/world_bmi1.png
un estudiante de ingeniería en sistemas, la expectativa de vida disminuye drásticamente, tal como lo muestra el estudio publicado por la OMS sobre la mala alimentación y el sedentarismo el cual advierte que en el año 2010 la mala alimentación y el sedentarismo son la segunda causa de mortalidad en el mundo luego del tabaquismo lo cual corresponde a 3.2 millones de muertes cada año. Entre los primeros síntomas del daño realizado a nuestro organismo están: aumento de masa corporal, aumento de los niveles de colesterol en sangre, anemia, daños en el sistema hepático, bajo rendimiento mental, bajo rendimiento físico, daño al sistema cardiovascular, daño en los huesos entre otros. Por lo tanto es importante concientizar a los estudiantes sobre la importancia de la actividad física así como también educar sobre de saber elegir que alimentos consumir. También es importante que el personal administrativo de la facultad muestre Por lo tanto es importante concientizar a los estudiantes sobre la importancia de la actividad física así como también educar sobre de saber elegir que alimentos consumir. También es importante que el personal administrativo de la facultad muestre un poco más de interés en brindar opciones más saludables de alimentación dentro de la facultad y en la universidad en general, si bien es cierto que cada cafetería o puesto de venta que se abre dentro representa dinero para las unidades académicas debido al dinero mensual que se percibe gracias a estos, no se enfoquen solamente en lo económico sino que se visualice también que es lo que se venderá y que es lo que
se ofrecerá al estudiante, permitiendo así poder tener más opciones saludables dentro del menú de alimentos en la universidad que hoy por día esta abarrotado de comida chatarra. Como futuros ingenieros debemos de buscar una solución al problema presentado usando los medios que mejor sabemos utilizar y en nuestro caso como estudiantes de ingeniería en sistemas el medio que más y mejor sabemos utilizar es la tecnología , si bien nos mantenemos la mayor parte del tiempo frente a un ordenador o un celular habrá que aprovecharlo y utilizarlo como un medio para solucionar problemas y por ello podríamos utilizar Apps tal es el caso de Runtastic el cual es una aplicación disponible para dispositivos móviles tanto en Android como en iOS y Windows Phone, en dicha aplicación podemos seleccionar distintos tipos de entrenamiento que van desde aeróbicos hasta entrenamiento de fuerza, así como también nos permite llevar un historial de nuestro progreso tales como hitos logrados, calorías quemadas y pérdida de peso. También permite mostrar nuestro progreso a los amigos y familiares dándole un toque social. Otra aplicación interesante es el contador de calorías FastSecret el cual permite mostrarnos mediante una búsqueda manual o bien a partir de una foto del código de barras del producto la información nutricional que este posee permitiéndonos llevar un control de las calorías y nutrientes que se consumirán permitiendo guardar un historial por fechas los cuales podremos visualizar para controlar mejor lo que se consume. Así como estas dos aplicaciones descritas
25 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
anteriormente podemos encontrar un sinfín de aplicaciones que se acomoden a nuestros objetivos relacionados con la salud y bienestar físico, permitiéndonos aprovechar al máximo la tecnología que tenemos al alcance.
Es importante como estudiantes que somos tomar conciencia que un estilo de vida sedentario nos afecta no solo físicamente si no que a nivel de salud y expectativa de vida, por lo tanto no importando que tan cansados nos sintamos es necesario realizar actividades físicas si bien no También dentro de la universidad podremos encontrar la diario tan siquiera 3 veces por semana para estar bien unidad de salud el cual se encuentra ubicado en el tercer consigo mismo, así como también es de suma importancia nivel del edificio de bienestar estudiantil donde como cuidar nuestra alimentación. estudiantes podemos obtener información de distintas áreas relacionadas a la salud tal como la nutrición y de ser REFERENCIAS necesario podríamos requerir una evaluación nutricional, • Información nutricional de alimentos. también regularmente publican actividades relacionadas http://www.fatsecret.com.mx (22 de marzo de 2015). con el deporte y actividad física. • Dr. Manuel Hernández Triana. Recomendaciones nutricionales para el ser humano publicado por la OMS. Es de suma importancia recalcar los beneficios que conlleva http://bvs.sld.cu/revistas/ibi/vol23_4_04/ibi11404.htm (22 de realizar deporte no solo en el estado físico sino que también marzo de 2015). en el estado emocional ya que el ejercicio realizado al • Necesidades nutritivas y recomendaciones internacionales menos tres veces por semana en un lapso de al menos 30 publicadas por el consejo nacional de investigación minutos nos puede ayudar a reducir el estrés y ansiedad, americana. aumentar el autoestima, acelerar el metabolismo, reducir el http://www.uco.es/master_nutricion/gna/GNA4t.pdf (23 de riesgo de padecer cáncer, aumenta la capacidad mental y el marzo de 2015). sentido del humor por lo que nuestro rendimiento • Recomendación de la OMS sobre el consumo de azúcar. académico como también en nuestras actividades http://www.latercera.com/noticia/tendencias/2014/03/659 cotidianas aumentaran considerablemente, permitiéndonos 5681229laomsrecomiendaqueelconsumodiariode vivir más y de mejor manera, reduciendo el riesgo de sufrir azucarnoexcedael5delascalorias.shtml (27 de marzo enfermedades hereditarias tales como la diabetes o el de 2015). Alzheimer si se realiza en etapas tempranas o en la • Conversión de gramos a calorías por juventud, tal como lo revela un estudio publicado en la resta macronutrientes.http://www.ehowenespanol.com/convertir plos one y realizado por investigadores de la división de gramoscaloriascomo_352769/ (27 de marzo de 2015). Neurociencias de la Universidad Pablo Olavide. • Informe 2010 de OMS sobre sedentarismo y mala alimentación. CONCLUSIONES http://www.elespectador.com/noticias/salud/razonesdecirle Es importante que el personal administrativo y estudiantil le noalsedentarismoarticulo486408 (28 de marzo de 2015). preste más atención al tema de alimentación ya que hoy en • Deya cano. Diez razones para hacer ejercicio. día el menú de alimentos dentro de la universidad está lleno http://enforma.salud180.com/nutricionyejercicio/10 de opciones poco saludables y cada vez que se abre un razonesparahacerejercicio (28 de marzo de 2015). nuevo negocio ofrece opciones que no satisface el mínimo • La práctica del ejercicio ayuda a prevenir el Alzheimer. requerido de nutrición. http://www.agenciasinc.es/Noticias/Lapracticadeejercicio ayudaaprevenirelAlzheimer (28 de marzo de 2015).
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
26
Un breve vistazo a la programación funcional en C#
Programmers reflection on screen showing code by Iwam Gabovitch https://www.flickr.com/photos/qubodup/15204215650/ Attribution, non commercial (https://creativecommons.org/licenses/bync/2.0/) Photo Attribution by PhotosForClass.com
E d e r J u l i á n C h a m a l é C i fu e n te s j c h a m a l e .u s a c @g m a i l .c o m E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C Palabras claves: Programación, funcional, C#, paradigma, expresión lambda, calidad de código
En este artículo se hace una breve introducción al paradigma de programación funcional, el cual ha existido durante muchos años y sin embargo ha permanecido oculto para muchas personas. A lo largo del artículo también se muestran ejemplos del paradigma en el lenguaje de programación C# (diseñado primeramente para el paradigma orientado a objetos).
los lenguajes funcionales dado a que es una parte vital para determinar el flujo de código o ejecución (ya que no existe código para implementar ciclos). En la programación funcional existe lo que se conoce como funciones de mayor orden o de primer orden (firstclass functions) las cuales son todas aquellas que reciben como parámetro otras funciones y devuelven como resultado más funciones. Además los lenguajes funcionales admiten funciones anónimas que son funciones que carecen de un nombre y que son creadas en el momento (onthefly) que representan generalmente a expresiones lambda o que se escriben para crear una clausura o ambiente (closure) a otra función.
La programación funcional ha estado presente en el área de desarrollo durante mucho tiempo, sin embargo, se dice que el paradigma surge junto al lenguaje LISP en el año 1958. LISP es lenguaje que está basado completamente en los conceptos definidos por Alonzo Church en su sistema de cálculo lambda, alrededor de los años 1930's y 1940's; a pesar de todo, LISP agregó nuevos elementos que son Como resultado de todas estas características, fundamentales en la programación funcional de la comúnmente se define al paradigma de programación funcional como una manera natural de decirle a una actualidad. computadora que debe hacer, describiéndole las Bajo el paradigma de programación funcional la unidad propiedades de un problema en un lenguaje conciso o básica de construcción de software es la función, que a su formal. Una consecuencia de la transparencia referencial es vez permite la construcción de otras funciones. Otra que la única responsabilidad que tienen los programadores característica a destacar en la programación funcional es la es de especificar las funciones que describen y resuelven transparencia referencial (referential transparency) que un conjunto de problemas (reutilización) y delega a la significa que el valor que devuelve una función dependerá computadora el orden de evaluación, así como también única y exclusivamente de los parámetros que se pasaron posibles oportunidades de paralelización o incluso si una como entrada. A las funciones que cumplen con la función necesita ser evaluada en su totalidad. transparencia referencial se les denomina funciones puras (pure functions) y no tienen efectos colaterales en otras ¿Es una buena idea la programación funcional en C#? Eso depende del enfoque que se tenga sobre la partes de un programa de software. programación funcional, se puede ver como una solución a La recursividad también es una característica importante de un problema o una herramienta para una solución. Se
27 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
puede decir que se tiene más éxito si programamos en un lenguaje puramente funcional como lo es Haskell o LISP, pero hay que destacar que estos carecen de entornos de desarrollo con mucho potencial y realmente casi no son usados en proyectos de grandes empresas. Es por eso que la programación funcional en C# es una herramienta que nos permitirá dar soluciones más elegantes y simples, que nos servirá como un punto de partida para evaluar las oportunidades que brindan los lenguajes funcionales así como para explorar frameworks alternativos a .NET.
Métodos de Extensión Son métodos estáticos en clases estáticas que permiten agregar una funcionalidad a atributos u objetos declarados dentro de la misma clase. Para decir que un método es de extensión se debe usar la palabra this y esto hará que el compilador agregue el atributo ExtensionMethodAttribute al método. Para ver cómo funciona un método de extensión se muestra el siguiente ejemplo: namespace UsacEcysDtt { public static class StringHelpers { public static string unir(this string[] strings, string separador) { //Acá se agregó el atributo de extensión bool primer = true; var cadena = new StringBuilder(); foreach(var s in strings) { if (!primer) cadena.Append(separador); else primer = false; cadena.Append(s);
Funciones y Métodos En C# dado que es un lenguaje orientado a objetos, es necesario que cualquier función que declaremos esté dentro de una clase lo cual convierte a una función en un miembro de la clase, que a su vez se denomina método. Un método tiene todas las propiedades de una función, con la excepción de que el retorno de un valor es opcional. Un método puede usar información que es local a la función o } que es global para varios métodos, acá es donde hay que return cadena.ToString(); hacer una separación y para programar funcionalmente se } debe evitar utilizar este tipo de información compartida por } otras funciones, ya que esta información también puede } hacer accedida por otras instancias de un objeto o instancias de otras clases violando así la característica de Y para utilizar este método se debería hacer algo así: efectos no colaterales. Para adaptar un método como una función lo que se debe hacer es agregar el modificador string[] strings = new[] { static, para que el método no sea miembro de una instancia "ser", "o", "no", "ser" }; y sea público y accesible desde cualquier lugar. Console.WriteLine(StringHelpers.unir(strings, " "));
Funciones anónimas y expresiones lambda Las funciones anónimas en C# son aquellas que carecen de un nombre y lo único que se define son las instrucciones que se van a evaluar cuando llegue el momento de su ejecución. Una expresión lambda es una sintaxis para escribir una función anónima y permite que el código sea más legible y simple para los programadores. Una expresión lambda puede ser: Func < int, int, int > sumar = (int a, int b) = > a + b;
En general se recomienda que los tipos de una expresión sean especificados, dado que las reglas de inferencia del compilador son muy complejas y generalmente arrojan errores debido a la conversión de tipos. En general se recomienda que los tipos de una expresión sean especificados, dado que las reglas de inferencia del compilador son muy complejas y generalmente arrojan errores debido a la conversión de tipos.
Que sin embargo se puede sustituir por: Console.WriteLine(strings.unir(" "));
Dado que el método está extendiendo la funcionalidad para el tipo string[]. Lo que hace al lenguaje mucho más claro y limpio, como consecuencia también la programación es más elegante y fácil de mantener ya que permite la refactorización de código. Funciones Genéricas Permiten hacer llamadas a funciones que son comunes para varios tipos, pero que agregan la funcionalidad de que el compilador puede hacer verificaciones de tipos y lanzar algún error de tipos incompatibles, para ejemplificar esto se muestra una función marcada como genérica en la cual sólo se especifica un tipo T que se debe especificar cada vez
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
28
que se haga una llamada: static void ObjetoSalida < T > (T objeto) { Console.WriteLine("Objeto: {0}", objeto); }
var personasConIEnSuNombre p.nombre.Contains("i") select p;
=
from
p
in
gente
where
Que se puede explicar cómo: para una persona p entre la gente que tenga en su nombre una i, agréguela en una lista y devuélvala. Lo cual es muy claro y conciso y ahorra Cada vez que se desee llamar a este método se debe hacer muchas líneas de código que podrían hacer esta tarea. especificando el tipo de parámetro a pasar: Casos de Éxito Entre los casos de éxito de la aplicación de la programación funcional con C# hay que incluir otro lenguaje que implementa el paradigma en un sentido más puro, este es Restricción de tipos F#. Las ventajas de trabajar con ambos lenguajes es que Esta es una funcionalidad de C# que permite limitar el ambos son soportados por la plataforma .NET de Microsoft alcance de las los tipos genéricos e indicar que un tipo debe por lo cual resulta muy ventajoso integrarlos. ser derivado de otro para que el código sea seguro y para ello se utiliza la palabra where para indicar que hay una Handelsbanken que uno de los mayores bancos en los restricción de tipos, por ejemplo la declaración: países nórdicos (Suecia, Noruega, Dinamarca y Finlandia) así como también tiene operaciones en el Reino Unido, static void ValorSalida < T > (T valor) where T: X { evaluó usar ambos lenguajes para aplicaciones de Console.WriteLine("Valor que hereda de X: {0}", valor.value); evaluación de riesgo financiero. Específicamente, el } arquitecto encargado del departamento de IT Jan Erik Ekelof tuvo como primera intención utilizar C# para Indica que a la función se le debe enviar un parámetro del desarrollar los productos asociados al cálculo de riesgos, tipo T que puede ser X, o T se deriva de X o T implementa sin embargo, hizo una prueba con un software pequeño en X en caso que X sea una interfaz. F# y luego de analizar tiempos de respuesta y resultados llegó a la conclusión que F# era la mejor opción para utilizar Árboles de Expresión en el core matemático. A pesar de esto, implementó varias Un árbol de expresión en C# es el equivalente a la función operaciones críticas en F# y mantuvo su idea de pasar el eval de algunos lenguajes interpretados o dinámicos y lo código restante, sin embargo, esto no dejó por un lado a C# que permite es tratar al código como datos. Para definir un ya que es el lenguaje que se utiliza en otras aplicaciones árbol de expresión es posible mediante la palabra clave que tienen comunicación con el core matemático. Expression, por ejemplo: ObjetoSalida < string > ("Un string"); ObjetoSalida < int > (42);
Expression < Func < int, int, int > > sumarExpr = (x, y) = > x + y;
Y para utilizar en alguna parte del código se debe compilar la expresión que acabamos de definir (acá se ve que el código puede ser un dato): Func < int, int, int > sumarCompilado = sumarExpr.Compile();
Y esto lo hará en tiempo de ejecución (runtime), es decir, esta expresión será evaluada hasta que se ejecute el programa y no antes. Esta funcionalidad hace posible el uso de LINQ que hace al código más fácil de entender y más pequeño. Una instrucción de LINQ típica es:
Handelsbanken es un caso en donde se ve como la parte de programación funcional en C# otorga ventajas ya que al implementar dicho paradigma, también es capaz de integrarse con plataformas que son puramente funcionales lo cual es una ventaja muy grande ya que permite migraciones de código menos costosas y da más versatilidad al código escrito. Entre las ventajas que encontró Jan Erik Ekelof de utilizar F# para los cálculos matemáticos fue que podían calcular toda la cartera bancaria en menos de un segundo y el tiempo de respuesta para una verificación de alguna transacción bancaria era en promedio menor a 100 milisegundos. Una estadística interesante es también que migrar código de C# a un lenguaje puro como F# reduce el número de líneas de
29 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
código en una proporción de ½ hasta ¼ del original.
C# brinda muchas herramientas de programación funcional agregándole validaciones de seguridad de tipos. Como parte final, hay que destacar que LINQ es la máxima El código funcional tiende a hacer mucho más pequeño y expresión del paradigma funcional en C# ya que provee una reutilizable que el orientado a objetos. sintaxis que es muy breve pero que brinda muchas características de alto nivel al lenguaje, además LINQ La programación funcional permite elevar la calidad de funciona como un puente entre el paradigma de código. programación orientada a objetos y programación funcional. A nivel de mapeos objetorelacionales, LINQ es una Es posible realizar una mezcla de programación orientada a herramienta muy poderosa que simplifica este enfoque en la objetos con programación funcional utilizando expresiones programación dando lugar a que sea una opción muy fuerte lambda, pero se dejan fuera algunas características como la en aplicaciones en los que se necesitan trabajar con transparencia referencial o funciones puras. modelos relacionales y que se deban hacer actualizaciones constantes, lo cual da más facilidad a implementar patrones REFERENCIAS de diseño como MVC. Desde este punto se puede ver como • Sturm, Oliver (2011). Professional Functional la dualidad de C# de trabajar orientado a objetos y Programming in C#: Classic Programming Techniques for funcionalmente permite que la plataforma pueda ser usada Modern Projects. Chichester: Wiley. en su totalidad para aplicaciones o bien pueda integrarse • Popovic, Jovan (10 de junio de 2012). Functional con otros lenguajes como lo demostró Handelsbanken. Programming in C#. http://www.codeproject.com/Articles/375166/Functional CONCLUSIONES programminginCsharp (24 de marzo de 2015) La programación funcional puede es un paradigma que • Ekelof, Jan Erik. Testimonials. permite escribir código más claro y conciso. http://fsharp.org/testimonials/ (31 de mayo de 2015).
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
30
Maquilas de desarrollo de software Las maquilas de software son un problema dentro de la sociedad guatemalteca ya que hacen que muchos talentos queden como simples trabajadores reducidos a cumplir un horario sin tener posibilidades de crecimiento y no pudiendo reclamar derechos laborales. A quick break from working by brandon king https://www.flickr.com/photos/bking/383772986/ Attribution, non commercial (https://creativecommons.org/licenses/bync/2.0/) Photo Attribution by PhotosForClass.com
Á n g e l F e r n a n d o H e r n á n d e z R o d r íg u e z a fh e r n a n d e z 8 9 @g m a i l .c o m E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C Palabras claves: Maquila, derechos, extranjeros
En nuestro país se ha venido dando una problemática con respecto a la carrera de sistemas ya que se han puesto de moda las empresas de OutSorcing o por subcontrataciones. Por lo general dichas empresas se dedican al desarrollo de software con bases de maquilas es decir priorizan la producción antes que al empleado, estas maquilas no respetan las leyes laborales, no dan ningún beneficio de ley y aun así todos los trabajadores que en ella desean laborar en muchas ocasiones no les basta con que los honorarios que los empleados devengan sean por medio de factura sino que incluso en casos extremos hacen que los nuevos empleados sean socio de dichas empresas para aprovecharse de los agujeros legales que encuentran en nuestras leyes. Desde los inicios de la humanidad las industrias siempre se han tratado de mejorar las ganancias y minimizar los costos. Al principio con los señores feudales que tenían tierras en bastedad mientras que los campesinos simplemente eran mano de obra barata buscando una producción en masa crecimiento en cuanto a las tierras, mejoras de rutas de exportación mientras que a los campesinos dándole simplemente lo necesario para vivir.
ya que los sueldos y beneficios para la clase trabajadora eran demasiado poco, con dicho movimiento querían cambiar todo el contexto social de esta clase evitar que la gente rica se volviera más rica y que a los pobres se les diera un trato más digno. En la década de los 80 se dio la creación de las maquilas que eran empresas donde no se respetan los estatutos laborales y buscan la creación en masa de artículos en muchos casos textiles o de servicios como las llamadas maquilas del futuro o como se les conoce ahora Call Center además de este tipo de maquilas existe otro en la actualidad conocidas dentro del contexto informático las cuales son de desarrollo de software. En Guatemala este fenómeno ha llegado a niveles en los cuales algunas industrias no tienen idea ya que por ser un trabajo fuera de la vista de todos, debido a que el producto por no ser tangible se llega a pasar desapercibidos por el resto de la industria. En el código del trabajo se especifican que deben darse a todo empleado como lo son 15 días de vacaciones al haber laborado un año dentro de una empresa, tener derecho al Igss, 2 suedlos más al año como lo son el bono 14 y el aguinaldo al final de año, el pago del 7mo día y los derechos que debe tener una mujer embarazada todos estos son beneficios se dan según la empresa y en algunos casos se dan unos adicionales como son hasta los 16 sueldos al año seguro de vida y dental.
En la década de los 40 se dio en Guatemala una revolución En estas maquilas del software a los trabajadores no se les
31 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
respetan las leyes laborales ya que en muchos casos no se dan ningún tipo de prestaciones, se cobran directamente el impuesto a los trabajadores y no se les presta atención a sus necesidades básicas. Este fenómeno hace que la mano de obra se abarate y hace que el país sea un buen exportador de software ya que en otros países la mano de obra es bien pagada y la calidad del producto sigue siendo la misma que en Guatemala. Las maquilas de software son una industria poderosa en Guatemala ya que muchas empresas multinacionales prefieren subcontratar a este tipo de empresas a construir sus propios departamentos de desarrollo tecnológico, ya que por ser empresas grandes están obligadas a dar prestaciones mientras que estos lugares buscan los agujeros legales para evadir estas. Por ejemplo que una misma empresa tenga 4 diferentes nombres con esto indican que cada empresa posee menos de 5 trabajadores y ya la ley nos los obliga a brindar las prestaciones o evadir impuestos, no obstante dichas empresas crecen ya que las personas prefieren tener un ingreso mensual a estar desempleada ya que estas empresas si dan facilidades de ingreso en muchos casos no piden experiencia laboral, antecedentes o incluso estudios avanzados se centran en que se contrate una persona que aprenda y que se le pueda explotar.
año. Las maquilas de software muchas veces son puestas por gente de países extranjeros haciendo que incluso personas nacionales con mayor conocimiento en el ámbito tecnológico tengan que ser simplemente un trabajador más ya que le quitan la oportunidad franca de crecimiento. En muchas de estas empresas no importa tanto los estudios universitarios valoran más la experiencia laboral de los individuos, para los trabajadores las oportunidades de crecimiento y/o mejoras salariales no son constantes ya que los puestos fuertes son ocupados por medio de amistades de los mismos dueños. Debido a esto muchos profesionales buscan oportunidades de crecimiento mediante los llamados FreeLancer que son proyectos de Software a clientes pequeños pero con un pago más acorde al valor de los conocimientos adquiridos. Las maquilas de software solo han traído más pobreza al país ya que mucho del ingreso que ellas perciben se ve reflejado en otros países y no tanto en el país que desarrollo el producto.
En Guatemala hay que mejorar muchas cosas y por eso no se le da la importancia ni el seguimiento a este tema. Se deben perseguir a las empresas sin escrúpulos que La explotación dentro de estos lugares se da en primer priorizan muchas cosas antes que al empleado. lugar con el juego de horarios muchas veces hacen que los trabajadores amanezcan programando sin recibir ningún CONCLUSIONES tipo de remuneración, no reciben los días de vacaciones que la ley obliga al cumplir un año ya que en muchos casos La industria en Guatemala en muchos casos ha sido llevada solo dan 5 días y ni por ser pocos días los trabajadores por un mal camino ya que nunca se han hecho medidas pueden tomarlos seguidos, les otorgan de 1 en 1 durante para regular a los diferentes tipos de empresas y el trato a varios meses, la utilización de aparatos de comunicación es los empleados que se les da. prohibida e incluso la salidas al baño son monitoreadas. Según las personas que laboran bajo estas situaciones las En el ámbito del desarrollo de sistemas se debería de condiciones son malas ya que desde que le midan el tiempo priorizar al recurso humano antes de las ganancias que este para ir al baño como no contar con una ventana por lo produce ya que si las personas se sienten cómodas en su menos para ver al mundo exterior hacen que el ambiente lugar de trabajo y siente que son valoradas, la producción y laboral se vuelva hostil y muchos dicen “estudiamos tanto rendimiento en general será mejor. para tener tan malas condiciones laborales”. Hay que implementar leyes en el país que no permitan que Durante la última época las maquilas de software han personas extranjeras vengan a hacerse millonarios a implementado otra modalidad de contratación, ya que no costillas del pueblo de Guatemala. No se debe de permitir realizan un contrato legal especificando los derechos y que para la evasión de pago de prestaciones una misma obligaciones de las personas que desean ingresar y empresa tengo varios nombres y cada sector de empleado prefieren convertirlos en socios legales de alguna de las esté inscrito en diferente empresa. tantas empresas que utilizan para evadir impuestos con esto hacen que los trabajadores renuncien a hacer Al laborar dentro de estas empresas lo indicado es tomar denuncias y se las arreglan para que no pueden trabajar en asesoría legal antes de firmar cualquier contrato. otra empresa que esté en la competencia directa durante 1
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
32
Importancia de administrar la configuración En el desarrollo de software actual se maneja demasiada configuración y en Guatemala no se tiene una buena forma de administrarla. Me gustaría dar una introducción de cómo poder administrar la configuración de los entornos de desarrollo y producción del software de manera automatizada y moderna. G eps er H ar ol do H oi l G onz ál ez g e h a r o l d @g m a i l .c o m E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C Palabras claves: Administración, configuración, software, Guatemala, Puppet, Vagrant, Docker
En Guatemala el desarrollo de software es muy pobre y siendo un país con la mirada encima del mercado de software a nivel global deberíamos de hacerlo mejor. En mi corta experiencia he podido notar cómo las empresas guatemaltecas hacen de menos el proceso de salida a producción, agilidad de cambios, adaptación a los requerimientos distintos sobre el camino, agilidad de desarrollo, proceso adecuado de pruebas, capacitaciones, entre otras cosas. A la vez se enfocan en cosas que, como mínimo, no son tan útiles en una empresa tecnológica. Administración de la configuración es asegurar la calidad de un software en cualquiera de las etapas de desarrollo. Esto se logra llevando un estricto control de cambios en todos los componentes que forman dicho software (incluyendo al sistema operativo) y teniendo siempre una versión estable y lista para ser instalada en producción. En mi experiencia laboral me he topado con varias empresas que tienen procesos de desarrollo desactualizados y eso les representa un montón de problemas casi de manera inmediata, los cuales tratan de mitigar de otras formas y no atacando el problema de raíz que implicaría cambiar la manera en la que se administran los proyectos.
administran los ambientes de desarrollo es tener un servidor central y los desarrolladores se conectan mediante sesiones remotas. Esto intenta cubrir la necesidad de tener el proyecto centralizado pero acarrea varios problemas, de los cuales listo tres a continuación: • Ancho de banda: el primer problema con el que uno como desarrollador se topa en determinado momento es que las conexiones se vuelven lentas conforme se van agregando usuarios a la red. Si a esto le sumamos que cada proyecto está virtualizado en un servidor central y cada grupo de programadores se conecta al mismo usando la misma red, esto se vuelve un caos. Las personas no pueden trabajar todas al mismo tiempo, los servidores se caen, hay horas pico, el desarrollo se atrasa, genera desesperación de los programadores, etc. • Cantidad de conexiones: generalmente los servidores limitan la cantidad de conexiones simultáneas que pueden hacerse. Me he visto en situaciones donde hay que, literalmente, turnarse para conectarse al servidor y poder trabajar. • No hay control de cambios: No se puede saber quién hizo algún cambio en específico y mucho menos cuándo. Esto aplica tanto para la configuración del servidor como para cambios en el código.
Otra de las formas (de nuevo, no tan buenas) en las que me he visto trabajando es usando un repositorio y teniendo una máquina virtual con todo instalado y configurado, lista para desarrollar el proyecto. En este esquema cada programador tiene una copia de la máquina virtual en su computadora y cuando hace cambios en el software los manda al repositorio y todos los demás pueden obtenerlos. A primera Una de las formas (no tan buenas) en las que se vista se puede decir que esta forma es mejor que la anterior
33 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
pero aún hay algunos problemas, como: • Dispersión de la configuración: cada programador se puede ver en necesidad de configurar la máquina virtual de manera diferente o bien instalarle alguna dependencia para que funcione algo nuevo que ha desarrollado. Este tipo de cambios no van registrados en el repositorio del código y por lo tanto no funcionará en la máquina virtual de los demás programadores. • Otro problema potencial es que el desarrollador podría "olvidar" esos cambios de configuración y cuando se pase a producción esto pueda ser un problema, porque no se aplican esos cambios. • Pérdida de tiempo cuando algo no funciona: si algo no funciona porque necesitamos una dependencia no registrada en el repositorio perderemos tiempo averiguando qué es y quién la instaló. Luego habrá que ponerse de acuerdo en la versión a usar hasta que todos tengan lo mismo. Usualmente es más difícil si hay algunos programadores trabajando a distancia.
puppet de tal manera que con un solo comando todos los programadores pueden tener la última versión de la configuración completa del servidor. • Existe una especie de pruebas unitarias para la configuración del servidor y con un comando podemos ver si todo se ejecuta de la manera esperada. • Puppet y vagrant se configuran por medio de simples archivos de texto que pueden ir en el repositorio del proyecto, de esta forma sólo clonamos dicho repositorio y levantamos la máquina de vagrant, la cual a su vez se provisionará automáticamente con puppet y listo, nuestro proyecto está listo y funcionando al cien por ciento. • Podemos tener aplicaciones distribuidas fácilmente con docker dado que nuestra aplicación vivirá en un contenedor y esto hará que sea independiente de todo lo demás. Para que una organización o equipo pueda poner a funcionar un proyecto usando estas herramientas tendría que seguir más o menos los siguientes pasos: 1. Tener un repositorio de versiones (en github por ejemplo). 2. Instalar puppet (ver referencia 3). 3. Crear los archivos de configuración de puppet (ver referencia 4). 4. Ejecutar el famoso “puppet apply” (ver referencia 4).
Los anteriores son sólo algunas de las formas en las que se intenta administrar el desarrollo de software y ambas son muy malas para publicar cosas en producción. Si no están bien documentados los cambios a la configuración del servidor puede darse el caso de que la instalación sea fallida y deba posponerse, hacer un rollback, etc. Este tipo de herramientas para administrar la configuración es tan útil y a la vez tan desconocida en Guatemala que Todos estos problemas los soluciona un administrador de la todavía no logro entender bien por qué muy pocos las usan. configuración y de eso les escribo hoy. Considero que uno Quiero pensar que es por desconocimiento por parte de la de los mejores es puppet, ya que es sencillo de usar y empresa o falta de gente capacitada. ahorra mucho tiempo y dolores de cabeza en todo el flujo de desarrollo, incluidas las instalaciones en producción. Por ejemplo Xoom, que es una empresa millonaria que opera en San Francisco, California y que ahora también se También tenemos otras herramientas muy útiles como ha instalado en Guatemala, se ahorra miles de dólares y vagrant que es un gestor de entornos de desarrollo. En cientos de horas en instalaciones durante casi todos los otras palabras con vagrant puedes crear máquinas virtuales días del año. para desarrollo donde en cada máquina vive nuestro proyecto. Dicha máquina acepta archivos de configuración CONCLUSIONES de puppet por lo que pueden ser construidas en base a configuración que nosotros definamos. Las herramientas de administración de la configuración deberían de tomarse en cuenta en los pensum de estudio Existe también otra herramienta llamada docker que trabaja para que haya más gente capacitada en el mercado en conjunto con puppet y sirve para empaquetar y distribuir guatemalteco y así progresar en el desarrollo de software aplicaciones. como país. En la carrera de Ingeniería en Ciencias y Sistemas este contenido podría impartirse en el curso de Si usamos puppet en conjunto con vagrant y docker, Análisis y Diseño de Sistemas 2. entonces tendremos las siguientes ventajas. • Cada programador puede, con un simple comando, Las empresas deberían de invertir en capacitación e reproducir el ambiente de desarrollo en su máquina. Dicho implementación de herramientas de este tipo para mejorar ambiente será igual al de producción. su flujo de desarrollo. • Cada cambio en la configuración del servidor, instalación de paquetes, descarga de archivos, etc., será manejada por Actualmente hay empresas locales que contratan
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
34
desarrolladores de software extranjeros porque consideran que el proceso de desarrollo es malo en Guatemala cuando la verdadera razón es que dichos desarrolladores sólo están más actualizados en varias cosas como estas. Usar este tipo de herramientas nos hace mejores prospectos tanto para empresas locales como para empresas internacionales.
REFERENCIAS • Vagrant (software). http://en.wikipedia.org/wiki/Vagrant_(software) • Puppet (software) http://en.wikipedia.org/wiki/Puppet_(software) • Installing Puppet: Debian and Ubuntu.
https://docs.puppetlabs.com/guides/install_puppet/install_debian_ubuntu .html
• Getting Started With Puppet Code: Manifests and Modules. https://www.digitalocean.com/community/tutorials/getting startedwithpuppetcodemanifestsandmodules • What is Docker? https://www.docker.com/whatisdocker/
35 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
Avance de los Cyborg en insectos
Uno de los avances más importante de los últimos tiempos en organismos cibernéticos en insectos es el poder controlar de forma remota a un escarabajo volador (Mecynorrhina torquata que en promedio tiene unos 6 centímetros de largo y pesar unos 8 gramos)
http://integraloptions.blogspot.com/2014/03/michelmaharbizcyborginsectsand.html J os é F r anc i s c o R odas V él i z j fr o d a s v e l @g m a i l .c o m E s tu d i a n te d e In g e n i e r ía e n C i e n c i a s y S i s te m a s U S A C Palabras claves: Cyborg, Cíborg, Organismos cibernéticos, Insectos controlados a distancia
Desde que aparecieron los componentes electrónicos, el ser humano ha soñado con la integración de seres vivos con componentes electrónicos denominados Cyborg, con lo cual se busca la mejora de ciertas desventajas que generan las discapacidades en las personas como: falta de miembros, falta de la audición, la falta de la vista, etc. Con base en los estudios del funcionamiento de los componentes biológicos que se pueden denominar como sensores y actuadores, se ha logrado un avance significativo en la interconexión de ciertas áreas del cerebro y el cuerpo con componentes electrónicos que le ayudan en su funcionamiento o los reemplazan. Una muestra de ello es el implante coclear que sustituye el oído dañado y así dejar que una persona escuche de nuevo.
Sistemas Microelectromecánicos (MEMS) en Baltimore EEUU, este prototipo fue hecho por medio de un transmisor alimentado por un Niquel63, Básicamente lo que lograron encontrar la forma de aligerar el peso de dicho transmisor A partir de este momento una de las agencias que más se interesó en este proyecto fue la agencia DARPA (Defense Advanced Research Projects Agency) del departamento de defensa de Estados Unidos en conjunto con las universidades más prestigiosas en el campo tecnológico como el MIT, Berkeley Michigan y ya la mencionada universidad de Cornell. Este Proyecto fue llamado HIMEMS (híbrido Insecto Sistemas MicroElectromecánicos) encabezado por el Profesor Michel Maharbiz quien fue el que empezó a experimentar con escarabajos sometiéndolos a estímulos pulsos negativos y positivos para controlarlos.
El objetivo de utilizar los escarabajos voladores como sujetos de prueba es el de aprovechar su tamaño y fuerza para poder realizar las acciones de vuelo y caminata de una forma normal, sin verse afectados por el peso de los Durante el año 2006 el primer prototipo se presentó por componentes electrónicos utilizados para su control. científicos de la universidad de Cornell en la feria de Además se pretende integrar una micro cámara de video y
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
36
un micro micrófono. El conjunto de estos componentes pueden pesar 1.5 gramos y tener una longitud de 1 centímetro, esto comparado con los 8 gramos de peso y 6 centímetros de longitud del escarabajo se puede decir que los científicos no sobrepasaron las capacidades del escarabajo para cargar un peso extra que esta entre el 20% y 30% de su peso.
y estos permiten el acceso a automóviles, casas, cajas fuertes, etc. En fin se puede observar que el límite seria las necesidades existentes en el ser humano.la biotecnología, medicina, electrónica, robótica, etc. Ya teniendo el personal que tenga el conocimiento necesario se tendría que hacer una sociedad entre las distintas universidades para lograr tener un centro de investigación adecuado y así todos nos beneficiemos de los conocimientos y resultados que se La forma en que los científicos lograron la conexión entre obtengan de dicha unión. los componentes electrónicos y el escarabajo, fue por medio de 6 electrodos los cuales se conectan a los lóbulos CONCLUSIONES ópticos y a los músculos que realizan el vuelo del escarabajo. Estos permiten la transmisión de impulsos Una de las ventajas que estos cyborg pueden aportar es eléctricos provenientes del microprocesador ubicado en el que en escenarios de una catástrofe pueden ser útiles para lomo del escarabajo. Las órdenes son enviadas desde un poder ayudar a encontrar personas por medio de cámara ordenador al microprocesador por medio de ondas de radio. debido a su diminuto tamaño. Los estímulos eléctricos suministrados al escarabajo no son cualquier tipo de señal eléctrica, para cada instrucción se necesita afectar con cierto voltaje y frecuencia para que el escarabajo lo interprete como una orden. Debido a que no se tiene mucho conocimiento de cómo es que la mayoría de insectos realizan su vuelo, las frecuencias y voltajes se obtuvieron a base de prueba y error en varios escarabajos hasta lograr que reaccionaran a las órdenes enviadas desde el microprocesador.
Dentro de los cuestionamientos de estos cyborgs son de aspecto ético, ya que no se tiene claro con qué fin serán utilizados.
Existen otras especies de insectos con las que se han realizado pruebas, pero por las limitaciones del conocimiento de cómo es que funciona el cerebro de los insectos y la miniaturización de los componentes electrónicos solo se han logrado con éxito los experimentos sobre cucarachas y escarabajos.
Monografias, La robótica, la bioingeniería, hacia la evolución humana los cyborg, http://www.monografias.com/trabajos99/robotica bioingenieriaevolucionhumanaloscyborga/robotica bioingenieriaevolucionhumanaloscyborga.shtml
REFERENCIAS NCYT, Cíborg de escarabajo volador, http://noticiasdelaciencia.com/not/13242/ciborgde escarabajovolador/ (20/03/2015)
MI+D, Un ejército de escarabajos ciborgs, Las aplicaciones sobre el ser humano pudieran llegar a no http://www.madrimasd.org/informacionidi/noticias/noticia.asp tener límites, ya que con los avances de la tecnología y los ?id=42108 (28/12/2009) estudios sobre el cuerpo humano siguen avanzando con el pasar del tiempo. Actualmente se puede ver ya algunas MIT Technology Review, El escarabajo a control remoto del mejoras al cuerpo humano entre ellos están los implantes ejército, http://www.technologyreview.es/informatica/35280/ cocleares que ayudan a las personas con cierto tipo de (03/01/2009) sordera a poder escuchar, ojos biónicos que ayudan a las personas con cierto tipo de ceguera, entre Direct Industry, Precision flying with cyborg beetles otras.Actualmente ya hay un ser humano con una antena http://trends.directindustry.com/newstrends/cybugs implantada en el cerebro la cual le permite el poder ver precisionflyingwithcyborg colores por medio de sonidos y su nombre es Neil beetles/?utm_source=trends&utm_medium=email&utm_con Harbisson, también existen implantes no tan elaborados tent=newsandtrends_title&utm_campaign=directindustry_tre que sirven de seguridad ya que se implantan en las manos nds0415_En (17/03/2015)
37 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA ‐ FACULTAD DE INGENIERÍA
ESCUELA
DE
CIENCIAS
Y
SISTEMAS
38