OpenGL y su gran futuro

OpenGL es para quien no lo sabe o no está bien informado del todo una API gráfica de bajo nivel que representa el estándar para gráficos 3D. Esta API fue diseñada originalmente por Silicon Graphics Inc. (SGI en adelante) que se dedicaba a fabricar workstations. La idea surgió para tener un método más sencillo para representar gráficos 3D y a SGI le interesaba que fuera abierto porque así más programas habría y más hardware vendería. Fue presentado para Windows NT y en un principio Microsoft quería participar en OpenGL. OpenGL estaría disponible a partir de Windows 95 permitiendo las aplicaciones con OpenGL si la tarjeta gráfica lo soportaba. Entonces Microsoft presentó DirectX, un conjunto de tecnologías para desarrollar juegos en Windows y entre ellas los gráficos 3D. Microsoft defendió OpenGL para programas tipo CAD y DirectX para videojuegos. En un intento de unificar las APIs se creo Fahrenheit; sin embargo esta API nunca vio la luz. Empezó la separación de las APIs

GPU, Windows XP y Khronos

Por el año 2000 salieron las primeras GPU y por entonces también salió Windows XP. También se formó el Khronos Group. Empecemos por Windows XP donde el soporte claro de Microsoft era DirectX. Con el gran lanzamiento de DirectX 9 una API que ya era superior a OpenGL se desarrollaron muchos juegos. OpenGL no evolucionaba y además solía ser más lento ya que si el fabricante no proporcionaba drivers de OpenGL (algo no obligatorio) este funcionaba por software en vez de por hardware. Entonces SGI y otras empresas fundan el Khronos Group que incorpora entre sus objetivos velar por mejorar OpenGL y otras tecnologías.

Windows Vista, DirectX 10 y el iPhone

La siguiente versión de DirectX 10 avanzaba y solo sería compatible con Windows Vista. Todo el mundo sabe que Windows Vista fracasó y por tanto DirectX 10 perdía fuelle y que hicieron los de OpenGL… Reescribir partes de la API para que fuese igual. Así pues OpenGL no lo aprovechó. Sin embargo las cosas cambian y ese día llegó cuando se lanzó el iPhone. No soy partidario de Apple pero el iPhone y todos sus gráficos funcionaban con OpenGL, concretamente con OpenGL ES(ES significa sistemas empotrados). OpenGL volvía a resurgir. Android también nació y también usó OpenGL ES. OpenGL volvía a ser importante.

OpenGL ES 2, la revolución

Entonces se vió que OpenGL ES 1 era un poco malo y lento y para ello el Khronos Group definió una nueva API completamente diferente, sin retrocompatibilidad y centrada en la potencia y simpleza. Nació OpenGL ES 2, la versión de OpenGL más innovadora del momento. Eliminaba partes típicas de la API y las reemplazaba por otros sistemas. Destacan los shaders tanto de vértices como de fragmento. OpenGL ES 2 además tiene muy pocas funciones por tanto la simpleza manda sin dejar de ser potente y profesional. OpenGL ES 2 se diseña como un subconjunto de OpenGL por tanto OpenGL también necesita una renovación. Será OpenGL 3 y 4 las grandes precursoras del cambio que dejan atrás rotaciones de matrices por vertex shaders. La ventaja de los shaders es que se compilan para la GPU y dejan más rendimiento para la CPU.

WebGL y OpenGL ES 3

Las especificaciones de HTML5 ya comtemplaban la etiqueta canvas que permite dibujar gráficos. Primero se introdujo el 2D, más tarde se pensó en el 3D y así surgió WebGL, una API gráfica para HTML/JavaScript. Se basa en OpenGL ES 2 y por ello hace uso extensivo de matrices de vértices y shaders. También surge OpenGL ES 3 que añade mejoras a OpenGL ES 2, sin embargo actualmente no ha sido muy adoptado debido a que es bastante reciente. Actualmente OpenGL es una gran API gráfica libre y multiplataforma que funciona sobre Linux, Mac, Windows (un poco mal, observad el proyecto ANGLE), Haiku, Android, iOS, Firefox OS, BlackBerry OS, Ubuntu Phone, PlayStation 3 y más. OpenGL tiene un gran futuro sobre todo cuando se implementen las otras especificaciones del Khronos Group como OpenCL, WebCL, OpenMAX, OpenWF, OpenML, OpenVG, COLLADA y más APIs que no son tan comunes pero que se integran muy bien con OpenGL.

loading...

Los números aleatorios

