Paradigmas


30
mar 12

La Web Tridimensional : WebGL

No Gravatar

WebGL Es una especificación estándar en desarrollo que permite mostrar gráficos tridimensionales acelerados por hardware en navegadores web sin necesidad de instalar software adicional al navegador (plug-ins).

En realidad es una API para javascript que permite usar OpengGL incorporado en los navegadores.[1]

WebGL utiliza un elemento de HTML5 llamado Canvas el cual permite mostrar gráficos 2D e imágenes de una manera dinámica, canvas consiste de una región dibujable definida en código HTML con los atributos de altura y espesor, el código javascript permite acceder a esa región a través de un conjunto completo de funciones de dibujo 2D, esto es lo que permite generar los gráficos dinámicamente. [2]

Esta especificación es gestionada por el consorcio de tecnología Kronos Group.

http://www.khronos.org/webgl/

Para comenzar hay unos muy buenos tutoriales para aprender a usar WebGL [3], que son referencia obligada para entender como funciona esta tecnología.

Para acelerar las cosas existe una biblioteca 3D en javascript llamada three.js, la biblioteca provee <canvas>, <svg> y render WebGL.[4] creada por mrdoob : https://github.com/mrdoob

demos

Demos de mrdoob

En esta biblioteca se incluyen funcionalidades para manejo de camaras (ortografica y perspectiva), funciones para manejar la geometria, el color, vertices, splines, matrices, luces, materiales, objetos (esqueletos, modelos, modelos animados, particulas, etc), renders (canvas, dom, svg, webgl), escenas, texturas y muchas otras mas : http://mrdoob.github.com/three.js/docs/48/#Camera

Y este es un ejemplo de un trabajo muy bueno usando esta tecnología Web3D.

http://www.ro.me/

Una cuestión interesante sobre WebGL es que es un estandar que ha sido adoptado para integrarlo en las nuevas versiones de los navegadores web de Google (chrome) y Mozilla (firefox) incluso de Apple (safari) pero no así en internet explorer de Microsoft pues menciona cuestiones de seguridad para no hacerlo. Por el momento WebGL sigue avanzado.

Nota:

“Los gráficos vectoriales escalables (svg) es una especificación para describir gráficos vectoriales bidimensionales estáticos o anímados en formato xml.” [5] 

Referencias:

[1]http://en.wikipedia.org/wiki/Canvas_element


[2]http://en.wikipedia.org/wiki/WebGL


[3]http://learningwebgl.com/blog/?page_id=1217


[4]https://github.com/mrdoob/three.js/


[5]http://en.wikipedia.org/wiki/Scalable_Vector_Graphics


[6]http://es.wikipedia.org/wiki/Khronos_Group

Imagen y demos:

http://mrdoob.github.com/three.js/


http://mrdoob.com/


http://alteredqualia.com/

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

16
mar 12

Mundos Virtuales

No Gravatar

Desde hace mucho tiempo me interesa el desarrollo de aplicaciones 3D supongo que fue por ver muchas peliculas de ciencia ficción en especial “El jardinero, asesino inocente” y Tron, también creo que por leer artículos de una revista que colecciono de hace mas tiempo, en especial un número de 1995 que habla sobre los próximos 100 años de la tecnología. En este número mencionan “En la sociedad del conocimiento, buena parte de nuestra vida transcurrirá en mundos sintéticos y hasta buscaremos pareja en ellos. Las computadoras imitarán el cerebro humano, habrá granjas moléculares, llevaremos tarjetas de crédito bajo la piel y unos microrrobots se encargarán de quitar el polvo a la computadora cuando la apaguemos” [1]

Los primeros acercamientos a esta area que tuve fue con un libro de 1997 llamado Realidad Virtual. Construcción de Proyectos de Joe Gradecki.

“Los mundos virtuales son lugares donde experimentamos nuevas realidades. Contienen todos los objetos que podemos ver y manejar. Nos permiten además, experimentar cosas que no son posibles en el mundo real” [2]

