Programando en C: Refactorización

Capítulo 12: Re factor izada Cion

En las 2 U anteriores, de manera más o menos consciente, menos hemos preocupado tanto de implementar nuevas funcionalidades, como de reestructurar y mantener el código limpio, mantenía ble, y entendible.

Éstas operaciones forman parte de un proceso más amplio llamado refacturación.

Lo importante en este caso es entender la utilidad de la refacturación y la necesidad de, cada poco tiempo, pararse por un momento y preguntarse si el código tiene una forma óptima, o podríamos reestructurarlo para hacerlo más fácil  de trabajar

En el día a día del desarrollo de programas informáticos, es muy común que, aunque se parta desde una planificación, finalmente se acaben implementando características sobre la marcha, en base a las necesidades que van surgiendo, y que desgraciadamente, muchas veces no pueden ser tenidas en cuenta en la planificación inicial.

esto provoca que, por muy ordenado y estructurado que pretendemos tener el código al principio de un proyecto, es totalmente común y normal que el código acabe ensuciándose, y que acabe adoptando una forma nada clara ni mantenimle.

El objetivo de la refacturación es detenerse cada poco tiempo y preguntarse de qué manera el código, manteniendo por supuesto su funcionalidad, podría ser más entendible para el ser humano, y estar estructurado de manera que, mantenerlo y ampliarlo, no resulte un esfuerzo titánico después de la realidad de cómo queda el código Al desarrollarlo poco a poco cada día.

Sin pretender entrar en esta publicación en demasiada profundidad con los principios y las técnicas de la refacturación, técnicamente, lo que hemos realizado en las 2 U anteriores, son dos técnicas bastante conocidas de esta filosofía de trabajo.

En primer lugar, la primera estrategia consiste en en capsular.

En cápsula amos porciones de códigos que tienen sed sentido como 1 U. Es decir, a lo largo del desarrollo de un programa, finalmente podemos ver fácilmente como hay porciones de código del programa que tienen sentido dentro de esa porción, y que podrían ser independientes del resto de la aplicación.

Por otra parte, como hemos comentado anteriormente, otra necesidad fundamental de crear funciones es cuando tenemos código que se repite.

Así que, el encapsulamiento de código en funciones, es una técnica de reorganización y reestructuración del código.

Antes de esta primera aplicación, generalmente, solemos tener un programa estructurado, es decir, un programa que puede perfectamente ocupar 500, 1000,2 1000 líneas de código, que va a lanzando instrucciones desde la primera hasta la última línea del programa. Fácil de entender, fácil de escribir, pero difícil de mantener, ya que cada vez que buscamos una porción del programa, tenemos que hacer Scroll a lo largo del código a través de miles y miles de líneas.

Al finalizar la refacturación que consiste en aislar segmentos en funciones, lo que acabamos teniendo es básicamente las mismas líneas de código, esos 500, 1000, o 2000 líneas de código, o quizás a veces mucho más, pero organizadas en burbujas, organizados en una serie de funciones, que anteceden a la función principal.

El código es más óptimo, pero la longitud del archivo no varía, así que acaba siendo aproximadamente igual de molesto tener que hacer Scroll a lo largo de miles de líneas cada vez que buscamos un segmento para modificar o cada vez que queremos implementar una nueva funcionalidad. Éste es verdaderamente uno de los problemas de la mantenía Billy dad de aplicaciones informáticas, que provoca que muchas veces tengamos que reescribir aplicaciones, simplemente porque nos cuesta menos Riesco reescribirlas, que mantenerlas, cuando el código se ha ensuciado demasiado. Evidentemente, lo que pretendemos es no tener que llegar a este.

es por esto que otra estrategia consiste en lo que hemos visto en la unidad anterior, básicamente extraer las funciones a archivos externos, incluirlas, en el caso del lenguaje que nos ocupa en esta publicación en las cabeceras.

Al hacer esto, el código podría pasar a tener aproximadamente esta forma:

tenemos un archivo principal que contiene la mínima expresión del código posible, y que, con suerte, puede verse todo en una sola pantalla, sin necesidad de hacer Scroll, o haciendo una cantidad mínima de Scroll a lo largo de las líneas.

Además, se visualiza la ejecución de las funciones, con lo cual, tenemos una idea muy aproximada mente de lo que hace el programa, aunque no necesariamente tenemos que estar viendo el código que contiene cada una de las funciones.

luego, por otra parte, si en un momento dado queremos profundizar en el código de alguna función concreta, simplemente tenemos que abrir la carpeta que contiene las funciones.

De un vistazo, podemos ver las funciones que contiene la carpeta, y si las hemos nombrado correctamente, podemos averiguar de un vistazo cuál es el archivo que tenemos que abrir para evitar.

cuando abrimos el archivo, estamos accediendo únicamente a la porción de código que nos interesa, y por tanto, estamos obviando todo ese código del resto de funciones que no nos interesa para implementar una nueva función concreta, o para retocar una parte de una función.

esta manera de trabajar, que solo nos ha exigido realizar dos operaciones de Rafa actualización, es totalmente conveniente, ya que nos permite aumentar enormemente nuestra productividad, trabajando más rápido, trabajando más cómodos, y en definitiva, permitiendo que, en un momento dado, el programa sea más fácil de extender, de hacer más grande, y de evolucionar

¿Cual es el mejor lenguaje de programación para inteligencia artificial?

 

Frecuentemente recibo la pregunta acerca de cuál es el mejor lenguaje de programación para crear aplicaciones de inteligencia artificial. Otras veces, directamente la pregunta es si lenguajes como Python o bibliotecas como TensorFlow son los adecuados para crear este tipo de aplicaciones.

Así que el objetivo de este artículo es aclarar algunos conceptos para poder elegir un lenguaje de programación u otro para desarrollar aplicaciones que hagan uso de la IA.

¿Qué es la IA?

Este concepto no es fácil de explicar. La inteligencia artificial no es un conjunto de instrucciones, ni un nuevo tipo de datos. Consiste en una serie de metodologías en las cuales podemos dotar a nuestros desarrollos de comportamientos percibidos como inteligentes. En definitiva, son metodologías, y no instrucciones.

Es por esto que, a priori, cualquier lenguaje de programación es válido para realizar aplicaciones de inteligencia artificial.

¿Qué lenguajes de programación existen?