La gente a veces te pregunta un número aleatorio para así elegir algo de entre un conjunto. Si piensas un número en ese momento pensarás que es aleatorio y lo dejarás pasar. Sin embargo vamos a entrar en una reflexión acerca de los números aleatorios y si de verdad existen. Primero vamos a hablar sobre el efecto de la aleatoriedad en el cerebro humano.

Aleatoriedad en el cerebro humano

Este punto es interesante y es importante aclarar primero para evitar futuros errores. El cerebro no piensa bien aleatoriamente. Si tuviésemos una máquina de números aleatorios y los oyesemos veríamos que algunos se repetirían o creeríamos ver patrones. Esto es una falsa sensación de no-aleatoriedad. Esto ocurrió con el iPod, cuando la gente seleccionaba Reproducción aleatoria veían que algunas canciones se repetían y la gente se quejó de falta de aleatoriedad. Al final se modificó el algoritmo para que fuese menos aleatorio pero no los repitiese y la gente pensó que era más aleatorio

Generar números aleatorios

Estará pensando como generar números aleatorios con una máquina. Si usted ha pensado poco dirá que un algoritmo, si ha pensado más verá que necesitaremos valores de entrada diferentes para ese algoritmo y no se puede hacer aleatoriedad. Realmente hay 2 métodos pseudo-aleatorios. El primero se basa en mediciones de radiación, es normal que varíe bastante pero es muy lento, el segundo ampliamente usado en la computación es el tiempo. Cada milisegundo es un número que con unas cuentas puede ser muy diferente al del milisegundo anterior. Así se hace aleatoriedad en los ordenadores actualmente. Esto tiene un inconveniente y es que si viésemos todo eso algún día se repetiría y se verían patrones por tanto es imposible generar números realmente aleatorios. Existe investigación en el campo de la física cuántica y los ordenadores cuánticos pero todavía no ha dado sus frutos

¿Es el universo aleatorio?

Podríamos pensar que sí, pero hemos dicho que nos ha resultado imposible hacerlo con ordenadores (ordenadores que son capaces de simular ciertas tareas del universo). Así pues, ¿existen los números aleatorios? Cuando nosotros pensamos un número ¿estamos obedeciendo un patrón?. Es posible pero también hay que pensar en el rango de ese patrón ya que no hay un límite de números en el universo porque los números son infinitos. Si los números son infinitos ¿como serían los números aleatorios reales? ¿Habría algún tope?

Conclusión

Los números aleatorios no existen en los ordenadores y es posible que tampoco en el universo. Pero esto plantea grandes dudas sobre nuestro futuro y si lo podremos predecir usando patrones. El tiempo dirá

Hablando sobre Google Code-in 2012 y proyectos

Ya han anunciado ganadores del concurso Google Code-in 2012. No estoy elegido aunque tiene lógica porque los ganadores los eligen las organizaciones y yo no he trabajado 2 tasks con la misma organización. Visto esto he de decir que he aprendido mucho en diversos temas y me servirá mucho en el futuro. Actualmente quiero mejorar mis juegos actuales (Monopoly, Azpazeta, DivCity, El Juego de las Galaxias, Bloco), colaborar en algún concurso (Olimpiada Informática) y colaborar con algún proyecto de software libre (Simutrans, OpenTTD, Hedgewars). Además tengo que poner en funcionamiento las DivAccounts y Divel Updater y si queda algo de tiempo mejorar otros programas como Narciso, Divel Calendar, Templvs, Tú eres el protagonista, Divel Quiz, Agenda de Correos, etc. No sé si me dará tiempo pero al menos podré decir que lo intenté. Os animo a colaborar si quereis ayudarme en los proyectos de mayor envergadura.

Los navegadores del 2012

Este artículo está escrito originalmente para el IES Zorrilla donde colaboro de vez en cuando

