GeuS’ Blog

Diciembre 31, 2006

America’s Cup: Simulador de seguimiento

Archivado en: Computers & Internet — geus @ 7:17 pm

El pasado Noviembre Microsoft tuvo negociaciones con Alcatel(Patrocinador externo de la America’s Cup)  con intención de promocionar su tercera generación de productos y tecnologías de desarrollo junto con Windows Vista.

Microsoft llevaba muchas suculentas ofertas, pero como llegaban tarde (empieza en junio) no podían ir con las manos vacías por lo que nos encargó que le hiciéramos una pequeña demostración para un simulador 3d para el seguimiento de las carreras en tiempo real, recogiendo datos por gps.

Nos pusimos manos a la obra y en una intensa semana y media conseguimos resultados bastante interesantes.

Lo que cabe destacar mas es la mezcla de técnicas y tecnologías que hicimos. Se trata de una aplicación Windows.Forms, con un control de Windows Presentation Foundation empotrado (barra lateral) y otro control Windows.Froms cuyo pintado funciona con DirectX9.0. Es interesante ver que algunas de ellas se consideran oficialmente incompatibles (WPF y DirectX)

Por supuesto los gráficos son mejorables, pero solo es cuestión de tiempo si el proyecto completo sale a delante. Utilizamos Jad Engine como base para realizar la aplicación, la experiencia fue reconfortante.

Otros aspectos que intentamos esforzarnos fueron:

Camaras en primera persona, movimientos suaves. Intefaces elegantes y con efectos llamativos, vídeos con streaming en tiempo real que le diera gran flexibilidad(carrera real, publicidad, comentaristas, documentales de la tripulación…).

En aplicaciónes 3D lo que primero suele llamar la atención son los gráficos estáticos (modelos, fondos etc..) pero la dinámica aunque pase mas desapercibida es imprescindible y normalmente de mayor dificultad que los gráficos estáticos.

No es trivial conseguir un movimiento realista dado una lista de coordenadas, no pueden seguir los puntos en linea recta, deben ser curvas, los barcos deben tener un movimiento de pandeo en las curvas mas cerradas, y deben ir mas rápido entre dos puntos mas separados ya que los tiempos dados se presuponen periódicos.

Para solucionarlo realizamos una implementación de las curvas de bezier, que era construida con la lista de coordenada, dicha curva nos suministraba en cada instante, la posición, la dirección y el pandeo que debía tener cada barco en cada instante de tiempo. Para calcular las rutas implementé un pequeño editor que posteriormente nos generaba un xml con la ruta lista para insertar en el simulador.

PathDesigner

Saludos y Feliz Año.

Diciembre 9, 2006

Comando nmap

Archivado en: Computers & Internet — geus @ 3:56 pm

Pues, bastante tiempo llevo topándome con el deseo buscar los host que hay en una red desde bash, como son pequeños problemillas al final nunca lo miro. Esta vez lo apunto.

Comando nmap : ver todos los hosts de una red, por ejemplo mi red local de mascara de red de 24 bits.

geus@GeuS-Server:~$ nmap -sP 192.168.1.0/24  at 2006-12-09 08:15 CET

Host 192.168.1.1 appears to be up.
Host 192.168.1.34 appears to be up.
Host 192.168.1.35 appears to be up.

Comando nmap para ver información de los puertos abiertos y el sistema operativo de un host

geus@GeuS-Server:~$ sudo nmap -sS -O 192.168.1.0/24 Starting Nmap 4.10 at 2006-12-09 08:16 CET
WARNING: RST from port 21 — is this port really open?
WARNING: RST from port 21 — is this port really open?
WARNING: RST from port 21 — is this port really open?
WARNING: RST from port 21 — is this port really open?
WARNING: RST from port 21 — is this port really open?
WARNING: RST from port 21 — is this port really open?

Insufficient responses for TCP sequencing (0), OS detection may be less accurate
Interesting ports on 192.168.1.1:
Not shown: 1676 closed ports
PORT STATE SERVICE
21/tcp open ftp
23/tcp open telnet
80/tcp open http

MAC Address: 00:13:49:19:C0:9D (ZyXEL Communications)
Device type: broadband router
Running: ZyXel ZyNOS, Intel embedded
OS details: ZyXel Prestige 791R, ZyXel ZyNOS based Broadband router (ZyNOS) or Intel Express ISDN router

Diciembre 7, 2006

Obtener el angulo dado un vector

Archivado en: Uncategorized — geus @ 10:03 pm

Pues claro, la respuesta típica es la arcotangente! Pero bueno… los resultados no se obtienen entre 0 y 2Pi, sino entre -Pi /2 y Pi/2, por lo tanto necesita algunos ajustes. Me he topado varias veces con el problema y siempre se me olvida, al final, algo que debería resolver de inmediato acaba consumiendome un cuarto de hora de tiempo.

Gimbal Lock

Diciembre 6, 2006

Programá ta tirao!

Archivado en: Blogroll — geus @ 1:13 am

Todo el mundo puede ser informático, por supuesto, no se trata de una ingeniería, es algo más que evidente ¿no? Hasta mi abuela utiliza ya el ordenador, además todo el mundo saben que ya no hacen falta informáticos porque los ordenadores ya lo hacen todo.

Explicaré porqué todos llevamos un informático dentro y mostraré que los informáticos deben ser relegados ha hacer páginas web, cambiar tonels de impresoras, eliminación de virus y en un caso extremo la vacunación de las computadoras, pero siempre en presencia de un teleco o veterinario ya que el uso de la jeringuilla puede ser peligroso. Cuatro Capítulos:

  1. Programar es fácil.
  2. Dirigir un proyecto software es fácil.
  3. El Hardware que se da en informática es tan sencillo como el parbulario.
  4. Los informáticos no entienden la complejidad de lo que aprenden los Teleco.

 