Haciendo referencia al listado TIOBE, que muestra los lenguajes de programación más utilizados en el mercado, el listado para enero de 2019 muestra los siguientes datos:

https://www.tiobe.com/tiobe-index/

Jan 2019

Jan 2018

Change

Programming Language

Ratings

Change

1

1

 

Java

16.904%

+2.69%

2

2

 

C

13.337%

+2.30%

3

4

 

Python

8.294%

+3.62%

4

3

 

C++

8.158%

+2.55%

5

7

 

Visual Basic .NET

6.459%

+3.20%

6

6

 

JavaScript

3.302%

-0.16%

7

5

 

C#

3.284%

-0.47%

8

9

 

PHP

2.680%

+0.15%

9

 

SQL

2.277%

+2.28%

10

16

 

Objective-C

1.781%

-0.08%

Cualquiera de los lenguajes de programación de esta lista podría ser perfectamente válido para desarrollar aplicaciones de IA, a excepción probablemente del lenguaje SQL, que está orientado a consultas en bases de datos, en lugar de a desarrollo de aplicaciones.

Poríamos clasificar estos lenguajes en tres grandes grupos:

-Lenguajes de bajo nivel, que son aquellos que tienen mejor rendimiento, pero en los que el programador debe tomar muchas decisiones, de forma que puede optimizar la ejecución del programa, pero la probabilidad de cometer fallos es mayor. Ejemplos de estos lenguajes son C, C++ y Objective-C

-Lenguajes de alto nivel, que son aquellos que ofrecen una serie de abstracciones, de forma que el propio compilador toma algunas decisiones, liberando al desarrollador de tomarlas. De esta forma, estos lenguajes suelen ser menos eficientes en la ejecución, ya que las decisiones que se toman automáticamente por el compilador no suelen ser tan inteligentes como las que toma un ser humano. Sin embargo, dado que el desarrollador tiene que tomar menos decisiones, las probabilidades de fallo son menores. Ejemplos de estos lenguajes son Python y Javascript

-Lenguajes de nivel intermedio: Encontramos dentro de este grupo aquellos lenguajes que buscan un balance óptimo entre rendimiento y dificultad. De esta forma, ponen muchas decisiones en manos del usuario programador, pero a la vez ofrecen una serie de facilidades y herramientas para prevenir y arreglar los errores de código. Un ejemplo de este tipo de lenguajes es Java.

Eligiendo el mejor lenguaje:

Antes de elegir un lenguaje u otro, teniendo en cuenta que todos los lenguajes de la lista son perfectamente válidos, deberemos establecer un criterio para la elección, y no todos tenemos por qué tener el mismo criterio.

Por ejemplo, un criterio podría ser el rendimiento. Es decir, que nuestras aplicaciones se ejecuten lo más rápido posible. Este criterio es importante, ya que muchas aplicaciones de inteligencia artificial deben funcionar y proporcionar resultados en un tiempo aceptable, ya que, en caso contrario, podría considerarse que nuestras aplicaciones son inteligentes, pero lentas (y por tanto podrían ser percibidas por los usuarios finales como aplicaciones “no tan inteligentes”, aunque la velocidad no tenga que ver directamente con la calidad de los resultados)

En este caso, podríamos elegir aquellos lenguajes de más bajo nivel, como C o C++

Evidentemente, en este caso, puesto que el propio aprendizaje y puesta en práctica de las metodologías de inteligencia artificial en un lenguaje concreto es complejo, tendríamos que tener un nivel de partida bastante fluido en estos lenguajes.

Otro criterio posible sería la facilidad de uso del lenguaje de programación. Esta es la opción que suele elegirse para formación relacionada con la inteligencia artificial. De esta forma, el alumno se preocupa únicamente por las complejidades derivadas de la implementación de la IA, y no de las complejidades propias del lenguaje de programación. Esta es la razón por la cual los lenguajes como Python son tan famosos en los cursos de formación relacionados con este ámbito, en contra de la creencia popular de que es debido a su potencia, es por su facilidad y su flexibilidad.

Un ejemplo más concreto del rendimiento entre los diferentes lenguajes de programación podemos encontrarlo en comparativas como la siguiente:

https://www.instagram.com/p/BQTe7NegeSq/

Esta es una de las comparativas que suelo realizar en todo tipo de formaciones relacionadas con la programación en múltiples lenguajes. El objetivo es proponer el mismo reto a resolver a diferentes lenguajes de programación, y observar los resultados.

En esta comparación podemos observar como, para un mismo cálculo, donde lenguajes de un nivel bajo tardan entre 24 y 25 segundos en completar su tarea, los lenguajes de alto nivel como Javascript tardan 38 segundos (aproximadamente un 52% más lentos), pero otros lenguajes como Python pueden llegar a tardar 157 segundos (es decir, un 650% más lentos que los lenguajes de bajo nivel). Por tanto, estos lenguajes no se eligen por su rendimiento sino por su facilidad de uso.

El lenguaje de programación R: Ventajas y desventajas

Existe una serie de lenguajes que suelen considerarse más aptos para el desarrollo de aplicaciones de inteligencia artificial. Uno de ellos es el lenguaje estadístico R.

La diferencia de este lenguaje con respecto a los genéricos es que incluye una serie de herramientas y librerías que facilitan tanto el cálculo como la presentación de resultados de análisis estadísticos (área que tiene una gran importancia en la inteligencia artificial).

Esto a la vez es bueno y a la vez no tanto. Desde un punto de vista del desarrollo, añade productividad permitiendo a los desarrolladores crear presentaciones de resultados de una forma muy sencilla.

Podemos encontrar dos grandes ejemplos de esto en la propia pagina de la Wikipedia:

https://es.wikipedia.org/wiki/R_(lenguaje_de_programaci%C3%B3n)

Repasando los dos ejemplos (tanto en su código fuente como en los resultados), veremos que la inclusión previa de las librerías correspondientes minimizan el código que tiene que desarrollar el ser humano, y automatizan al máximo la tarea de generación de gráficas.

Sin embargo, desde el punto de vista de la formación, realizar tantas abstracciones, en ocasiones puede no resultar tan conveniente, ya que si delegamos todos estos cálculos en el propio lenguaje de programación y sus librerías, no estaremos realmente aprendiendo a realizarlos, y si el día de mañana estamos obligados a cambiar a un lenguaje de programación más genérico, podremos darnos cuenta de la dependencia que habremos desarrollado con respecto al lenguaje de programación R

