Issuu on Google+

es z n a av s e ia d g n o l a o n Gr c e t a ro l u e t d u lf e n e


2. Tecnologia

Grandes espectativas tecnologicas para el futuro.

5. Software libre para los amantes de lo gratuito

8. Videojuegos para el 2014

Lo nuevo para chicos y no tan chicos

12. Programacion movil en android ¿Por que android para programar?

15. Optimizacion de codigo De ayuda en tu tarea

Publicado por Grupo de ingenieria en sistema computacionales

Colaboradores Luis A. Patiño Duran Jaime O. Pech Pérez Paola Hernández Ceballos Juan A. Cruz Alayola


Tecnología Grandes espectativas tecnologicas para el futuro

Texto e imagenes Jaime Pech Perez

¿Que es la tecnología? La Tecnología se define como el conjunto de conocimientos y técnicas que, aplicados de forma lógica y ordenada, permiten al ser humano modificar su entorno material o virtual para satisfacer sus necesidades, esto es, un proceso combinado de pensamiento y acción con la finalidad de crear soluciones Se considera que en los últimos años podreútiles. mos ver un adelanto en el avance de la tecnología en el planeta esto incluirá los medios de Evolucion del planeta con la comunicación, transportes, internet y avantecnologia ces en las herramientas de salud. La tecnología evoluciona rápidamente en el mundo en que vivimos, se considera que nuestro mundo revolucionara en aproximadamente unos 30 años. Para tener este cálculo se consideraron las tecnologías más importante e innovadoras en la actualidad. 2


Animales virtuales con mentes digitales Aunque emular un cerebro humano está aún muy por encima de las capacidades de la tecnología actual, proyectos actuales como OpenWorm buscan digitalizar el cerebro de un gusano, por lo que pronto comenzarán los experimentos para emular las funciones neuronales de organismos más complejos, como mamíferos. Las mentes digitales de los animales podrían ser “subidas” a una interfaz robótica, revolucionando nuestra relación con las mascotas y permitiéndonos comprender mejor la evolución de las especies.

Curar la sed del mundo con el agua de mar Hoy en día ya existen grandes proyectos para desalinizar el agua marina y utilizarla como agua potable. Para el 2030, estos proyectos crecerán a escala industrial, echando mano de los recursos de energías renovables para su operación, como la energía solar y células fotovoltaicas. Los expertos afirman que los déficits de agua potable en grandes zonas del planeta serán historia para finales de la década del 2030.

Maquinas militares autómatas Internert interplanetario Las misiones tripuladas a Marte serán una realidad para el 2030, ya sea en proyectos de exploración de la NASA o de colonización interplanetaria, como el proyecto MarsOne de la empresa Virgin, que planea llevar una tripulación civil al planeta rojo. Sin embargo, la comunicación entre Marte y la Tierra también puede ser vista como la primera forma de contacto interplanetario que haya emprendido el hombre, con lo que habrá multitud de necesidades técnicas que resolver.

Aunque podría parecer una fantasía de tipo TERMINATOR, hoy en día ya existen sistemas no controlados con humanos que tienen potencial militar, táctico y estratégico.

3


El Aegis Combat System, que ya está en funcionamiento, tiene un sistema no vigilado por operadores humanos que detecta automáticamente lanzamientos de misiles enemigos para interceptarlos y destruirlos, además del sistema REDOWL, que se encarga de buscar y eliminar francotiradores enemigos en zonas de guerra.

Geo-Ingeniería a gran escala A medida que el cambio climático se vuelve más dramático, la ciencia tendrá que comenzar a buscar soluciones prácticas para mantener las condiciones de vida en la Tierra como estables. Algunas de las técnicas de geo ingeniería más polémicas van desde árboles artificiales y fertilización de los océanos hasta proyectos de control climático para contrarrestar las emisiones de carbono en la atmósfera terrestre.

Asistentes personales con inteligencia artificial El programa Siri para los más recientes modelos de Apple será solamente el ancestro de los asistentes personales de las siguientes generaciones de dispositivos y computación personalizada. Ubicuos, capaces de adaptarse y comprender las necesidades precisas de los usuarios, estos asistentes serán capaces de comportarse como nosotros lo haríamos al responder emails y acordar citas, llevando una agenda por ellos mismos e informándonos sobre ella, como un auténtico asistente personal. Dvorsky advierte, sin embargo, que debemos cuidar qué grado de autonomía le damos a nuestros clones virtuales.