“Un verdadero programa de realidad virtual debe contener dos componentes:

  1. El punto de vista de un usuario en primera persona que debe realizar movimientos completos a voluntad en tiempo real.
  2. La capacidad de visualizar y modificar el entorno virtual en tiempo real” [3]

Con el tiempo pude realizar algo relacionado con los objetos virtuales cuando conocí VRML (Virtual Reality Modeling Language)

En español “Lenguaje para Modelado de Realidad Virtual” curiosamente su primera especificación fue publicada en 1995.

http://en.wikipedia.org/wiki/VRML

Silicon

Primer acercamiento a web 3d con vrml 1999

Después vinieron los Proyectos 3D con OpenGL , Mesa,  Blender, Maya y mas recientemente

3D Studio,  GLScene y actualmente NeoAxis pero afortunada o desafortunadamente en desarrollos de escritorio.

Los primeros mundos virtuales que conocí vivian en la web, en internet, así que va siendo hora que

continuemos con el principio. “El final es en donde parti” dice una canción de La Renga.

http://www.youtube.com/watch?v=ozC9hETOt2I

Así que desde hace tiempo he estado aprendiendo un poco sobre WebGL y en un futuro no muy lejano espero tener algunas aplicaciones.

WebGL: Es una especificación estándar que está siendo desarrollada actualmente para mostrar gráficos en 3D en navegadores Web.

Los mejores ejemplos en Chrome Experiments http://www.chromeexperiments.com/tag/webgl/

 

Referencias :

[1]: Muy Interesante Especial Los próximos 100 Años. P 27.
[2,3]: Realidad Virtual Construcción de Proyectos. Joe Gradecki. 1997 AlfaOmega. P 2. y P 3

Mas Info : http://www.popsci.com/archive-viewer?id=S812DHiH7dUC

Bonus :   The Popular Science Archive Explorer

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

2
mar 12

NUI (Natural User Interface)

No Gravatar

Los dispositivos moviles como teléfonos inteligentes y “tables” han hecho popular el uso de atractivas interfaces “multitouch”, este tipo de interfaces estan extendiendose a otros dispositivos como mesas interactivas, cristales inteligentes y otros tipos de superficies, para permitir interactuar de una manera mas natural a las personas con la información. Con la aparición de Wii y Kinect que ha agregado el lenguaje corporal, los diseñadores y programadores han pensado en una gran cantidad de aplicaciones que en los próximos años cambiaran la manera en que nos comunicamos con las computadoras.

“En computación, una interfaz natural de usuario o NUI, es el termino comun usado por diseñadores y desarrolladores de interfaces de computadora para referirse a una interfaz de usuario que es efectivamente invisible, o se vuelve invisible con las intereacciones aprendidas sucesivamente por sus usuarios. La palabra natural se utiliza porque la mayoría de las interfaces de computadora utilizan
dispositivos artificiales de control, cuyo funcionamiento se tiene que aprender. una NUI se basa en que un usuario puede rapidamente hacer la transición de principiante a experto. Mientras que la interfaz requiere de aprendizaje, por lo tanto, “Natural” se refiere a un objetivo en la experiencia del usuario, que un usuario siente “como algo natural” mientras interactua con la tecnología” [1].

Evol-Interfaz1