Aún así, por supuesto es recomendable que cualquier formación en inteligencia artificial contenga algún apartado que muestre a los alumnos el uso del lenguaje de programación R

Matlab y Octave:

En la lista TIOBE, el lenguaje que ocupa el puesto número 11 es Matlab, lo cual es igual de interesante como el lenguage R.

Matlab es un sistema algebráico presentado dentro de un entorno de desarrollo integrado, que desde hace muchos años facilita el desarrollo y la realización de múltiples tipos de cálculos a científicos que no tienen por qué tener conocimientos especialmente profundos de programación. De la misma forma que el lenguaje R provee una serie de facilidades y bibliotecas de presentación de resultados, MatLab realiza lo propio en un nivel todavía superior (el IDE consituye una forma muy asequible y agradable de aproximarse al desarrollo de proyectos que requieran cálculos)

En definitiva, tanto Matlab como software comercial, como Octave como alternativa de código abierto, son excelentes alternativas para personas que desean cumplir con el objetivo de acercarse al mundo de la inteligencia artificial, intentando facilitar o al menos abstraer las complejidades derivadas de los lenguajes de programación duros.

Diferentes niveles:

Dentro de las múltiples alternativas de las que disponemos como entornos de desarrollo para implementar proyectos de realidad virtual, dentro de que cualquier lenguaje de programación con unas mínimas capacidades es viable para implementar este tipo de proyectos, podríamos resumir:

Entornos como Matlab u Octave: Mayor facilidad y abstracción, eliminando o minimizando las dificultades de la programación. El propio entorno que nos facilita el trabajo es el que puede hacer que nuestras aplicaciones no sean posteriormente aplicables y portables en todas las plataformas. Aptos para desarrollar prototipos y en definitiva para que personas que no sean programadores puedan aproximarse a desarrollos de inteligencia artificial.

Lenguajes de programación específicos u optimizados, como R: Buena proporción entre esfuerzo y resultado, herramientas específicas para la tarea concreta. Sin embargo, son lenguajes tan específicos que luego no podemos usarlos para otros tipos de proyectos.

Lenguajes generalistas de programación de alto nivel: Buena proporción entre esfuerzo y resultado, y buen balance entre rendimiento, facilidad, y portabilidad del código en la implementación entre diferentes plataformas. Aptos para el aprendizaje y la implementación de aplicaciones reales de inteligencia artificial donde el rendimiento no sea un factor clave pero el éxito y la facilidad de la implementación si que lo sean.

Lenguajes generalistas de programación de bajo nivel: Alto rendimiento, exigen extensos conocimientos del propio lenguaje de programación ya que son propensos a cometer fallos humanos en la escritura del código. Aptos para la implementación final de aplicaciones en  las que el rendimiento sea un factor clave.

Un par de criterios más: facilidad de compilación y generalidad del lenguaje

Hay otra explicación por la cual los lenguajes de programación de alto nivel, como Python y Javascript, son ampliamente utilizados en formaciones relacionadas con inteligencia artificial, no es solo por su facilidad de uso sino también por la facilidad de puesta en marcha.

La puesta en marcha consiste en la serie de operaciones que deben realizarse para, desde cero, comenzar a desarrollar y ejecutar programas con un lenguaje de programación determinado.

En el caso de Python, todos los prerrequisitos pueden descargarse rápida y gratuitamente desde la página https://www.python.org/

Además, contiene instaladores para todo tipo de sistemas operativos y arquitecturas de hardware, lo que posibilita poder instalar y ejecutar programas en todo tipo de equipos informáticos, incluso en aquellos que están muy desactualizados.

El caso de Javascript es todavía más curioso, ya que cualquier navegador web de los que tenemos ya de por sí instalados en nuestro ordenador, llevan YA incorporados los intérpretes que permiten ejecutar programas realizados en este lenguaje de programación.

Únicamente en ese caso es necesario descargar algún editor de código para crear programas, como por ejemplo el archiconocido Notepad++:

https://notepad-plus-plus.org/download/v7.6.2.html

Conclusiones:

El desarrollo de aplicaciones de inteligencia artificial no se realiza de forma exclusiva con un lenguaje de programación u otro. Prácticamente cualquier lenguaje de programación es apto para realizar implementaciones de IA. Lo que si que es importante es conocer las ventajas y las desventajas de cada uno de los lenguajes, para escoger la mejor alternativa según el criterio o los criterios que se adapten a nuestras necesidades.

Quieres saber más?

Ya estamos inmersos de pleno en la era de la inteligencia artificial, que cambiará nuestras vidas y la forma en la que trabajamos. Pero, ¿estas preparad@ para estos cambios? El objetivo de este curso es proporcionarte las herramientas necesarias para que la inteligencia artificial sea una oportunidad y no una amenaza.

Con este curso, aprenderás las técnicas más punteras que empresas como Google, Facebook o Microsoft ya están utilizando para mejorar sus algoritmos. Cualquier dispositivo móvil, ya esté basado en Android o en iOS, ya está utilizando este tipo de tecnologías para mejorar tu experiencia de usuario. En breve, tus propios usuarios y tus clientes darán por hecho esta tecnología y esperarán que los servicios que tu les ofrezcas contengan inteligencia artificial. ¿Está preparada tu empresa para este reto?

Este curso se divide en tres módulos:

IA para todos – primer módulo del curso pensado para que todas las personas, aún sin conocimientos de programación, puedan entender y aprovechar las oportunidades que nos ofrece la inteligencia artificial


Programando aplicaciones de IA – segundo módulo del curso, en el cual ponemos en funcionamiento los conceptos principales del curso, permitiéndote desarrollar aplicaciones prácticas que usan inteligencia artificial


IA hasta el límite – Tercer módulo del curso en el que te mostramos cómo sacar el máximo partido a la inteligencia artificial desarrollando aplicaciones de visión artificial, procesamiento del lenguaje, y combinación con Big Data, entre otros


Entrevista en Linkedin Learning

Entrevista realizada para Linkedin Learning y Pulse, por Alicia Ortega.

Puedes leer la entrevista original aqui:

https://es.linkedin.com/pulse/jos%C3%A9-vicente-carratal%C3%A1-3d-y-el-internet-de-las-cosas-ortega-herrero

 