4

Transplantes de organos para todos La medicina personalizada basada en los genes particulares de las personas y la posibilidad de producir, mediante biotecnología, órganos humanos autónomos hechos a la medida de los pacientes, volverá eventualmente irrelevante la figura del donador de órganos. Para el 2030 podremos producir órganos y tejidos a partir de las células madre de cada persona, lo que disminuiría casi en su totalidad el riesgo de que los órganos sean rechazados por el cuerpo.

Computadores por todas partes La noción de un mundo completamente computarizado no es solamente el argumento de una novela futurista, sino algo que ya comenzamos a ver en los automóviles y en muchos electrodomésticos. Este fenómeno es descrito como “everyware”: las computadoras estarán presentes en nuestra ropa, en nuestros accesorios de moda e incluso en lentes de contacto. Nos comunicaremos con ellos a través de una interfaz basada en gestos táctiles naturales y lenguaje vocal cotidiano; sin embargo, la diferencia será que las computadoras tomarán decisiones autónomas (como ajustar el tamaño de la ropa, tal cual podemos ver en la película BACK TO THE FUTURE 3), por lo que su presencia será casi imperceptible.


Texto e imagenes Juan A. Cruz Alayola

ft o S

e r b o i l l e e r d a s w nte

a m a s o l a o r a P tuit gra

El software libre está liderado por un pionero llamado Richard M. Stallman y el proyecto GNU que se inició en 1984.

¿Que es el software libre? El software libre es una cuestión de libertad, no de precio, respeta la libertad de los usuarios y la comunidad. En términos generales, los usuarios tienen la libertad de copiar, distribuir, estudiar, modificar y mejorar el software. Con estas libertades, los usuarios (tanto individualmente como en forma colectiva) controlan el programa y lo que hace.

5


Libertad 0: la libertad para ejecutar el programa.

¿Que es el software de codigo abierto?

Libertad 1: la libertad para estudiar el funcionamiento y adaptación del programa.

Formó parte originariamente de una campaña de marketing por parte de Software Libre. Se hace hincapié en los beneficios técnicos y económicos del código abierto y el libre desarrollo. Es aquel distribuido bajo una licencia que permite su uso, modificación y redistribución lo que permite estudiar el funcionamiento del programa y efectuar modificaciones con el fin de mejorarlo y/o adaptarlo a algún propósito específico. Poco software que sea reconocido por la Iniciativa de Código Abierto y que a su vez no sea software libre, de aquí que se utilicen casi siempre ambos términos juntos para referirse a un software.

Libertad 2: la libertad para redistribuir copias. Libertad 3: la libertad para mejorar el programa y luego publicarlo a toda la comunidad.

La libertad para utilizar un programa significa que cualquier individuo u organización podrán Beneficios del software libre y de ejecutarlo desde cualquier sistema informático, codigo abierto con cualquier fin y sin la obligación de comunicárselo subsiguientemente ni al desarrollador ni •ARREGLAR EL SOFTWARE a ninguna entidad en concreto. •COMPARTIR •CONOCER Y CONTROLAR LO QUE ESTÁ PASANDO •BENEFICIOS TÉCNICOS •BENEFICIOS ECONÓMICOS

6


s a m s o t c e y o r s P o d i c o n co La filosofía Open Source ha tomado cierta importancia en el desarrollo de proyectos que acogieron esta filosofía en donde se encuentran algunos que se destacan o se han dado a conocer más que otros.

1. phpBB Es un sistema de gestión de foros.

3. Ubuntu 2. Firefox Aunque el código está desarrollado en Mozilla, cualquiera puede realizar aportaciones a un proyecto

Se ha convertido en la principal referencia hablando de las distribuciones del sistema operativo Linux con un gran impacto en otros proyectos de Open Source.

7


Jue g pa os d ra e el 2 vid 014 eo Texto e imagenes Paola Hernández Ceballos

¿Quién no ama los videojuegos? En esta edición mostraremos algunos de los videojuegos que esperamos este 2014; nos encontraremos con ambientes siniestros así como divertidos. No esperemos más y demos un recorrido para conocerlos mejor.

8


IGHT L G N I DY Para los amantes de los zombis llega este 2014 Dying Light. De los creadores del galardonado Dead Island y Call of Juarez, desarrollado por Techland, lo nuevo de Warner Bros. Un videojuego en primera persona con varios toques de survival horror.