Evolución de las interfaces. [2

“En los años 1970s,80s y 90s Steve Mann desarrollo una serie de estrategias de interfaz de usuario utilizando la interacción natural con el mundo real como una alternativa a una interfaz de línea de comandos (CLI) o a la interfaz gráfica de usuario (GUI). Mann se refiere a esta obra como “interfaces naturales de usuario”, “Interfaces de usuario directas”, y ”Computación Libre de Metaforas” [1].

Evol-Interfaz2

Evolución de las interfaces. [2

Las interfaces naturales de usuario es un siguiente paradigma en la historia de la computación y es un tema de actualidad por lo que hay que estar atento a sus avances así como aprender lo suficiente para poder desarrollar las aplicaciones que se necesitaran para la tecnología que se avecina.

Referencias :

[1].http://en.wikipedia.org/wiki/Natural_user_interface

[2].http://channel9.msdn.com/Events/MIX/MIX09/C15F

Mas información

http://channel9.msdn.com/Events/MIX/MIX09/C13F
http://nuigroup.com/log/P8/
http://nuigroup.com/tv/P75/
http://channel9.msdn.com/blogs/larrylarsen/ces-2010-nui-with-bill-buxton

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

10
feb 12

Instituto para el futuro

No Gravatar

Estaba leyendo unos documentos del “Institute for the future” http://www.iftf.org/ y me encontre algo interesante para un nuevo post, pero …

¿Que es el IFTF?

“Intitute for the future (IFTF) es un “think tank“ creado en 1968 para ayudar a las organizaciones a planificar para el futuro a largo plazo. Fue fundado por Paul Baran, un pionero de los inicios de Internet y co-desarrollador de la conmutación de paqutes, el futurista Theodore Jay Gordon, y el co-inventor del metodo Delphi Olaf Helmer.

El instituto mantiene programas de investigación sobre el futuro de la tecnología, la salud y organizaciones. Se publica una variedad de informes y mapas, así como un blog sobre las tecnologías emergentes.”

En su página web se pueden encontrar información muy interesante sobre : Horizontes de la Salud, Horizontes de Tecnología, Pronósticos a 10 años (ó mejor conocidos como mapas de la década) entre otras.

 

Algunos de los muchos de documentos en su página que se me hacen interesantes son :

Reinventing Energy Futures: Four Visions : http://www.iftf.org/EnergyFutures

A Multiverse of Exploration: The Future of Science 2021 : http://www.iftf.org/futureofscience

The Human Internet: Where will the web take us in 2022? : http://www.iftf.org/TH2012ResearchAgenda

IFTF Announces Release of Domain-Specific Robotics Research : http://www.iftf.org/robotics2010

When Everything is Programmable Forecast and Technology Cards : http://www.iftf.org/node/3724

The Future is a Balancing Act: The 2011 Map of the Decade: http://www.iftf.org/2011mapofthedecade

 

Este sitio es un buen lugar para alimentar la mente de ideas, en un próximo post escribire algo sobre lo que he visto por aqui.

 

Mapa de la década

Mapa de la década

Imagen : http://www.iftf.org/node/3934

“think tank”

Se trata de una expresión inglesa muy utilizada en español, y que se ha intentado adaptar con distintas expresiones como comité de expertos,comité de de sabios,instituto de investigación,gabinete estratégico,centro de pensamiento,laboratorio de ideaso usina de ideasLos think tanks a menudo están relacionados con laboratorios militares, empresas privadas, instituciones académicas o de otro tipo.”

http://es.wikipedia.org/wiki/Think_tank

 

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

17
ene 12

Frameworks, como elegirlos

No Gravatar
Framework como elegirlos

Framework como elegirlos

He pensado en esto unas mil veces y siempre llego a la conclusión de que aunque los frameworks hacen la vida más fácil (en algunos casos), el proceso de desarrollo más rápido y mejora las capacidades de trabajo en equipo, es necesario siempre considerar el uso o no de este tipo de herramientas. Desde mi punto de vista, trataré de explicar que se necesita para elegir un framework.

Características

Basándose en una lista de características del software a desarrollar, un framework debería de cumplir con dicha lista sin agregar complejidad al desarrollo mismo (también conocido como código extra). Suponiendo que quiero desarrollar una aplicación donde básicamente quiero tener usuarios y cada usuario tenga una lista de tareas, pues bien asumo que utilizaré un módulo de usuarios y otro para creación de tareas. Hasta este punto el framework no es necesario.. pero que tal si en mis previsiones esta el realizar funciones más complejas como agregar un calendario para tener un registro de eventos, tomados segun se fueron escribiendo las tareas.. todo esto de forma social y abierta a los demás usuarios .. ok, ya se empieza a complicar y seguro algunos dirían que el framework no se necesita.. pero lo que puede aportar el framework es que aparte de cubrir las características básicas, también se puede adaptar a las características futuras, manteniendo siempre una línea de desarrollo relativamente sencilla de mantener.

Extensible

Con un framework se resuelve más de un problema, de hecho se resuelven problemas que posiblemente no sabías que existian en tu código y eso antes de que te sentaras a codificar. La gran mayoría de frameworks cuentan con repositorios de extensiones mantenidas por la comunidad que extienden funciones y componentes de sus funcionalidades básicas. Es necesario mencionar que extensible no se refiere solamente a la cantidad de extensiones, sino también a la calidad y facilidad con que se pueden mantener y crear tus propias extensiones.

Prototipos que determinen su uso

Creo que experimentar con nuevas tecnologías te hace entender en que momento utilizarlas. Si no has experimentado con nuevas opciones de desarrollo, entonces cada vez que necesites utilizar una nueva herramienta tendrás que gastar algo de tiempo y esfuerzo extra para aprender. Una práctica recomendable es siempre construir un pequeño prototipo donde trates de agrupar por ejemplo interacciones con formularios, almacenamiento en BD y uso de javascript. Me refiero a algo muy simple que quizás con algo de documentación puedas construir en un solo día.

Ayuda

Los frameworks con más tiempo de vida suelen tener muy buena documentación en comparación con los nuevos. Foros, listas de correo, blogs, e incluso sitios como StackOverflow proporcionan una gran cantidad de información. Si hay poca actividad en los foros o listas de correo, definitivamente no es una buena opción la que has elegido por lo que una buena idea sería abandonar ese framework. Encontrar ayuda o ejemplos de código es muy importante en el proceso de aprendizaje de nuevas herramientas. En cuanto a los blogs no dejan de ser útiles porque te dicen que esta pasando alrededor de un framework.

Hay que recordar que el framework aporta agilidad y orden al desarrollo de software, si hace todo lo contrario es porque has metido la pata y debes buscar una mejor herramienta.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

6
ene 12

Imaginando el futuro de la tecnología

No Gravatar

Es una visión de Michell Zappa que aparecio a principios del 2011, “Zappa es un tecnólogo y diseñador originario de estocolmo, quien reside en Londres, su interés principal es pensar sobre el futuro de la tecnología y como la sociedad se adapta a los cambios de esta. “Envision Technology” es un panel de tiempo para visualizar este futuro tratando de demostrar las diferentes áreas de grupos de investigación, y especular sobre cuales de las tecnologias mensionadas serán aceptadas por la sociedad.“

La visión de su proyecto es ayudar a las personas encargadas de diseñar nuestro futuro a que tomen mejores decisiones.

El cree que debe haber tres principales actores en este cambio:

“Emprendedores : Quienes estan ocupados construyendo las herramientas y servicios del futuro

Políticos : Quienes estan ocupados resolviendo las crisis nacionales e internacionales y los problemas que enfrenta la sociedad a diario.

Ciudadanos: Quienes estan ocupados ganándose la vida y sufriendo cada vez más las consecuencias del impacto del futuro.”

El panel muestra diferentes tendencias que van desde 2012 a 2040 (al momento de escribir este post) y estan agrupadas en los temas : Inteligencia Artificial, Internet, Interfaces, Sensores, Computo Ubicuo, Robotica, Biotecnología, Materiales, Energía, Espacio y GeoTecnología. Cada mención en el panel al seleccionarla muestra una descripcion breve y un enlace hacia wikipedia con información mas detallada.

“Envision Technology” es una excelente guía para preparar el camino al desarrollo de nuevas ideas en esas areas y contruir las aplicaciones y herramientas del futuro.

http://envisioningtech.com/

http://envisioningtech.com/presentations/

Tal vez la tecnología del futuro se parezca un poco más a esto:

http://www.youtube.com/watch?v=a6cNdhOKwi0

http://www.youtube.com/watch?v=nWk8aAOdw7s

 

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

5
jun 09

Qbit Computadoras Cuánticas

No Gravatar

La tecnología nos apasiona… desde que descubrimos las computadoras y decidimos dedicarnos a crear con ellas, y tal vez desde un poco antes, cuando descubrimos la televisión o la radio, los videojuegos y recientemente Internet y los móviles, o tal vez aún antes, cuando nos leian historias de ciencia ficción de viajes a la luna y a otros planetas, lo cierto es que la tecnología ha estado ahí desde hace mucho tiempo y seguirá estando en todos los ámbitos del quehacer humano, avanzando siempre y sorprendiéndonos con cada nuevo progreso.

Uno de esos grandes progresos será sin duda la computación cuántica; en la actualidad la mayoría de las computadoras modernas basan sus operaciones en valores eléctricos binarios. En la computación digital, un bit sólo puede tener dos valores, 0 o 1. El bit es la unidad mínima de información empleada en informática en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado de “apagado” (0), y el otro al estado de “encendido” (1).

Que es la computación cuántica?

“La computación cuántica es un paradigma de computación distinto al de la computación clásica. Se basa en el uso de qubits o qbits en lugar de bits, y da lugar a nuevas puertas lógicas que hacen posibles nuevos algoritmos. Una misma tarea puede tener diferente complejidad en computación clásica y en computación cuántica, lo que ha dado lugar a una gran expectación, ya que algunos problemas intratables pasan a ser tratables. Mientras un computador clásico equivale a una máquina de Turing, un computador cuántico equivale a una máquina de Turing indeterminista. ”

http://es.wikipedia.org/wiki/Computaci%C3%B3n_cu%C3%A1ntica

Una computadora cuántica no tiene chips, sino que sólo utiliza los átomos individuales para llevar a cabo cálculos en teoría a una velocidad que resulta increíble…

“Los átomos sirven para procesar y «mover» la información de una manera diferente. Se denominan «qbits», el equivalente al 0 y 1, el lenguaje binario en el que hablan los ordenadores actuales. En otras palabras, es como sustituir las memorias «bit» de los ordenadores por átomos. La enorme ventaja aquí es que un átomo puede estar en dos estados distintos «a la vez»: 0, 1, o una «mezcla» entre los dos, llamada «superposición». Un sólo átomo o «qbit» ofrece varias posibilidades. Y un ordenador de 500 «qbits», con todas las combinaciones posibles de sus «estados superpuestos», equivaldría a uno convencional con un número de procesadores inimaginable, de 10 elevado a 150, imposible de construir.” Ignacio Cirac 1995.

Visto en http://www.laflecha.net/canales/ciencia/200503142/

Entre las aplicaciones que se pueden obtener con la computación cuántica se encuentran la criptografía cuántica, la teleportación cuántica, la electrónica molecular asi como el desarrollo del mismo hardware para este nuevo tipo de tecnología.

Todo un nuevo campo de oportunidades y futuras aplicaciones que nos esperan a no muchos años de distancia.

Mas información :

http://es.wikipedia.org/wiki/Criptograf%C3%ADa_cu%C3%A1ntica

http://en.wikipedia.org/wiki/Quantum_teleportation

http://es.wikipedia.org/wiki/Electr%C3%B3nica_molecular

http://forums.canadiancontent.net/science-environment/46627-four-ways-build-quantum-computer.html

http://scienceblogs.com/pontiff/2007/11/qubit_qbit_qbit_or_qbert_1.php

http://labellateoria.blogspot.com/2007/12/coherencia-y-computacin-mecanico.html

http://www.gigle.net/ordenadores-cuanticos-y-moleculares/

http://www.nsti.org/procs/Nanotech2007v1/2/W78.720

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

Qbit Mexhico Blog is using WP-Gravatar