El diseño 3D por ordenador está ya plenamente desarrollado y nos estamos adentrando en el mundo de la impresión 3D. ¿Cuál crees que será el siguiente paso?

Las técnicas de modelado 3D han llegado, aparentemente, a un punto de estabilidad. Es evidente que ya no vemos innovaciones tan grandes como las que vimos al final de la década de los 90 y al principio de la siguiente, donde no solo el modelado 3D llegó a su apogeo, sino que se democratizó en gran medida su uso, mediante el abaratamiento del precio por licencia, o la compatibilidad con sistemas informáticos domésticos, por ejemplo.

Analizando un poco los comienzos de la infografía y el CAD 3D, no podemos olvidar que las técnicas que usamos hoy en día no son más que simplificaciones de una realidad demasiado compleja como para ser simulada con la potencia computacional actual. Solo un cubo de 1 cm de lado se compone de tantos millones de átomos como para que sea ineficiente reproducirlo átomo a átomo en el interior de un ordenador. En lugar de eso, recurrimos a simplificaciones como, por ejemplo, los polígonos. Resolvemos el problema del cubo simplificándolo a 12 triángulos, y en base a esas simplificaciones hemos construido un conjunto de herramientas que nos permite construir cualquier cosa. Pero ,en mi opinión, no debemos perder nunca de vista el hecho de que son simplificaciones y, como tales, tienen limitaciones. ¿Cuál sería la alternativa? Por ejemplo, el modelado 3D en base a nubes de puntos lleva muchos años esperando su turno, aunque parece que no ha llegado todavía su momento, al menos no desde el punto de vista del uso generalizado.

En el caso de la impresión 3D, muchos de los procesos pasan por usar el formato STL, que esta compuesto por triángulos. Es decir, imprimimos objetos reales, digamos «basados en átomos», con archivos simplificados basados en polígonos. ¿Qué hacemos para solventar el problema? Aumentar los polígonos en número y disminuirlos en tamaño para que no se note la simplificación… pero sigue siendo una simplificación.

Así que quien me conoce sabe que adoro el modelado 3D basado en polígonos, pero en mi inconformista opinión, todavía está por desvelarse un paradigma de modelado 3D tal que nos permita reproducir informáticamente en 3D la realidad que nos rodea de una manera tal que nuestra potencia computacional pueda abordar la reproducción, y que las simplificaciones, en el caso de que las haya, no nos impongan tantas limitaciones como las técnicas actuales.

El siguiente paso, para mí, sin duda, es la realidad virtual y/o realidad aumentada. Un concepto que ha estado rondándonos desde hace 20 años, pero que nunca ha acabado de cuajar, y que ahora parece que está recibiendo el apoyo masivo de los grandes, como Microsoft, Google, Sony, o Facebook. Pero, una vez más, como desarrollador y formador de realidad virtual, puedo decir que los polígonos representan una barrera que nos aleja de esa inmersión completa. Por ejemplo, cuando percibimos un mundo sintético en 3D construido con polígonos a través de un medio 2D como es la pantalla de un ordenador, el modelado polígonal queda muy aparente, el resultado final es muy convincente. Sin embargo, cuando esa misma escena la ves a través de un dispositivo de realidad virtual, donde la sensación de inmersión es mucho más completa, la percepción de que los modelos están construidos en base a caras planas arruina bastante el efecto.

De todas formas, debo decir que estoy muy emocionado con las aplicaciones de la realidad virtual y aumentada, y con su combinación con el resto de tendencias tecnológicas actuales. Si bien a día de hoy las gafas de realidad virtual son dispositivos toscos y pesados, yo los considero como los móviles Motorola de los años 90: eran igualmente toscos, pero mira en lo que se han convertido los teléfonos móviles a día de hoy.

 

 

¿Qué tienes en cuenta a la hora de elegir un software de 3D u otro?

Donde hay un problema, debe haber al menos una solución. Cada software tiene unas ventajas y unas desventajas con respecto a los demás. Por tanto en mi opinión no se trata de elegir un software u otro, sino de conocer las ventajas y desventajas de cada uno de ellos.

Escucho lo que el cliente necesita, lo enfrento a las ventajas y desventajas de cada programa, y entonces elijo el más adecuado.

Entonces, un buen día, llega un cliente con un problema concreto que necesita resolver. Lo que suelo hacer es escuchar lo que el cliente necesita, enfrentar esas necesidades con las ventajas y desventajas de cada uno de los programas, y elegir aquel programa que, para ese cliente concreto, y ese proyecto concreto, solucione lo mejor posible sus necesidades.

Yo siempre digo que los programas son como herramientas dentro de una caja de herramientas. No puedes tener una caja de herramientas con solo un martillo. Si ocurre que tienes que clavar un clavo, bueno, en ese caso estarás de suerte. Pero si a continuación tienes que atornillar una estantería… probablemente el martillo no será tu mejor elección. De la misma manera que te interesa tener una caja de herramientas suficientemente nutrida, te interesa conocer cuantos más programas 3D mejor, para poder dar soluciones óptimas a diferentes tipos de proyectos.

 

¿Crees que los avances en modelado 3D y en animación van de la mano, o uno está adelantando al otro?

Es curioso, pero en infografía 3D, el modelado, la animación, la configuración de esqueletos, la iluminación, y otras tantas áreas, se han desarrollado a lo largo de los años juntas pero a la vez separadas. Paralelas, por supuesto, y tocándose en muchos puntos, porque finalmente llega un momento en el que el modelado ha de ser animado. Pero curiosamente el modelado y la animación son el resultado de una serie de técnicas que nada tienen que ver entre si.

Por ejemplo, la animación moderna 3D basada en claves está basada en los conceptos de animación de Disney de principios del siglo XX, en los que un animador principal creaba los fotogramas importantes, llamados primarios, y una serie de animadores secundarios creaban los fotogramas de relleno entre los fotogramas primarios. La animación con claves no es más que la versión digital de este método de animación clásico.

El modelado, por contrario, se ha construido en base a las simplificaciones poligonales que comentaba en la pregunta anterior.

En la vida real, esto no ocurre así. El cómo se mueve una persona depende de su morfología, de su anatomía. Los movimientos que puede hacer dependen de sus músculos, de sus huesos, y de otros elementos, pero en definitiva, la forma y el movimiento son parte de un todo.