En una ambientación terrorífica y opresora podremos recorrer y explorar a nuestro antojo, golpear y desmembrar zombis con todo tipo de armas que podemos crear. Dying Light está siendo desarrollado tanto para las consolas de nueva generación: PS4 y Xbox One, como para las de la presente generación: Xbox 360, PS3 y, por supuesto, PC.

PLANTAS VS. ZOMBIES: GARDEN WARFARE Si gustas de los zombis pero con una faceta humorística entonces tenemos para ti Plants vs. Zombies: Garden Warfare. Plants vs. Zombies se mete en las trincheras con una nueva experiencia de acción explosiva. Vuela zombis por los aires, siembra plantas y conoce nuevos personajes en el explosivo mundo que mezcla la profundidad de un juego de acción online tradicional con el humor refrescante de Plants vs. Zombies. Esta versión contara con multijugador hasta para 24 jugadores pudiendo elegir tu bando, al igual que podrás modificar tus plantas y zombis con cientos de artículos únicos.

9


LORDS OF THE FALLEN Lords of the Fallen será un juego de acción y rol en tercera persona, nos mostrara una experiencia fascinante con toques estratégicos, en un mundo por explorar.

El juego contará con un sistema avanzado de combate con enormes arboles, ambientado en un mundo de fantasía en el que los dioses han fallado a la humanidad. El jugador asumirá el papel de un humano llamado Harkyn que tendrá que embarcarse en una aventura para evitar que una fuerza sobrenatural arrase el mundo. El jugador podrá tomar decisiones a lo largo de la aventura que alteren el mundo y cambien la historia del juego.

Lords of the Fallen a sido producido por CI Games, el juego es obra de Tomasz Gop, productor de The Witcher 2: Assassins of Kings.

10

ULT

RA S TRE

ET F IGH T

ER I

V

Esta es la actualización para la última entrega de la popular y exitosa saga de lucha de la compañía japonesa Street Fighter.

Capcom ha anunciado que la versión para consolas de Ultra Street Fighter 4 llegará a EE.UU. y Europa para la primavera de 2014, poco después del estreno de la versión arcade.

La actualización de Super Street Fighter 4: Arcade Edition incluirá nuevos luchadores como Elena, Hugo, Poison y Rolento y Capcom ha asegurado que Ultra SF4 será la versión “con una influencia más abierta” de la serie, ya que la compañía japonesa se ha tomado la molestia de leer más de 20.000 comentarios hechos por los fans con el objetivo de incluir las modificaciones oportunas para hacer el mejor juego posible.


FIFA 2014

Por supuesto no podíamos dejar pasar “FIFA 2014”. En esta versión podrás sentir la electricidad de un estadio con vida y experimenta la majestuosidad de los escenarios de futbol más grandiosos del mundo. Cada zancada cuenta con la agilidad y explosividad de atletas de clase mundial, además, “FIFA 14” ofrece cientos de habilidades y comportamientos nunca antes vistos.

CASTLEVANIA: LORDS OF SHADOW 2

De la saga Castlevania y la secuela de Castlevania: Lords of Shadow. a historia se desarrolla después del epílogo de Castlevania: Lords of Shadow, donde encontramos un Gabriel Belmont transformado en Drácula. Con la aparición de Zobek en la guarida del protagonista, este le promete que si lo ayuda a derrotar a Satán, él le ayudará a Gabriel a quitarse esa maldición.

Y así damos por terminado este tour. Espero les haya gustado y pronto los sorprenderemos con más y mejores videojuegos próximos a salir. 11


Programacion movil en android Texto e imagenes Luis A. Pati単o Duran

12


En este artículo nos introduciremos en as-

pectos básicos del por qué la programación móvil, pero antes de entrar vamos a hablar acerca de la telefonía móvil.

Telefonía móvil En la actualidad la telefonía móvil está cambiando la sociedad actual, tal y como la ha hecho internet. Los teléfonos móviles son compactos, pueden llevarse en un bolsillo sin complicaciones, es decir tenemos acceso a un sinfín de aplicaciones, podemos comunicarnos con nuestros amigos y familiares, acceder a internet, etc.

Tal y como en una computadora ordinaria, sin un sistema operativo no sería nada, pero eso no es problema ya existen diversos sistema para estos pequeños pero poderosos dispositivos, entre los más importantes se encuentran android, Windows Phone, iPhone, symbian, BlackBerry, etc. De los cuales el más utilizado es android.