Internet Explorer — Microsoft — HTML: Trident — JavaScript: Chakra
Internet Explorer es uno de los navegadores más importantes. Su éxito radica en que desde su primera versión, ha estado incluido en Windows (y este tenía el 98% de los ordenadores). Internet Explorer ha desarrollado su propia tecnología web con los controles ActiveX, Visual Basic Script y etiquetas HTML extrañas. Por eso tiene fama de extraño y apartado debido a que no cumple el estándar web y todas las webs se tienen que modificar para funcionar con él. Además no es multiplataforma por tanto sería imposible ver webs de Internet Explorer con Mac OSX o con Linux.
SonrisaBuena integración con Windows
TristeMonopoliza la web
Mozilla Firefox — Mozilla Foundation — HTML: Gecko — JavaScript: SpiderMonkey
Mozilla Firefox es la continuación de el navegador Netscape. Funciona en Windows, Mac OSX, Linux, Android y tiene ports para sistemas como NetBSD, Solaris o Haiku. Además se está desarrollando un sistema operativo de smartphone basado en Firefox, Firefox OS, donde todo es una página web. Mozilla Firefox es famoso por su respeto a los estándares web y a su filosofía de mantener la privacidad del usuario. Además a sido pionera en tecnologías ya implantadas y cuenta con una capacidad de personalización increíble gracias a extensiones (tiene tienda oficial con todo gratis), compementos y temas. Actualmente se encuentran desarrollando las aplicaciones de Firefox que servirán para Firefox, Firefox para Android y para Firefox OS. Tiene fama de que gasta mucho, pero actualmente gasta muchísimo menos que antes y esta a igual nivel que Chrome
SonrisaSiempre funcionará con estándares.
TristePuede tener fallos en tecnologías propietarias
Google Chrome — Google — HTML: WebKit — JavaScript: V8
El navegador de Google ha crecido muy rápido. Está disponible de manera oficial en Windows, Mac OSX y Linux. Además el navegador Chromium que es Chrome pero con código abierto (como Firefox). Tiene un motor de JavaScript muy rápido y usa muchos hilos. Esto provoca que parezca que consuma poco aunque no es así. Además hace que páginas muy pequeñas y muy sencillas tarden lo mismo que las grandes. Su capacidad de personalización es muy inferior pero cuenta con la Chrome Web Store. que proporciona apps.
SonrisaMuy rápido en JavaScript
TristePoca seguridad y privacidad
Opera — Opera — HTML: Presto — JavaScript: Carakan
Un desconocido en España pero muy usado en otros países. También usa estándares es también usado en móviles y es el navegador de la Wii y la Nintendo DSi. Poca capacidad de personalización, pero líder en algunas cosas.
SonrisaAlternativa a los otros navegadores
TristeSe usa muy poco
Safari — Apple — Motor: WebKit — JavaScript: Nitro
Desarrollado por Apple se lleva muy bien con Mac OSX e iOS. Usa el mismo motor de Chrome (realmente lo creo Safari). En Windows tiene resultados pésimos y no hay versión de Linux. Se lleva bien-mal con los estándares porque algunas cosas acepta y otras no.
SonrisaEl mejor navegador para Mac OSX
TristeMuy cerrado y algo retrasado en estándares
El resto
Estos son los 5 navegadores principales, ahora bien, existen muchos más navegadores, sobre todo derivados de estos 5 y alguno independiente.
Konqueror — KHTML — KJS
Epiphany — WebKit y Gecko — ?
Midori — WebKit — ?
Maxthlon — Trident y WebKit — ?
Así pues decídete por el que creas conveniente, yo uso Mozilla Firefox ¿y tú?

Consejo Escolar

Bueno antes de nada me presento en estas primeras entradas del blog, soy Adrián Arroyo Calle y soy de Valladolid, España. Hoy voy ha hablaros sobre el consejo escolar. Pero vamos a ver qué es el Consejo Escolar, según Wikipedia el consejo escolar es:  

Consejo escolar es el nombre que en distintos sistemas educativos se da a una institución colegiada cuyas funciones se extienden al control de la gestión de los centros escolares, teniendo su mayor nivel decisiorio en cuestiones no estrictamente docentes.

En mi instituto se celebraban elecciones este año y decidí presentarme. Fui a secretaría y allí, con bastante desorden consiguieron que pudiese participar. Más tarde vi los candidatos, estos eran 3 (conmigo). No les conocía, pero enseguida conocí al primero, vino a ver las listas al mismo tiempo que yo. El otro no le conocí y sigo sin conocerle. Doy la noticia y hablo con profesores y alumnos (una especie de campaña) y llega el día de la verdad, día 19 de Noviembre. A primera hora entregan papeletas por las clases (sin el papel, solo el sobre por una falta de organización tremenda). A mi clase nos toca votar sobre las 11:45. Se pueden elegir 2 candidatos (pues hay dos plazas libres) y somos 3. La mayoría de la gente vota a 2 personas y todos a los que conozco me votan. Hoy ya han sido contados los votos y veo una cosa bastante…296 votos lo que quiere decir que no solo no soy elegido sino que el que no conozco (y nadie por lo visto) ¡me ha ganado! La verdad es que es bastante igualado pero no me he quedado satisfecho con el resultado aunque sea suplente. Dentro de 2 años me volveré a presentar…