Cabe decir que, a lo largo de los años, ha habido diferentes propuestas de sistemas de animación y modelado basados en las físicas de un personaje, que han intentado cubrir este vacío entre las dos técnicas y relacionarlas más entre sí, como ocurre en la vida real. Pero ninguna de ellas ha acabado dando más ventajas que la unión de estos sistemas simplificados e independientes.

En cuanto al ritmo de las innovaciones, igualmente ha discurrido paralelamente, ya que, como una técnica no tiene nada que ver con la otra, el ritmo de estos descubrimientos en una de las dos líneas no está relacionado ni limitado por la otra.

Por ejemplo, a finales de los 90, el modelado de superficies de subdivisión, implementado de diferentes maneras a lo largo de los diferentes programas, revolucionó el modelado de personajes 3D, haciendo que esta tarea fuera mucho más rápida y agradable de lo que era hasta el momento. La primera gran producción en usar esta técnica fue A Bug’s Life (“Bichos”, en España), en el año 1998.

Paralelamente, más o menos en la misma época, se empezó a popularizar el uso de la técnica de captura de movimiento, en lugar de la clásica animación por claves. Una de las primeras producciones cinematográficas en usar ampliamente esta técnica, fue Final Fantasy: The Spirits Within, en el año 1999. Esta producción ya usaba la técnica de captura de movimiento, que después se usó en “El Señor de los Anillos”, por ejemplo para animar a Gollum, pero a la vez se benefició del modelado de superficies de subdivisión, para modelar a los personajes 3D.

Estos son solo dos ejemplos, pero en definitiva, el concepto es que las producciones que vemos hoy en día en la pantalla son el resultado de la suma de miles de innovaciones hechas en los terrenos del modelado 3D, la animación, la iluminación, la creación de esqueletos virtuales, y otras tantas áreas. Así que al final las innovaciones corren de manera completamente paralela, pero acaban convergiendo en el producto final.

 

¿Piensas que el internet de las cosas puede consolidarse como industria de empleo, o que quedará más en ámbitos domésticos?

El término “internet de las cosas” es solo un concepto de paso hacia una realidad futura más compleja, pero en la que no me cabe ninguna duda que la interconectividad jugará un papel crucial. Imagínate, en 1996 yo tenía un ordenador de 66MHz con 16 megas de memoria. Hoy, 20 años después, todos llevamos en el bolsillo dispositivos móviles no sólo 100 veces más potentes, sino que, además, son táctiles y están permanentemente conectados a internet. Algo impensable para la mayoría en 1996. Ahora, analiza el pasado y el presente, e imagínate lo que tendremos en 20 años.

Los dispositivos son cada vez más pequeños, más potentes, y están más cercanos al ser humano.

Otro ejemplo: los ordenadores en los 70 ocupaban habitaciones enteras, en los 80 eran cajas encima de una mesa, en los 90 se popularizaron los portátiles, en los 2000 se extendió el uso de los teléfonos móviles, en el presente se empiezan a popularizar los relojes inteligentes, y las gafas de realidad virtual o aumentada para las masas están ya a la vuelta de la esquina. Si analizas esa tendencia, y la proyectas hacia el futuro, verás que los dispositivos son cada vez más pequeños, cada vez más potentes, y sobre todo, cada vez están más cercanos al ser humano, en el sentido de que los llevamos puestos encima, y quizás en un momento dado los llevaremos no solo encima, sino dentro de nosotros. Puede que si te hablo de dispositivos interconectados e implantados dentro del ser humano te suene a ciencia ficción, pero imagínate cómo percibiría una persona de 1996 el concepto actual de smartphone.

Y ni siquiera están todas las piezas todavía en el tablero. Por ejemplo, tenemos la inteligencia artificial, cuyo importante papel podemos empezar a intuir, pero todavía ni siquiera podemos cuantificar su influencia exacta en nuestro día a día en los próximos años.

Este es el futuro que yo creo que viene, un futuro en el que la interconectividad jugará un papel crucial en nuestras vidas y en nuestro día a día. Y por supuesto, en la medida de que esta interconectividad sea omnipresente, las demandas laborales irán acordes a esa nueva realidad. Es algo que ya pasa hoy en día, los trabajos relacionados con las nuevas tecnologías no tienen casi paro, mientras que la demanda de otros perfiles profesionales, incluso siendo cualificados, ha decaído. Por tanto, ¿habrá oportunidades de empleo? Por supuesto que sí. Pero yo creo que la pregunta interesante es: ¿estaremos preparados para cubrir esos empleos?

Estamos hablando de perfiles profesionales que ni siquiera existen hoy en día. Pasará algo parecido que ocurre con el perfil profesional “programador de aplicaciones Android”. Hace diez años ni siquiera existía ese concepto. ¿Cómo hemos aprendido los que finalizamos nuestros estudios de grado hace diez o quince años? Pues, evidentemente, aceptando que el aprendizaje no acaba con el título universitario. El aprendizaje continuo es algo que debe formar parte de tu vida diaria si quieres asegurar tu futuro laboral. No digo que tengas que dedicar 5 horas al día, de cada uno de tus días, a reciclarte. Pero lo que creo que está claro es que, con lo rápido que cambian los tiempos, no adoptar una postura de aprendizaje continuo no es una alternativa. Si esto es lo que ya ocurre a día de hoy, imagino que el futuro maximizará esta tendencia.

Por ejemplo, una persona de 20 años, una de 30 y una de 40, dentro de 20 años seguirán en el mercado laboral. Pero  en ese momento se demandarán perfiles laborales que todavía ni existen a día de hoy. En mi opinión, la única manera en la que un profesional puede estar preparado para este futuro es mantener una mentalidad abierta al cambio, y aceptar el aprendizaje y el reciclaje continuo como parte normal de tu vida profesional.

 

¿Qué aplicaciones crees que podrán incorporar los elementos como Arduino para hacernos la vida más sencilla?

Yo soy absolutamente fan de Arduino, casi un evangelista, diría yo.