Android como plataforma de desarrollo El lanzamiento de android como nueva plataforma para desarrollo de aplicaciones móviles ha causado gran impacto entre los usuarios y las industrias que se dedican a producir aplicaciones para este sistema.

Para destacar las razones por la que android es distinto a otros sistemas, caben por destacar las siguientes: •Plataforma abierta. •Adaptable a cualquier tipo de hardware. Puede que le parezca extraña la siguiente pregunta, pero ¿Podría un teléfono móvil convertirse en la nueva computadora del siglo XXI?, por muy extraño e irreal que lo parezca, no lo es, ya que estos dispositivos están ganando terreno en el mundo de la tecnología, pues no solo serviría como herramienta para ratos de ocio, comunicación, o búsqueda de información, si no que en el podemos realizar tareas tales como en nuestra propia computadora.

•Portabilidad asegurada. •Arquitectura basada en componentes inspirados en internet. •Gran cantidad de servicios incorporados. •Aceptable nivel de seguridad. •Optimizado para baja potencia y poca memoria. •Alta calidad de gráficos y sonidos.

13


Para poder programar aplicaciones para este sistema operativo, tenemos a disposición varias herramientas tales como la de motodev studio de Motorola, y eclipse.

•Es poco intuitivo para los usuarios nuevos. •Si se va a programar una nueva aplicación, se debe tener en cuenta la versión a programar, ya que versiones obsoletas no cuentan con recursos hardware y software suficientes para correr la aplicación.

Google Play Ventajas de programar para móviles con android Entre las ventajas que se tienen al desarrollar proyectos para android destacan las siguientes: •Entorno de desarrollo libre y compatible con varios sistemas operativos, por ejemplo eclipse ofrece un simulador para android. •Librerías y componentes reutilizables para todo tipo de aplicaciones. •Cuenta con una comunidad extensa de desarrolladores, gracias a esto podemos encontrar un sin fin de información acerca de cómo programar en android.

Desventajas de programar para móviles con android •Una de las desventajas radica en que android es multitarea, esto quiere decir que al tener múltiple aplicaciones ejecutándose, se lleva un consumo elevado de batería. 14

Una vez desarrollada una aplicación, un desarrollador de aplicaciones android, puede subirlas a esta plataforma, se tiene la posibilidad de distribuirla gratuitamente o venderla, si se decide por venderla todo desarrollador gana el 70 % del precio total de la aplicación. Esta ventaja permite a miles de desarrolladores generar sus propias ganancias, una ventaja que es considerable para los programadores de aplicaciones android.


con a d yu De a

rea a t tu

15


O

aci

iz ptim

ec ón d

o lo odig

c al

Se realiza después de la generación de código de todo el programa o de un elemento ejecutable del programa (función, procedimiento).

•Árbol sintáctico abstracto: optimizar subexpresiones redundantes, reducción de frecuencia, etc. •Tuplas o cuadruplas: optimizar en uso de los registros o de las variables temporales. •Ensamblador/Código máquina: convertir saltos a saltos cortos, reordenar instrucciones. Condiciones que se han de cumplir. El código optimizado se ha de comportar igual que el código de partida excepto por ser más rápido o ocupar menos espacio. Hay que buscar transformaciones que no modifiquen el comportamiento del código según el comportamiento definido para el lenguaje de programación. Las optimizaciones locales se realizan sobre el bloque básico

Objetivo Obtener código que se ejecuta más eficientemente según los criterios. Tiempo de ejecución (optimización temporal).

Optimizaciones locales Folding Propagación de constantes

Espacio de memoria utilizad o (optimización espacial).

Reducción de potencia

Funcionamiento

Reducción de subexpresiones comunes.

Revisa el código generado a varios niveles de abstracción y realiza las optimizaciones aplicables al nivel de abstracción: • Representaciones de código intermedio de más a menos abstractas.

16

Un bloque básico es un fragmento de código que tiene una única entrada y salida, y cuyas instrucciones se ejecutan secuencialmente.


Implicaciones: 1. Si se ejecuta una instrucción del bloque se ejecutan todas en un orden conocido en tiempo de compilación. 2. La idea del bloque básico es encontrar partes del programa cuyo análisis necesario para la optimización sea lo más simple posible.