Demostraré que en Europa y el Mundo están equivocados y que son unos ignorantes. La informática no debe ser reconocida como una disciplina própia, sino que la poca materia que se imparte, debe ser separada entre ingenierías de Mayor calado como Teleco o Industriales. Por supuesto debemos apoyar a nuestro querido gobierno para llevar a cabo las reformas planeadas.

Programar es fácil:

Un amigo informático me pregunto algo de que si sabía algoritmia?.
complejidad de algoritmos?

Yo que soy teleco, muy orgulloso le respondí que yo sabía C y que si era capaz de resolver una integral triple evidentemente hacer una función en C no podría ser tan difícil, y el tipo encima me responde con mala educación diciendo que no era cociente de que un simple programita mal hecho con complejidá nose que puede tardar millones de años con una tablita de 20 o 30 huequitos, por muy potente que fuera el procesador…

El tio ya se picó y empezó a decirme que si sabía algo de estructuras de datos? ¡Yo con listas lo hago todo y eso es un struct con un puntero a otro struct, mu fácil!

Y seguia…¿Eres capaz de almacenar información compleja y tratarla de manera eficiente? Que ocurre cuando una estructura de datos tiene millones de elementos, que ocurre cuando se accede de manera concurrente? ¿sabes algo de Computabilidad? Eres capaz de hacer todo esto de una forma, flexible, potente a la vez de escalable y comprensible? Sabes algo sobre patrones de diseño?….

En fín por eso nunca contrataré a un informático en mi empresa, hacen de lo fácil un mundo, solo saben traer problemas. Mejor contrato a un Teleco que se está mas callado y hace mejor código, eso sí por poco tiempo ya que un ingeniero de tal categoría no merece el puesto de un picacódigo.

Lo que mas me rio es de la base matemática de los informáticos, bua! cosas realmente inútiles: teoría de grafos, matemáticas discretas, estadísticas. Encima me dicen que son muy necesarios que si para seguridad que si criptografía…¿pero quien va a ponerse a descifrar una contraseña?¿además quien va a querer atacarme? Yo no tengo ni ningún enemigo.

Me preguntaron si tenía alguna experiencia con otros lenguajes: c++, java, prolog, sql, lisp, html, clips, php, asp, xml, c#, visualbasic… Yo sé C que es el lenguaje mas potente y mejor, el resto seguro que no hacen tanto y además serán muy fáciles.

Estar en un mercado que tus conocimientos tecnológicos se quedan obsoletos en tres meses de descanso no es tan complicado como dicen, el problema es que los informaticuchos se dedican a aprener de memoria como papagayos y no comprenden nada, a mi no me hace falta saber ninguna tecnología, ni experiencia con tecnologías pasadas, comprender cosas dificiles de verdad es lo que yo hago con mis integrales triples de cálculo y tratamiento de señales.

Bueno ya me he cansado de este monologo, porque me estoy alterando a mi mismo con este tonto virtual, así que seguiré hablando como informático:

La experiencia con lenguajes es otro factor importante, aumentar la productividad, escalabilidad, simplicidad, mas aún cuando los mezclas, es importante conocer las cualidades que hacen un lenguaje fuerte y explotarlas. ¿Tienes alguna idea de como hacer un compilador? ¿Como crear nuevos lenguajes que mejoren la productividad manteniendo la potencia?

Sabes que ocurre cuando mas de una persona intenta utilizar el mismo programa simultáneamente, y la mas mínima idea de las consecuencias que conlleva esto?
Programación Concurrente y Distribuida?

Inteligencia Artificial? Algoritmia básica? Redes neuronales? Algoritmos evolutivos? Árboles de decisión? Agentes software? Programación declarativa?

Bases de Datos? Transacciones, concurrencia, sabes que es minería de datos, sabes que es inferir nuevo conocimiento de una base de datos? Creo que mucha gente ni si quiera se ha planteado que ventajas trae tener bases de datos. Por supuesto dudo que mucha gente mas que fp o informáticos sean capaz de conectar un programa con una de ellas.

Hay que saber Tecnologías y herramientas, es importante, permiten mejorar la productividad infinitamente, además es bueno tener experiencias con tecnologías pasadas, control de sistemas operativos a nivel de aplicación (cuanto menos), conceptos de protocolos de comunicaciones a nivel de aplicación…


En fín podría llevarme mucho tiempo escribiendo sobre cualidades necesarias solo en el téma de la programación pero ya me he cansado.

Dudo que la mayoría de telecos sepan hacer de forma real, no teórica , las cosas mas simples que utiliza a diario en su PC, desde un notepad a una simple página web. Y esque después de todo puede que sea fácil, pero si alguien puede decirlo, somos nosotros, que sabemos hacerlo y que comprendemos los problemas de una manera mas profunda.
Ellos… ellos no saben ni por donde empezar

Por supuesto los informáticos no somos la panacea y todo el mundo que estudie estas ramas puede aprender, pero ya basta de tanta hipocresía, no son tareas fáciles ni triviales y es bastante molesto escuchar a personas con estudios, ingenieros o gente que se supone que sabe razonar decir todo tipo de barbaridades y desprecios hacia la informática.

Odio tener que evaluar carreras, me parece estúpido. El que debe evaluar es el mismo mercado, pero puestos a poner atribuciones que sean defendidas de manera institucional, que no sean con argumentos estúpidos e ignorantes, si vamos a poner las cosas en su sitio. Aquí los que sabemos de esto somos nosotros, y vosotros a hacer chips, con transistores, resistencias y bobinas, ala! a montar una antena FM.


Blog de WordPress.com.