Arduino ha abierto el campo del prototipado de sistemas electromecánicos a cualquier tipo de persona. Lo sacas de la caja, lo conectas al ordenador mediante USB, descargas el IDE (que, además de gratuito, contiene infinidad de ejemplos), y en cinco minutos estás haciendo proyectos. Y luego hay gran cantidad de componentes, de complementos que puedes conectar a tu placa, y que te permiten cosas increíblemente divertidas con poco tiempo, con poco esfuerzo, y con poco presupuesto. Arduino allana el camino para los creadores. Por ejemplo, un diseñador de producto, anteriormente limitado a los componentes físicos del producto, ahora puede también integrar la electromecánica, y programar fácilmente el comportamiento del sistema.

Un ejemplo que me encanta son los talleres de «robótica para niños» que cada vez proliferan más. Son talleres orientados para niños en los que muchas veces montan robots preconstruidos, pero demuestran que los kits de Arduino son tan fáciles, que hasta un niño los puede usar.

Por tanto, ¿qué aplicaciones espero de Arduino? Tengo muchas expectativas, no en la plataforma Arduino en sí misma, sino en las personas que lo usan para crear más y más cosas cada día.

Una expectativa que tengo a medio plazo, y pienso que soy realista en esto que voy a decir, es el advenimiento de la era de la robótica. Hasta hace poco el concepto «robot» era algo casi exclusivo de la ciencia ficcion. Pero, por ejemplo, casi sin darnos cuenta, ya tenemos robots limpiando nuestras casas.

¿Qué nos depara el futuro? Si juntamos el hardware capaz de realizar la tarea, con precios asequibles, con personas formadas y capaces (quiero creer que, por ejemplo, los talleres de «robótica para niños» pavimentan en cierta manera el camino, en este sentido), veremos que tenemos todos los ingredientes para una revolución tecnológica.

En mi opinión, Arduino es una pieza más de esa revolución. La generalización del uso de internet por el ciudadano medio, es una revolución comparable a otras revoluciones anteriores, como la industrial. Personas interconectadas entre sí, comunicadas, intercambiando información. Si al uso de internet como medio de comunicación lesumamos la facilidad actual para aprender a programar, el abaratamiento de técnicas de fabricación o prototipado como la impresión 3D, y la aparición de entornos como Arduino… en mi opinión se están juntando los ingredientes para una ola perfecta de creatividad. Lo puedes ver ahora mismo, abres YouTube, buscas «Arduino», y puedes ver cada día a más gente que, desde cualquier parte del planeta, y con recursos mínimos, construyen y convierten en realidad sus proyectos y sus ideas. Eso, para mí, es lo mejor de todo esto: ahora cualquier persona con interés suficiente, cualquier estudiante, puede tener encima de su escritorio las piezas necesarias para crear y desarrollar esa innovación que mejore nuestras vidas.

METAVERSO DE FACEBOOK

El propietario de Facebook Mark Zuckerberg quiere apostar por un cambio en su plataforma llamada Facebook, lo que provocaría un cambio muy grande en los usuarios y en la red social.

Lo que hace el Metaverso es con la tecnología conseguir una experiencia sensorial, que permita que todos los usuarios que lo utilicen puedan tener la sensación de vivir y estar en un mundo virtual. Todo esto a través de un mundo virtual en el cual muchos factores tomarían un papel fundamental e imprescindible.

La aparición de Metaverso va a suponer como he dicho anteriormente grandes cambios, uno de ellos sería la unificación de todas la cuentas en una sola. Zuckerberg con este cambio de Facebook a Meta lo que pretende es ir más allá de la pantalla digital, ya que con esto pretende crear un mundo totalmente virtual, al cual no quiere poner límites y pretende estar siempre mejorando y tratando. En ese nuevo mundo pretendería desarrollar los aspectos cotidianos de la vida y las relaciones sociales, para de esta manera que los usuarios sientan que están en ese lugar con todo lo que les rodea y con todas las personas.

Aunque la idea de metaverso se ha dado a conocer en el mundo entero este año 2021, Zuckerberg lleva pensando en ello desde el año 2004. El mundo que contiene Metaverso está totalmente por explorar, además que falta monetizarlo. Por lo que su futuro es más lejano de lo que parece, aunque ya se han producido grandes mejoras y cambios.

Metaverso será un paso enorme para la presencia social, lo que se intentará desbloquear será la realidad mixta que dotará de mayores experiencias. Por lo que, busca poder trabajar con tu mesa virtual y poder al mismo tiempo ver tu mesa real, algo que tiene un gran potencial.

Además en la óptica se doblan las luz varias veces para de esta manera conseguir un perfil más delgado que lo que nos aportan las gafas actuales, lo que aportará una visualización de alta calidad. Se busca mejorar el hardware para aumentar la realidad.

Algo muy llamativo e interesante es el lanzamiento de las gafas que realizan videos y fotos sin tener que estar mirando el teléfono móvil, aunque no están totalmente desarrolladas. Además quiere insertar hologramas, proyectores, baterías, sensores… Otra cosa que crearía en el metaverso serían los avatares artificiales, los cuales serian muy similares pero nunca idénticos.

Se recrearían lugares realistas en un mundo 3D para mantener reuniones. También están trabajando en un interfaz de voz que te localice cualquier objeto que desees. La finalidad del metaverso es unir a las personas, facilitarle las vidas y llevar al futuro más allá de lo que podamos imaginarnos.

METAVERSO por Iván Baixauli Portillo

Ir más allá de nuestro universo. A parte, de ser la traducción de «Metaverso» es lo que plantea Mark Zuckerberg el CEO de Meta (cuyo antiguo nombre era Facebook) en «El metaverso y cómo lo construiremos juntos: Connect 2021».

A través de las lentes de Realidad virtual que está diseñando Facebook podremos acceder a un nuevo mundo de realidad virtual dónde es posible todo, des de una reunión con amigos en el espacio a ver la evolución a lo largo de los años del Arco del Triunfo.

Vamos por partes, el Metaverso para Zuckerberg consiste en eliminar el 2d y a partir de gafas de realidad virtual entrar en un mundo que aparecemos representados por avatares totalmente formados y customizados a nuestro antojo. En él, es posible todo, ya que se está diseñando para que podamos llevar toda nuestra vida a este universo, poder jugar, trabajar, viajar,….

Facebook o mejor dicho Meta divide el Metaverso por un lado en aplicaciones familiares y por otro en aplicaciones para el trabajo. Las aplicaciones familiares serán a través de Horizon Home. De esta parte muestra cómo ejemplo las dos amigas que se van de fiesta y pagan sus outfits para ella con NFTs. Para la parte laboral está Horizon Wookrooms que facilitará la visualización de proyectos o las reuniones con tus socios o compañeros.