la función se optimiza. Es frecuente, además, que debiliten las hipótesis de suavidad de la función objetivo y no exijan, por ejemplo, la existencia del gradiente. Entre estos métodos de optimización global existe un conjunto que incorporan mecanismos estocásticos, entre los que pueden citarse los métodos de: Monte Carlo, Simulado Recocido (Simulated Annealing), Algoritmos Genéticos, y Optimización Bayesiana; y otros determinísticos, que no presuponen derivación. Entre los determinísticos, los métodos Lipschitzianos han probado su eficiencia. Entre estos el DIRECT (Dividing Rectangles) es una propuesta eficiente que por su importancia se tratará en este curso.

Tipos de métodos de optimización global.

ón d i c a iz

l oba l g o

dig e co

im Opt

Los métodos de descenso basados en la existencia del gradiente de la función objetivo, se caracterizan por converger hacia extremos locales de la función sin garantía de que estos extremos correspondan a extremos globales. Más aún, localizan sólo un extremo. Es por ello que a pesar de la popularidad de los métodos de búsqueda local, se han desarrollado paralelamente métodos de optimización global cuyo propósito es obtener el conjunto de puntos donde

Estocásticos: evalúan f sobre una muestra aleatoria sobre la región de interés.

1.- No Confiables: Simulado recocido (Simulated annealing), búsqueda aleatoria (random search). 2.- Sin embargo, la eficiencia es una característica de estos métodos . 3.- Problemas de gran escala (+100 variables) son resueltos mejor con estos métodos estocásticos.

17


Determinísticos: no envuelve ningún elemento aleatorio

3. Códi

go de au to docu m

entació Los com n. entarios son una tante de 1.-Confiables: par la vias, per programación p te muy imporRamas y bordes (Branch and Bound), métool or de serlo a documentació razones obdos de intervalos (Interval methods). aún más n del có digo pu ,y el códig eo con só a que permite e l ntender o leerlo. 2.- Métodos de puntos (Point methods): cal- funciones L os n yv culan valores de la función sobre puntos de elegidos, d ariables pueden ombres de la semán e modo que cua ser hábilmente muestras (incapaces de resolver confiablen tica del lenguaje do se junten co mente un problema de optimización global). un código n s e c auto doc fácilmente legib onviertan en Ejemplo Monte Carlo. le. Por o umenta ru tro lado tuto par , a los com n código no es un susti entarios 3.- Métodos de bordes (Boundary . Methods): calculan cotas sobre conjuntos compactos. Si son implementados apropiadamente y considerando errores de redondeo, pueden producir soluciones globales . de código rigurosas. 4. Prueba ado si fun b o r p s a y a n nte ya h revisarlo e obableme r te P n ie n e v e Criterios para mejorar el codigo o es con los casos d l s o d to ciona, per r a e que e ad. Analiz e confirm u q profundid a b e u r as las r una p era en tod p s e e s uso y hace o tal. Si a com ura. fundamen o funcion at o ig m d lg re p ó a c n s ó e ci s a timiz ra del ranes posible 1. Evitar la op condicion os, envía valores fue s. Si alores nulo a parte del hay parámetr v n u ía e v d n n e ó ci o a s ptimiz ompae inclu Al iniciar la o ue el código igo a un c esperado, q d o n ó g si c a n tu o ci le n a fu . enséñ de código que ya e romperlo s posible, rres el riesgo d e co , te o a d a tr in e rm u ele q mización entero esté te ñero y píd lidad. La opti a n o ci n s fu si la romper ta al análi rse en respues za li a re e eb yecto. d sólo el final del pro a 5. Có ci a h , to n ie etapa digo ta es de rendim e d s te ón an no re ci a iz m ti p o la petid Hacer s. re D o. ebes e r erro ci u d o tr in e ed pu a toda vitar la du p c causa osta. La d licación de 2. Re uplica l confu visión ción d código sión c lee, y d e có e u p l digo. ment rovoca erro ando un co código Antes o dup l r e de pro e ga lo s c ua lic lugar con u determ ado se rep ndo el seg n com mover el c rod ód pa tamen inado te lo q ñero y exp igo, siénta y no e uce en un te el cam n los u lí demá bio. A e pretende cale exacs. esto t s ú mis menudo, s hacer con mo re ólo co errore co n s ñero d de tu códi nocerás alg hacer go sin u iga na que tu nos da. Es c realm ente e ompaficaz.

18


No. 1


Tecnomagazine