También la empresa de Mark muestra en la presentación un nuevo casco de realidad virtual de color negro, con los que, entre otras cosas, podremos jugar a todos esos juegos de realidad virtual que cada vez son más.

Asimismo, Mark asegura que sus nuevas gafas de realidad aumentada no están listas pero que llegarán pronto. Primero deberán resolver dos problemas: el tamaño, ya que desean hacerlas más pequeñas, y hacerlas más operativas.

Realidad Aumentada: Que es y para qué sirve

Seguro que hemos oído alguna vez el término de realidad aumentada o el de realidad virtual, pero ¿Qué son exactamente?

La realidad virtual genera mundos totalmente virtuales son íntegramente inexistentes, mientras que la realidad aumentada combina elementos inexistentes con otros reales. Además, destacar la existencia de la realidad mixta, esta entremezcla ambas tecnologías dentro de un entorno generado por 3D, que combina elementos virtuales con reales.

Nos centraremos en explicar que es la realidad aumentada y como puede ser de gran utilidad para mejorar la experiencia de compra del usuario, entre otras muchas aplicaciones.

¿Qué es la Realidad Aumentada?

Para explicarlo de una manera sencilla, la Realidad Aumentada nos permite añadir capas de información visual sobre el mundo real utilizando la tecnología, a través de dispositivos como pueden ser nuestros propios teléfonos móviles o las conocidas gafas de realidad aumentada. Esto nos ayuda a generar experiencias que aportan un conocimiento extra relevante acerca del entorno que nos rodea, todo a tiempo real.

Como vemos, mediante esta tecnología podemos complementar la realidad con elementos digitales, entremezclando mundo real y virtual a tiempo real en una única y nueva experiencia. Imaginad la de nuevas oportunidades que se abren a partir del uso de dicha tecnología, y es en esto en lo que nos centraremos a continuación, aquí os abrimos una pequeña ventana a este interesante mundo.

Aplicaciones de la Realidad Aumentada

Un doctor puede ver las constantes vitales de un paciente mientras opera; podemos ir por un supermercado y observar desde nuestro móvil los productos destacados en oferta; un operario puede realizar labores de mantenimiento en una sala de máquinas, obteniendo información de dónde se encuentra cada componente, simplemente apuntando con su Tablet, y sin necesidad de consultar un complicado mapa; un turista puede encontrar puntos de interés de la ciudad que visita, apuntando hacia los lugares que quiere visitar, localizar restaurantes u otros servicios con tan solo alzar la cámara de su teléfono; en el ámbito de la educación, imaginad una clase aprendiendo historia, bilogía, anatomía o mecánica interactuando y viendo en 3D las partes del cuerpo o la recreación del montaje de un motor.

Como vemos tiene infinitas aplicaciones que mejorarían el grado de interacción y conocimiento en muchísimos aspectos de cualquier faceta de nuestro día a día, ya sea en el ámbito profesional, educacional, mejorando nuestra experiencia de compra o recibiendo y comprendiendo mejor un diagnóstico médico.

Poniendo ejemplos más concretos de uso y aplicación de esta tecnología, se está utilizando en retrasmisiones de partidos deportivos en directo, facilitando mayor información a tiempo real, estadísticas de un jugador, alineaciones, porcentajes de acierto y como no, publicidad. Campo que tiene un potencial enorme dentro del desarrollo del uso de RA.

Otros ejemplos a destacar son aplicaciones móviles con RA como Pokémon Go e Ikea Place. Gracias a estas aplicaciones, la gente se ha podido familiarizar cada vez más con el uso de la misma.

En definitiva lo que hace a la Realidad Aumentada ser una de las tecnologías de mayor potencial, convirtiendola en una de las principales armas de innovación a corto y largo plazo, son sus características:

Combinación de mundos, la interacción mundo real – mundo virtual permite tener experiemcias mas completas.

Interactividad a tiempo real, ante un cambio, una acción, una respuesta que realice el usuario; hay una repercusión inmediata en la escena recreada con realidad aumentada, dando mayor realismo a la experiencia.

Tecnologia contextualizada, la información generada tiene que ver con la información que vemos con nuestros propios ojos, viendo así nuestro entorno con la información añadida por RA, dandonos una imagen en cojunto mucho mas completa.

Uso del 3D, la información se muestra siempre con perspectiva, dando la sensación de que adquiere la capacidad física de su entorno, integrandola con la del mundo real, incluso con los avances tecnológicos disponibles, interactuando directamente con las capacidades físicas del entorno.

REALIDAD AUMENTADA,¿QUE ES, COMO FUNCIONA, Y PARA QUE SIRVE? Jorge Bellot

QUE ES LA REALIDAD AUMENTADA

La tecnologia de realidad aumentada consiste en la integracion de contenidos graficos sobre una vista del mundo real.

Para ello, se utilizan dispositivos como telefonos moviles o gafas, que añaden la informacion virtual a la realidad que ve el usuario.

El termino lo cuño en 1992 el cientifico e investigador Tomas P. Caudell mientras desarrollaba uno de los aviones mas famosos del mundo: el Boeing 747 . Caudell observo que los operarios encargados del emsamblaje de la nueva aeronave perdian demasiado tiempo interpretando las instrucciones y penso: ¿Que pasaria si tuvieran acceso a una pantalla que les guiase durante la instalacion? El invento no triunfo , pero en ese preciso momento nacia el concepto de Realidad aumentada.

La realidad aumentada es una tecnologia que nos ofre una interfaz mejorada de acceso a informacion o servicios.

Permite que un usuario acceda de manera agil a la informacion que precisa desde cualquier lugar y teniendo las manos libres.

Algunos ejemplos de realidad aumentada serian los siguientes casos.

MARKETING

La publicidad impresa y en lugares de conveniencia sigue siendo a día de hoy un recurso que las marcas usen ampliamente para promocionarse. Una aplicación habitual de la realidad aumentada consiste en aumentar estos anuncios a través de una aplicación para móvil que se publica a través de los market stores. Por medio de la app se podría acceder a contenidos adicionales como videos o animaciones 3d, descuentos, regalos o similar

FORMACION

Existen muchas formas de aplicar la realidad aumentada para mejorar la formacion

Muchas veces debemos consultar un manual en papel mientras manipulamos elementos fisicos, por ejemplo, cuando montamos un mueble o cuando se mantenga una maquina.

En estos casos , la realidad aumentada con gafas ofrece un enorme potencial, ya que además de dejarnos las manos libres para realizar el montaje , la información se muestra en el lugar que mas interese, o incluso superpuesta al objeto sobre el que hay que operar.

EDUCACION

Los libros de texto nunca volverán a ser los mismos cuando se les incorpore la realidad aumentada para disfrutar de forma interactiva y en 3d de lecciones de anatomía , química o historia.

La posibilidad de vincular a los materiales escolares información tridimensional facilita enormemente la compresión de las materias .

SOBRE PABLO RIPOLL

Hola!

Soy Pablo Ripoll y soy técnico especialista en informática. He trabajado para bastantes empresas informáticas a lo largo de mi vida, y no estaba conforme con mi trabajo ya que yo pensaba muy diferente a mis diferentes jefes a la hora de ayudar a los clientes. Aunque en las reuniones diera mi opinión e intentara convencerlos ninguno me daba la razón, es mas, me la rechazaban como si fuese una tontería.

A día de hoy he creado mi propia empresa de informática donde mi objetivo es que todos mis clientes puedan irse el miso día a su casa con sus dispositivos en la mejor versión posible y con todo lo que ellos deseaban.

Mi empresa de electricidad Jorge Bellot

Nos encargamos del mantenimiento y reparaciones eléctricas de tu hogar o negocio.

Acudimos al domicilio con todos los medios de seguridad

Tenemos una experiencia de mas de dos años. Nos caracteriza la cercanía sencillez y eficiencia con la que realizamos nuestro trabajo consiguiendo la confianza de nuestros clientes respetando el medio ambiente .

Proporcionamos soluciones para conseguir un mayor ahorro energético respetando las necesiadades actuales y futuras convirtiéndose en ahorro económico a corto y largo plazo.

Servicios electricos que ofrecemos:

  • Instalaciones eléctricas en el sector domestico e industrial
  • Mantenimiento de luz
  • Domótica
  • Instalación de telefonillos y video portero
  • Instalación de antenas individuales y colectivas
  • Telecomunicaciones .
4 atributos obligados en una buena empresa de energía eléctrica -  Eficiencia energética y energía solar en Colombia

Metaverso (Nadia García)

Mark Zuckerberg reveló el primer plan que Facebook tiene para su metaversola creación de una tienda de atuendos digitales. El CEO del gigante de internet señaló que mientras más interacción exista entre los usuarios y el metaverso, es más probable que quieran personalizar esta experiencia.

El metaverso es un concepto que aparece en la ciencia ficción y hace alusión a universos alternos múltiples, pero es cada vez más real. Empresas como Microsoft y Nvidia pugnan por liderar este proyecto desde hace varios años.

Además, el desarrollo de esta idea también sería un objetivo principal para Silicon Valley. Lo que se conoce hasta ahora sobre el metaverso es que se trataría de un universo virtual que amplía el mundo físico de los usuarios de internet. Aunque es muy similar a los videojuegos, la realidad virtual no está orientada únicamente al ocio, sino que se enfoca en replicar muchas de las dinámicas sociales como trabajar, ir a un concierto, comprar todo tipo de objetos e interactuar con otros. La pandemia y el confinamiento hicieron que el desarrollo de nuevas iniciativas enfocadas a este universo virtual tomen mucha fuerza.

Y para finalizar, en esta ocasión Facebook apuesta por los avatares, ya que el objetivo de estos será incentivar a los usuarios a adquirir prendas de vestir, accesorios y otros artículos virtuales. Con esta estrategia, Facebook espera dinamizar el comercio digital en la red social y alcanzar cifras millonarias en la próxima década. Sin embargo, no se han proporcionado más detalles sobre cómo planean hacerlo, ya que Facebook aún se encuentra afinando detalles. El único detalle revelador que se conoce, es que Facebook invertirá la astronómica cifra de 10.000 millones de dólares en estos esfuerzos.

Empresa de Mantenimiento Informático- Pablo ripoll

En esta empresa nos dedicamos a ofrecer experiencia de rapidez de la manera mas económica posible a nuestros clientes. Todos nuestros profesionales cuentan con certificados IBM, Microsoft, HP y/o Cisco.

Tenemos a disposición de los clientes un técnico especializado que responderá a cualquier incidencia en menos de 15 minutos las 24 h del día.

Nuestros servicios son los siguientes:

  • Instalación de redes
  • Administración de backups
  • Solución de problemas generados por virus informáticos
  • Instalación de acceso a internet y correo electrónico para la empresa
  • Desarrollamos todo tipo de portales y páginas web

Camila De Matos Martins

Soy la directora creativa del equipo de marketing digital.

Me encargo del proceso de diseño, comunicación y puesta en practica de los productos y servicios de la empresa CM

Experiencia laboral: Con mas de 12 años de experiencia. Tenemos como objetivo conocer tus necesidades para poder definir una estrategia personalizada . De esta manera ofrecerte el mejor servicio.

Sobre mí: Soy una persona comunicativa y rápida, me gusta ser eficiente y tener un buen trato con mi equipo de trabajo.
Aficiones: Me considero una persona con muchas metas y sueños.

DIRECTORA CREATIVA EN REDES SOCIALES (Nadia García)

“Que las sonrisas que muestres en las redes sociales sean reales “

Nadia García

Soy Nadia, directora creativa de marketing digital de la empresa Sellrock, y me encargo de hacer contenido para esta. Las redes sociales hoy en día son muy importantes y para destacar sobre ellas tienes que ser creativo y amante de la nueva tecnología.

ESTUDIOS:
Me licencié en un grado superior de Marketing durante dos años en Capitol Esmpresas y para ampliar mis estudios hice dos másteres, uno de Ilustración y otro de Arte Tecnológico en la EASD de Valencia.
IDIOMAS: Castellano Nativo, Valenciano Nativo, Inglés C1

EXPERIENCIA LABORAL:

Diseñadora de portadas de libros para Geronimo Stilton (3 años) 2017-19

Publicista en New York Times (7 meses)19-20

Socorrista acuático durante la temporada de verano en la Playa de Puzol (2021)

APTITUDES:

Creativa . Comprometida . Racional . Entusiasta . Competidora