2.28.2006

Kenta Cho Returns

Leo en Kedume que kenta ha vuelto a hacer de las suyas. Esta vez es un juego de disparos que me recuerda a otro que ya tenía, A7Xpg, pero este tiene un control la polla de difícil, tiene unos efectos que emulan el motion blur que dan un toque muy bueno y por primera vez añade física real gracias a ODE. Voy a echarme unos vicios

2.27.2006

La mejor de las inversiones

Si te digo que pienses en una empresa que está en la cresta a nivel mundial y que no sea una entidad bancaria en qué empresa pensarías? Lo primero que viene a la cabeza es google. Todo el munso sabe qué es google, para que sirve, qué hace... incluso la gente de la calle, esa que le importa un rábano internet, usa gmail.

Si piensas bien en qué es lo que tiene google además de unos cuantos servidores corriendo una serie de procesos, no tiene nada excepto el capital humano. Está claro que cuando las cosas se hacen bien, la gente las usa y la empresa sube y eso solo se consigue de una forma, tener a la gente contenta, cosa que ráramente se ve en este país. Y es que no hay más que ver las fotos de las oficinas de google para darse cuenta que esos pavos están agusto en el trabajo (con todas las de la ley).

En mi corta pero intensa vida laboral todavía no he visto una sonrisa por parte de una empresa a un empleado o que un empleado diga que está contento y defienda la empresa en la que trabaja con uñas y dientes. A pesar de ello sí que escucho todos los días las ganas que tiene la gente de hacer las cosas mejor, de innovar, de mejorar, de investigar cosas, pero siempre son pensamientos frustrados por el escaso sueldo, las ideas fijas de algún directivo o cualquier otra cosa. En google los empleados tienen un 20% de su tiempo para proyectos propios, imagino que se habrán dado cuenta de que una vez el negocio está en marcha, generar nuevos ingresos es exclusivo de seguir sacando productos (ahí teneis a los yogures, los detergentes, los bancos, las aseguradoras, etc, etc) y quien mejor que eso que alguien que ya conoce el negocio y cada una de sus partes, como no, sus empleados.


Por mi parte, en mi trabajo o fuera de él, siempre me tomo una parte del tiempo para pensar en qué se podría hacer, a veces pensando en la rentabilidad y otras en nada, símplemente como reto personal. Es cierto que una gran parte de ese tipo no es muy fructífera, casi siempre las ideas están ya inventadas, ya están probadas y no funcionan, son demasiado difíciles, costosas o caras o se escapan a mis conocimientos, pero por lo menos sirven para no encasillarse en el trabajo diario, en la rutina, en la dinámica de "sacar el trabajo" que es un cáncer terrible y encima hay veces que las ideas funcionan XD.

Voy a echar currículum en google :)

2.26.2006

año de nieves, año de bienes

A ver si es verdad:




La foto está hecha desde el balcón de mi casa hacia la iglesia de San Pedro en Alaejos (Valladolid). No es que las iglesias sean santo de mi devoción, pero es lo más caracteristico y desde luego lo que más se ve de mi pueblo.

2.23.2006

Contratos con Abansys

LLevo recibiendo mails de Abansys unos meses adviertiendom de fallos del servicio que tengo contratado, felicitandome la navidad por ser un buen cliente, etc, etc. La verdad es que a mi me gusta que las empresas sean atentas con los clientes, que informen de las incidencias... pero es que da la casualidad que yo no he contratado nada con estos señores. Pero lo peor no es eso, lo peor es que les he enviado ya 3 mails pidiéndole por favor que me informaran de qué servicios tengo contratados a lo cual no me han respondido. Pero ojo, lo peor está por venir, esta es la cola del mail que me envían:

"""
AVISO LEGAL
Este mensaje está dirigido únicamente los clientes de Tus Profesionales S.L.. Si lo ha recibido por error, le informamos de que su contenido es reservado y su lectura, copia, uso o publicación en cualquier medio no está autorizado. Tus Profesionales S.L. no garantiza la confidencialidad de los mensajes transmitidos vía internet y se reserva el derecho a ejercer las acciones legales que le correspondan contra todo tercero que acceda o utilice de forma ilegítima al contenido de este mensaje y al de los ficheros contenidos en el mismo.
"""

Esto quiere decir que me si me mandan ellos a mi un correo por error y lo leo estoy cometiendo un delito por el que me pueden llevar ante un juez ¿?, cómo se yo que no debo leerlo? tengo que empezar a leer el mail por el aviso legal que está al final?. A lo mejor les tendría que decir que se leyeran el artículo 21 de la famosa LSSI. Qué venga un abogado y me lo explique.

Tus fotos en flickr

Me gusta tener siempre una carpeta con shots de las cosas que veo y me van gustando, de alguna demo, de una web o de el avance de un programa creado por mi. La verdad es que me gustaría tenerlas en flickr para poner una pequeña tira en el blog, pero es un verdadero tostón hacerlo a mano... hasta hoy, gracias a libgmail he creado un script en python que sube las fotos que haya en una carpeta que tu le indiques. Además mantiene una base de datos con las fotos enviadas para que no haya repeticiones.

El mecanismo es simple, busca los nuevos ficheros y gracias a la cuenta gmail que _debes_ tener manda a flickr gracias a la posibilidad de enviar por mail. Es un script muy simple, lo puedes encontrar aquí (gracias a google pagecreator).

La configuración es simple:

path_to_shots = "C:\\path\\a\\tus\\shots" <- aquí la carpeta donde están las capturas
mail_to = "tu_correo_flickr@photos.flickr.com"; <- la dirección que te asigna flickr para enviar fotos


account_user = "tu_correo@gmail.com" #esta claro no?
account_pass = "tu_pass" #está también claro no?

Y por supuesto bajarte libgmail y poner los ficheros lgconstants.py y libgmail.py en el mismo directorio del script :).

Cierto es que hay herramientas para hacerlo de format simple, pero como las comida de casa no hay ninguna.

2.22.2006

Python para Nokia

Hace tiempo queya había leído que para algunos terminales nokia se podían hacer scripts en python, pero últimamente estoy leyendo bastantes más cosas interesantes al respecto. Empezando por el este post en el blog del creador de python Guido Van Rossum en el que habla de forma bastante optimista de python sobre un nokia. Imagino que parte de esta alegría será debida a que nokia ha decidido hace unos días sacar al público la versión de python para la serie 60. Lógicamente la liberación no es fruto de la casualidad, en palabras del Guido:

"Opening up the platform makes the phones accessible, and will inevitably lead to cool new applications, as well as to third-party improvements to the port itself."

Lo cierto es que usar python es algo bastante interesante, sobretodo cara a la programación de software para móvil que parece que es lo que se lleva y va a llevar. Es un lenguaje simple y con un montón de API que por si fuera poco puede extenderse para nokia con C++. Lo cierto es que es muy parecido a java, no sé realmente la razón por la cual nokia no ha tirado por el camino de java...

Tengo unas ganas locas de que salga algún API similar a pygame para nokia y empiecen a hacerse cosillas. De momento solo he visto una aplicación ( no he mirando demasiado la verdad), aunque bastante jugosa eso sí, con python sobre nokia. Se trata de una aplicación para registrar las posiciones durante el senderismo: pytrek

De momento si tienes un nokia puedes empezar por las serie de tutoriales para S60. Viendo algunas cosas como esta da miedo pensar en si una persona malintencionada te cuela un .py en tu móvil.

2.20.2006

Programación de juegos en linux

Em linuxjuegos leo un artículo muy interesante que enlaza a una web, losersJuegos. La web habla sobre videojuegos, tanto los que crean ellos, como los que te enseñan a crear gracias a una serie de tutoriales bastante bien ilustrados y fáciles de seguir. Además he visto algo que nunca había visto, en los juegos que tienen colgados creados por ellos mismos dejan la documentación del código generada con doxygen.

Además, en linuxjuegos hace tiempo que empezaron una serie de tutoriales sobre programación de juegos en linux usando python (sí!): presentación, tutorial 1, tutorial 2 y tutorial 3 , creación de un space invaders. Además en su foro hay algunos post interesantes sobre programación de juegos.

De regalo un uso para python: añadir un marco a una foto.

PD: y otro regalo más: pyspacewar

Reflexión sobre el software libre

En estos momentos estoy programando un mecanismo de protección para el ejecutable que surgirá de la compilación de todo mi trabajo con el PFC. Es un sistema clásico de "license-key" en el que no estoy empleando mucho tiempo porque está claro que si quieren sacarte el sistema de protección, lo harán.

Pensaba yo que qué ganaría si en vez de usar un sistema de este tipo pusiera el código de la aplicación bajo GPL y la colgara en una página web. Siempre he leído que libre es distinto de gratis, pero no acabo de pillarle el tranquillo. Qué hago, vendo los fuentes?, vendo la aplicación ya compilada pero dejo libres y gratis los fuentes, vendo todo junto?.

Pongamos el caso de que dejo libres y gratuítos los fuentes, nada impediría a un agricultor bajarse los fuentes, compilarlos e instalarlos en su pocketpc. Es muy posible que nisiquiera llamara al servicio técnico, es decir, yo, para solucionar algún problema, instarle la aplicación o enseñarle a manejar.

Mejor voy a pensar con números. Imaginemos que la aplicación la vendo por 100€ por poner un coste, por la ley de la oferta y la demanda habría X compradores dispuestos a pagarlo. En caso de dejarla libre y gratuíta, esto es, distribuyera los fuentes, por la ley de la oferta y la demanda tendría muchas más personas dispuestas a consumir el software y asumo que un porcentaje de esas personas me llamarían para pedir soporte, instalación o cualquier otra cosa relacionada. Qué porcentaje de personas lo harían? a cúanto debería cobrar el servicio para que fuera tan rentable como venderlo?. uf.

Ahora introduzco otro factor, el HW. La aplicación debe correr en pocketpc cuyo coste actual supera los 250€, con lo cual la ley de la oferta y la demanda en el caso de darlo gratis ya no sería tan favorable, se complica la cosa.

Por tanto no entiendo de donde puede venir el dinero de la gente que se dedica a programar software libre, es más, si yo sacara mi software libre, qué impediría que otra personas cogiera mi código, lo mejorara y lo vendiera, haciendo un 10% del trabajo que yo he empleado. Eso está muy bien cara al usuario, pero no me parecería bien si la persona no me diera la parte correspondiente a mi trabajo del precio de venta del producto.

Miremos desde el punto de vista de la venta del código. Si yo vendo el código, puede darse el caso anterior, una persona me lo compra (como un agricultor más), lo mejora y me jode mi negocio. Supongamos que nadie hace eso, esto es, por cada copia que vendo yo doy los fuentes, los binarios, instalación y cierto soporte, qué mejora que yo entregue el código fuente al agricultor?

Mire por donde lo mire no encuentro cómo funciona el negocio del software libre. Tal vez la gente de consultux pueda explicarmelo ya que tiene área específica de desarrollo de software. Quizás Mario(por cierto, interesante y jugoso artículo sobre creación de meta distros en llaves USB) o Jorge puedan hacerlo, o espero que alguien de planet augcyl.

2.19.2006

Usa python por favor

En mi serie de artículos sobre "usa %s por favor" % cosa no puedo por menos que exponer por qué una personas de la calle _debe_ usar python en el día a día de su relación con su máquina (no hablo de PC, ojo).

Joder, quién no ha querido cambiar un montón de ficheros de una vez, procesaor ficheros de texto, modificar imágenes, capturar imágenes de una webcam, hacer un juego, abrir una hoja de excel y modificarla, hacer una web, dar de comer a tu gato de forma remota, hacer un sistema distribuído, hacer una aplicación de contabilidad, manejar el puerto paralelo/serie o símplemente que querido librarse de crear la típica tarea que sabes que se puede hacer automáticamente pero que realmente no sabes como o eres demasiado vago para ponerte a programarla.

Todos estas cosas y muchas más las puedes hacer con python. Para el que no sepa ni de lo que estoy hablando te diré que python es un lenguaje de programación simple y potente y que en no demasiado tiempo te puede permitir hacer cosas que ahora mismo piensas que son imposibles de hacer para tí. Para abrir boca puedes leer la página de wikipedia sobre python. Si ya sabes lo que es python, no sé qué haces que no estás usandolo pero ya.

Qué tiene python de bueno:

- Es simple de usar y de aprender.
- Permite hacer desde programas de una línea hasta el infinito.
- Permite hacer prácticamente de todo en casi cualquier dispositivo.

Basta con bajarse la última versión para tu SO preferido (windows, en linux suele venir con la distribución, aunque puedes bajarlo y compilarlo tú mismo) y empezar a echar un vistazo a la documentación, en concreto al tutorial (inglés, español) y empezar a hacer cosas. Cuando digo cosas no digo el típico printf("hola mundo"), hablo de cosas que pueden resultar útiles. En mi caso lo uso casi siempre para ahorrarme trabajo en la edición de código, extraer datos de cabeceras... por ejemplo, en mi proyecto fin de carrera lo uso para generar un fichero de texto con la simulación de una trayectoria de un tractor en una tierra. Es totalmente posible hacerlo en C/C++ o cualquier otro lenguaje, pero Python ofrece un montón de herramientas, por ejemplo , en este caso me permite manipular las cadenas con facilidad, usar perlin noise (para hacer variar la trazada suavemente), grabarlo a fichero, etc.

Lo que más me gusta de python es que cuando llevas un tiempo usándolo puedes empezar a hacer verdaderas virguerías. Por ejemplo, puedes capturar imágenes de tu webcam y procesarlas y todo esto con poquísimas líneas de código:


from VideoCapture import Device

cam = Device()
cam.saveSnapshot('image.jpg')


Simple no?, pues con esa extensión y, por ejemplo, PIL (python image library) puedes crear listas de las capturas tomadas en pequeñín. Seguro que hay muchísmas cosas que se te puede ocurrir y que fácilmente se pueden hacer con python.

Pero no solo hay esto, puedes hacer juegos con pygame (por ejemplo como este de r3d de rgba XDD) o como makefight (pronto noticias), puedes embeberlo para usarlo desde tu aplicación en C++ con las facilidades que da swig, puedes usarlo en tu nokia, en tu pocketpc... qué más se puede pedir?.

Como lenguaje se puede decir que tiene un API brutal, que es interpretado, que es orientado a objetos incluídas las facilidades del garbage collector y que prácticamente te obliga a mantener un código limpio. No voy a enumerar algunos de sus problemas para no ensuciar el post :/.

Nada más, solo que visites la página oficial de vez en cuando, alguna página de noticias para saber lo que hay de nuevo o el weblog del creador... Ah! y que no dejes de practicar :).

2.18.2006

XGL, toma !

versión reducida de XGL para windows. Breve pero intensa.

Cuidado con tu carnet de identidad

Después de leer un artículo en barrapunto en el que comentan la absolución a dos personas que compraron por internet con la tarjeta de crédito de un tercero, me veo en la obligación de contar algunos casos ocurridos muy cerca de mi entorno con los carnets de identidad.

El carnet de identidad es ese documento oficial que todos debemos llevar en nuestro bolsillo para identificarnos y que es necesario presentar para casi cualquier tipo de contrato. Normalmente no solemos darle la importancia que tiene, cosa por otro lado normal, es sólamente un documento que tiene una firma y una foto, medios que son bastante poco fiables a la hora de autentificar un individuo (tanto mi firma como mi foto cambian a lo largo de los años, supongo que igual que la del resto de individuos que evolucionen). Es muy común, además, que la tenencia del documento te sirva como llave de paso, por ejemplo, basta con llevar un carnet de identidad y una tarjeta de crédito en las que no necesariamente coincide el nombre del titular y basta con entregar al dependiente del centro comercial de turno para que confíe en ti, nisquiera mirando lo mínimo, la coincidencia. Lógicamente el amable señor tampoco mira si la firma "se parece", y entrecomillo porque es la única verificación que este señor puede hacer además de la citada de comprobar la coincidencia de titulares.

Recientemente he conocido casos graves de utilización fraudulenta de DNI de terceros y lo peor es que no creo que sean los únicos capaces de hacerse. El primero de ellos se trata de abrir una cuenta en un banco, si, repito, en un banco a nombre de la persona propietaria del carnet de identidad sustraído u obtenido por cualquier otro medio y dar de alta en esa cuenta unas decenas de contratos de teléfonos móviles... y bueno, no es la peor, la segunda que he conocido es la de hacer transferencias de vehículos. Para hacer una transferencia de un vehículo es necesaria la firma y el carnet de indentidad, como mínimo, de la persona que recibe el vehículo, pues bien, la jugada es engañar, sobornar o cualquier otra acción a la gestoría que lo tramita y decirla que el que recibe el vehículo no puede venir, enseñan su carnet y dicen que ya le llevan el documento para que lo firme. Lógicamente la gestoría si es como debe ser no hará el papeleo si no están presentes las dos partes, pero todos cometemos errores y a veces pasan estas cosas. Lo peor no es que te transfieran un coche a tu nombre, nisiquiera es que lo hagan sin saberlo o incluso que preparen la de dios con los coches y te lleguen kilos en multas, lo peor es que es muy difícil demostrar que tu no has firmado la transferencia.

Como estas, estoy seguro que habrá muchas más cosas, solo hay que ver la facilidad de hacer un contrato de telefonía (basta con una llamada o una conexión a internet) y me da pena pensar que hay gente que tiene escrupulos para robar un carnet a una persona para hacer este tipo de cosas. Así que hasta que salga un carnet que de verdad nos pueda autentificar con un mínimo de garantía, esto es, como mínimo un certificado y además una clave personal, es mejor tener a buen recaudo el documento de indentidad.

2.16.2006

Cultura informática

En el trato diario con las personas normalmente encuentras que una gran parte de las personas usan un PC, ya sea en el trabajo, en casa, para chatear, para programar o para lo que les de la real gana. Por ello es muy común que haya conversaciones entre esas personas acerca de sus experiencias, mejor dicho, calvarios con sus máquinas y con su software. Entre esa gente se pueden distinguir dos tipos de personas, los que lo usan, no tienen casi idea y lo dicen y los que lo usan, no tienen casi ni idea y tratan de que parezca que sí la tienen.

Desde la perpectiva de una persona que tiene ciertos conocimientos del tema, esto es, saber electrónica, sabes que existe una parte de la electrónica llamda electrónica digital, sabes cómo se fabrican los circuitos integrados, sabes que gracias a esa electrónica es posible crear puestas lógicas y con estas dispositivos que ejecuten una serie de instrucciones, sabes cual es la arquitectura que ejecutan esas instrucciones, cómo lo hacen y como se relacionan con otros dispositivos que también ejecutan instrucciones y, aquí empieza la fiesta, sabes como se comunica el software y el hardware, qué es un SO, dónde está colocado en la "cadena alimentaria" de un sistema informático, que es un driver, como está programado un software, que se usa, como se comunica con el SO y con los dispositivos, cuales son los problemas del software, como se comunican los softwares de diferentes máquinas, que problemas hay en esas comunicaciones... podría estar días, quizá años explicando TODO lo que he estudiado en la carrera que se puede aplicar en un sistema informático.

Cuando estás en una conversación sobre informática con personas de tipo 2, esto es, se creen que saben pero no saben, te tienes que callar por dos razones: no es bueno para las relaciones personales y, lo peor, no te va a entender y se va a quedar exactamente igual. Confirmado, lo he intentado por activa y por pasiva, pero nadie se entera de por qué un driver mal programado puede hacer que todo un SO se vaya al traste o que cuando en windows aparece un error de "no enviar" (en otros sistemas segment fault) yo no puedo hacer nada por muy ingeniero que sea y tampoco vas a explicarles que si te dejaran el código fuente podrías intentarlo, sería perder el tiempo. Eso sí, te echan en cara que no tienes ni puta idea y se quedan tan contentos ! XD es como decirle a un arquitecto, oye tío, en este pedazo de rescacielos que te has diseñado, hay una humedad en el piso 3, no tienes ni puta idea.

Algunas de las joyitas que he tenido que oir ya las he comentado, las típicas de "arréglame este fallo, me pone algo de no enviar", pero hay algunas que claman al cielo. Por ejemplo, la gente se cree que por tener más disco duro y más memoria el PC va a ir mejor... disculpa amigo, para qué quieres tener una biblioteca de 3 km^2 si tienes 5 libros? qué es más rápido, buscar en tu estantería de 5 libros o en una biblioteca con 10000 ?. Otra es la de "tú que eres ingeniero te puedes venir a mi casa y tunearme el PC". Claro, no te preocupes, me bajo el código fuente de windows y te optimizo lo que necesites.

Una variante que me hace mucha gracia es la de la aletoriedad. Es muy habitual escuchar lo de "la informática es así", esto es, hay un componente aleatorio en la ejecución de los programas. Podrías explicarles que un PC es una máquina que hace lo que tú le dices y que para las mismas entradas obtienes las mismas salidas. El típico caso de un hardware que no tiene drivers y el personaje en cuestión reinstala windows para que le instale el dispositivo, encima te dicen que windows es una mierda por eso .

El especimen que más gracia me hace es el especialista en internet, ese tío que tiene el emule 24horas y que por eso se cree especialista en redes. Saben de routers, ADSL, ethernet, wireless, etc, etc hasta que un día le preguntas... "oye, tu router soporta NAT?". Acabas de herirle en lo más profundo de su ser, para él los ingenieros no son más que gente que tiene un título pero que no tiene ni puta idea y ese pensamiento permanecerá toda su vida (la visión de los ingenieros por parte de los que no lo son es tema para otro post). Otra muy buena de este mismo individuo es la de: "he instalado un programa que hace que internet me vaya el doble de rápido"... claro, ya entiendo, no me digas más. La última fue uno que me dijo que era algo menos que pringao porque no era capaz de hacer funcionar el típico cliente de P2P en su PC, lógicamente no le expliqué que el informático de la empresa, como es lógico, había chapado los puertos usados por esa aplicación para comunicarse con otra que no es nada menos que el servidor y con muchas otras, que son los demás usuarios. Me levanté y me fui pidiendole perdón, eso sí no se le olvidó recordarme que era ingeniero y que no tenía ni puta idea.

Lo que es el colmo es lo de las tarjetas gráficas, la gente siempre se flipa con sus tarjetones, en mi trabajo sobretodo ya que están trabajando con video continuamente. Creen que cuanto más cueste una tarjeta gráfica mejor irá su programa de edición de video. No intentes explicarles que la tarjeta gráfica no hace uso ni de un 1% (espero que XGL cambie eso) de su capacidad y que con una de 300€ menos le hubiera ido igual de bien, no intentes explicarles que la tarjeta lo que hace bien es renderizar mallas, trabajar con texturas, hacer cálculos con vértices y pixels (los famosos pixels y vertex shaders), pero que su SONY Vegas no aprovecha para nada todo eso, por desgracia.

Existen cientos de cosas que escuchas cada día y que te _tienes que callar_ al escucharlas, pero que son verdaderas aberraciones. Me pongo yo acaso a hablar de arquitectura, de pintura, de literatura ? acaso habla la gente de cosas que no tiene ni idea como si fuera el creador? es obvio que yo ni nadie hablaría del cálculo de una viga, de la tensión que soporta un cable, de la potencia que hay que emitir para que en el receptor tengas una calidad aceptable, eso sí, de informática, lo que quieras.

Felicidades papá

Hoy mi padre cumpliría 53 tacos, una edad muy jóven para los tiempos que corren a y en la que te queda toda la vida por delante, te queda todo lo sembrado por recoger, pero a veces, por lances de la vida, quedas el campo sembrado y te vas para el otro barrio sin pena ni gloria, sin saberlo, sin poder haber preparado la maleta y sin haberte despedido.

Es muy cierto que la muerte de un familiar muy cercano nunca se llega a asumir y vives pensando que se murió, pero que todavía está. Es difícil no pensar en qué pensaría de lo que estoy haciendo, qué consejos me daría, en qué andaría metido, etc, etc, me pesa no haber pasado más tiempo con él cuando aún vivía y cuando pasan este tipo de cosas te das cuenta de lo importante de las personas.

Desde el día que se fue no he dejado de recordale ni un solo día y no cabe duda que hoy lo hago especialmente, felicidades padre.

2.13.2006

demoscene: unik

Unik es un grupo de la demoscene que solo conocía por una canción, de la intro pluxity, incluída dentro de un recopilatorio de demovibes volumen 4. Ayer un colega.net me comentó que le gustaba la música de unas de sus intros, lovemachine.

Me picó la curiosidad y me puse a ver todas sus intros, las cuales tienen un toque muy similar entre ellas, siempre figuras abstractas, cubos, diferentes viewports, palabras por ahí, muchos cubos :)... personalmente me han gustado, tienen un toque original además de cambinar unos gráficos simples pero atractivos, con una buena música.

Un detalle importante es que en algunas de sus prods dejan el código fuente. Por ejemplo en la última 4kb, en la que nos vienena mostrar unos efectos con física sobre cubos y otros cuerpos tales como una tela, viene incluído el código fuente. Está bien ver cómo se programa una 4kb, aunque el código que creo que se puede destacar es la de anruf, no solo por el hecho de que es raro ver el código de una 64kb, si no por la claridad y orden del código. Se pueden ver algunas cosas curiosas como por ejemplo la carga de texturas con 1bit por pixel (técnica usada en heaven7 y que contaba picard, el coder, en el making of ahora desaparecido), el uso de minifmod, o la carga de objetos básicos desde una ristra de bytes.

Una de las escenas que más me ha gustado ha sido la de la siguiente foto de kardiogramm:

2.12.2006

Háztelo tú mismo: Máquinas recreativas

A través de un comentario en un post de vidaextra encuentro una web llamada marcianitos.org que trata sobre recreativas y emuladores de las mismas. No sé como llego a una página en la que un pavo explica cómo consigue una máquina recreativa real, la transforma gracias a un PC y la maquea. El artículo no tiene desperdicio, fotos de todo el proceso, etc. No es eso lo mejor, el caso es que hay toda una lista de personas que han enviado su proceso de restauración de su recreativa. Si hacerlo tú mismo tb hay sección de tutoriales.

2.10.2006

Estado del PFC

Mis pequeños (la PDA adoptada):


Mi hija de adopción:



La lógica de la aplicación está terminada, falta corregir bugs, mejorar el aspecto gráfico (alguna recomendación para hacer iconos?) y hacer la memoria :).

jugando gratis

Además de visitar todos los días linuxjuegos y happypenguin donde normalmente suelen salir a diario jueguecillos (y no tan illos) gratuítos ahora también visito jugandogratis que es un weblog que periodicamente saca pequeños análisis de juegos gratuítos. El que lleva el timón es a su vez el creador de rounded bugs ex (auto-análisis), juego que presentaron al art futura del año pasado y que es un shooter a lo bestia. LLevan ya unos cuantos análisis, solo les queda cambiar el nombre de "qué nick más chulo tengo en el MSN" a uno que aporte algo más de seriedad.

A jugar!

2.09.2006

blogs a la saca

A medida que vas visitando páginas encuentras blogs de gente que es enlazada o que comenta las noticias. Normalmente suelo encontrarlas en páginas de gran afluencia, como por ejemplo vidaextra, kedume, extra life!, etc y las voy metiendo a la saca, esto es, el gestor RSS de thunderbird que está bien, pero que le faltan cosas aún.

Los últimos que he encontrado y que me han gustado han sido:

inmensia: Se trata de una página + blog que trata sobre programación de videojuegos. En los post que he estado leyendo comenta sus avances en juegos creados en javascrips que intercala con otro tipo de noticias de videojuegos.
kartones blog: otro más que habla de videojuegos y algo de programación, tiene muy buena pinta.

bblover: Muy interesante el contenido de este blog sobrevideojuegos, muchas imágenes y post muy curiosos. Lo he conocido gracias a clockwork orange.

Espero ir poniendo algún post de estos cada cierto tiempo.

2.08.2006

javascript



Y un par de cosas bien hechas en javascript:

- triglav
- lemmings


vías: Daily WTF, vidaextra y Blog de Jare

2.07.2006

Usa subversion por favor

Cuando llevas ya algún tiempo manejando código te das cuenta del caos que puede llegar a ser el no tener un control muy métodico del mismo e incluso teniendolo pueden surgir problemas que hagan que un trabajo de días se vaya a la mierda o que gastes horas en saber "como pichas va esto". En mi caso me ha pasado muchísimas veces que tengo versiones de clases diferentes en cada PC y cada una de ellas con avances que la otra no tiene y que finalmente se pierden o me toca reprogramar.

No me había planteado el usar un sistema para gestionar mi código hasta que un día colson me comentó que él usaba subversion para mantener el código de su juego (the cursed wheel). Las ventajas que ofrecía eran muchísimas:

- unicidad de código: Solo hay una versión del código y esa está en el reprositorio, con esto evitas problemas de diferentes versiones en diferentes lugares, incluso dentro de la misma máquina. Por ejemplo, imaginemos que tenemos una librería para dibujar mallas que usamos en varios proyectos, sin usar un sistema gestor de código los cambios que hagamos, por ejemplo, en las cabeceras tendremos que copiarlo al resto de versiones. Personalmente me gusta tener una copia de cada clase dentro de la carpeta de proyecto y con subversion soluciono el problema de forma muy simple.

- salvavidas (I) : Estás tranquilamente programando una aplicación, haces unos cambios, compilas y pruebas con tan mala suerte que aparece un bug que antes no había. No problem, con subversion puedes ver los cambios de cada uno de los ficheros, comparas la versión actual con la última y así sabrás donde has podido meter la gamba. Este use es _extremandamente_ útil.

- salvavidas (y II): Estás tranquilamente programando con win2000 y vc++6.0 y se va la luz de tu casa. Te acuerdas de la madre de iberdrola y a continuación reinicias. Vuelves a arrancar vc++6.0 y te encuentras con que algunos .cpp están corruptos... GRRR... eso era antes, ahora rescatas última versión de ls archivos corruptos y a correr. Lo que sería ya rozar la perfección es tener el servidor en una máquina diferente por si las moscas, pero en caso contrario hacer backups es una tarea muy simple y que puede salvar muchas vidas. Luego pondré un pequeño script.

- más que código: subversion permite mantener versiones de cualquier fichero, ya sea texto o binario con lo cual todos los datos que maneje el programa podrán estar bajo un control de versión. En mi caso tengo bajo control los ficheros de proyecto de VC++, los ficheros de blender que uso para alguna que otra cosa, el propio código, la memoria del proyecto, etc.

- orden: aunque seas muy metódico a la hora de llevar un orden es muy posible que algo se descoloque o no vaya como debe, subversión te obliga, mejor dicho, te encauza para que tengas todo ordenao y perfectamente disponible sin realmente demasiado esfuerzo.

Dicho esto, procedo a dar los pasos para instalar y configurar un repositorio:

- bajarse subversion e instalarlo
- bajarse tortoiseSVN e instalarlo
- crear un directorio para el repositorio, p.ej c:\repos
- arrancar el server de subversion: svnserve -d -r c:\repos (aconsejable arrancarlo al inicio o tener un .bat)
- dentro de c:\repos crear una carpeta para cada código, p.ej c:\repos\proyecto1- pinchar en el segundo boton en esa carpeta: TortoiseSVN->create repository here (con esto le dices que ahí habrá un repositorio)
- importar los datos que contendrá ese repositorio, código, binarios, etc: Ir a la carpeta de proyecto1 originaria (donde tienes el código) y con el segundo botón TortoiseSVN->import... en la siguiente pantalla indicar la ruta del repositorio svn://localhost/proyecto1. Se importa todo y.... zasca, habrá problemas con el usuario. Ningún problema, dentro de c:\repos\proyecto1\conf hay dos archivos. Con passwd añades los siguiente:
"""
[users]
javi = mipass
"""
y en svnserve.conf pones:
"""
[general]
password-db = passwd
auth-access = write
"""

Ahora ya se puede entrar con el usuario y password que se han especificado en el fichero passwd.

- Ahora ya se puede "bajar" ese código a cualquier carpeta: p.ej en c:\proyectos_nuevos\proy1 pinchando en el segundo botón en SVNcheckout podrás bajar todo el código de cualquier repositorio.
- Cuando se modifique el código y quieres subir los cambios basta con pinchas en el segundo botón sobre c:\proyectos_nuevos\proy1 y pinchas en SVN commit.


Puede parecer un engorro al comienzo, pero es muy cómodo, útil y que sirve para cualquier cosa, por ejemplo para todos los ficheros se suelen tener de clase que siempre terminan perdidos, para la memoria del PFC, para el código de tus scripts de administración, etc, etc.

Por último un .bat que uso para hacer backups de todo mi proyecto fin de carrera que puede servir como ejemplo:

"""
svnadmin dump c:\repos\pfc_memoria --incremental > bak/pfc_memoria_bak
svnadmin dump c:\repos\pfc_main --incremental > bak/pfc_main_bak
svnadmin dump c:\repos\pfc_tools --incremental > bak/pfc_tools_bak
"""

2.06.2006

Cálculo de ambient occlusion

Hace unos días link-aba a un artículo sobre ambient occlusion que explicaba de forma muy simple una forma de calcularlo llamada spherical armonics, procedimiento que también rgba usa en 195/95/256 del cual puse un post hace dos días (o tres).

Leyendo con más detenimiento ls artículos de iq leo (párrafos 5 y 6) la forma que tienen de calcularlo en la intro. En resumidas cuentas colocan la cámara (con un fov de 170º)en el vértice considerado mirando en dirección al vector normal y renderizan la escena, bueno, me parece haber leído que cada objeto tiene información de los objetos que debe renderizar para el cálculo del AO. El truco del asunto está en haber borrado el bit-buffer de blanco y dibujar todos los polígonos de negro, de forma que el resultado de esa escena es renderizado a una textura que es "descargada" en memoria de sistema y sobre la que se hace un cáculo de los puntos negros que hay. Como explica iq, la escena es renderizada en un viewport de 32x32 con el objetivo de minimizar el tiempo que se tarda en transferir la textura de la memoria de la gráfica a la de sistema. Una técnica la mar de simple, pero muy inteligente. La calidad del resultado salta a la vista.

Y ya que estamos con GLSL, gracias a pingüino, manual de referencia GLSL online referencia del API de GLSL y un tutorial desde 0.

EDIT: mientras cenaba me he dado cuenta que en este caso GLSL no es necesario para absolutamente nada, donde de verdad interesa es a la hora de renderizar la escena con AO.

2.05.2006

tetris DS

Veo en vidaextra las primeras imágenes del tetris para nintendo DS lo cual no me sorprende en absoluto, es obvio que ninteno ni iba a dejar pasar un juego tan simple y tan divertido como tetris sin sacarle partido. Cada vez que veo un nuevo juego de DS tengo más claro que nintendo tiene una política muy diferente a las llevadas por sony y microsoft, nintendo innova con sus consolas, empezando por la DS con su pantalla táctil, sus dos pantallas, la posibilidad de jugar por wifi, etc, cosas que no serían muy significativas si no fuera por algunos de los juegos que presentan.

La posibilidad de jugar por wifi creo que es una de las mejores ideas de nintendo y que hace plantearme la compra de su consola (casi exclusivamente por el mario kart) y en el caso del tetris mucho más. Hace ya algún tiempo surgió tetriNET, un cliente de tetris multijugador cuyo protocolo va por encima del protocolo del IRC y que hacía que no fuera necesaria la existencia de servidores dedicados al juego, basta con que hubiera un servidor de IRC vivo. Yo llegué a jugar algunas veces y era muy divertido a pesar de la simplicidad en gran parte gracias a que podías competir con hasta 6 personas y por eso espero que el tetris DS esté como mínimo a la misma altura. Incluso en el enlace que he puesto de wikipedia hacen referencia a la similitud de ambos juegos.



Se puede criticar a nintendo por usar refritos de sus antiguos juegos, pero creo que se trata de todo lo contratio, está cogiendo lo más divertido de cada juego y lo está explotando al máximo, prueba de ello es el mario kart con el que muchos de nosotros hemos pasado horas jugando a multiplayer y ahora con un clon del tetrinet del cual bien demostrada queda su jugabilidad y diversión viendo la comunidad que hay detrás.

2.04.2006

making of 195/95/256

Visitando la página personal de iq, componente de rgba he encontrado el making of de 195/95/256. Para el que no tenga ni pajolera idea de que estoy hablando, 195/95/256 es una intro fotorrealista presentada a la euskal del año pasado que trata de ser una versión en 64kb de una demo que originalmente ocupaba 19 Mb.

En el making of cuenta como se creó la geometría (generar una gemoetría tan detallada como la que genera no es fácil), la arquitectura del sistema, iluminación e incluso las optimizaciones usadas para la compilación. Hay algunos enlaces que aún no están completos, espero que iq los complete poco a poco.

Además del makingof de 195/95/256, también hay imágenes de la creación de paradise (video), otra intro de rgba bastante impresionante en la que en 64kb mete bosques, montañas icebergs, rinocerontes y animalillos varios. Para ilustrar una imágen de antes y depués del rinoceronte.




Todos los textos están llenos de imágenes del desarrollo que a los que estén interesandos en el tema les van a sorprender seguro.

Por último solo recomendar una vez más, si tienes una tarjeta gráfica decente, que te bajes las dos intros, y que si no la tienes, saques provecho a tu conexión de banda ancha y te bajes la versión en video de la página de descargas de la web personal de iq.

2.01.2006

Videojuegos en Cuatro - O* -

Leo en meneame que cuatro, el canal que tv que suplantó a canal+, ha publicado un blog sobre videojuegos titulado plástico.tv. Se veían venir dos cosas referentes a este tema, primero: este tipo de ocio está muy presente en la sociedad y ya estaban tardando en meter en parrilla programas de videojuegos. Y segundo y más importante: las televisiones creo que se están empezando a dar cuenta de que con su poder es muy fácil obtener visitas a una web y tener ingresos por publidad, ya sea adsense u otro servicio.

En cuatro actualmente ya se habla de videojuegos, aunque no es la única, muchas televisiones tienen pequeños espacios relacionados con videojuegos. Yo tengo constancia de varios algunos programas exclusivos de videojuegos en la red, por ejemplo gameover que conocí a través de lost levels, que es un programa de una radio catalana que publica sus programas en internet. En donde yo trabajo hay un programa llamado crazypixels, que se emite a las 10:30 de los sábados y que se puede ver en todo castilla y león a través de los televisores, en las casas que tengan ono en el canal TVCYL (imagino que a nivel regional) o a través de internet .

Por cierto, para los nostálgicos, aquellos que recordamos al monstruo de la última pantalla, a pin y pon, a guillém caballé, a carlos ulloa (llegó a ser art manager en psygnosis en la época dorada), a manuel... game40 y si eres mucho más nostálgico: game4ever que es una recopliación de todo lo que aún queda de aquel maravilloso programa que marcó a una generación (sobrada), todo ello gracias a epidemia y otra gente.

EDIT: leo en un comentario de meneame lo siguiente:
"""
Veo en la nota de prensa original, que plastico.tv, no es una producción de Canal 4, sino una web independiente de los productores de uno de sus programas.
"""
Con lo cual se estrella toda mi teoría :/

¿Quién dijo que la NES estaba muerta?

Leo en anaitgames que un pavo está creando una versión de GTA para NES. Cuando lees algo así crees que es el típico fake, pero si vas a la página que el chaval ha montado para el juego, grandtheftendo, ves que no solo está programando el juego, si no que también tiene creadas unas herramientas para NES interesantísimas.

Ha creado neshla (High Level 6502/NES Assembler) que viene a ser un conjunto de macros y ayudas para evitar la tediosa tarea de programar en asm del 6502 (muy curiosa la lectura acerca de este micro). En la página de herramientas comenta detalladamente las capacidades del lenguaje.

Pero no queda ahí la cosa, el pavo se ha creado, además del lenguaje antes citado, otras heramientas para testear las colisiones, creación de las carreteras, conversor de bitmaps al formato de NES y sus compresores...

Destaco el kit de desarrollo usado (alguien recuerda Net Yaroze ?):



Todo lo que cuenta se puede encontrar en su pequeño log de desarrollo:

- diseño de la ciudad, ojo al mecanismo que usa para definir la ciudad en unas hojas cuadriculadas, eso si que es tilear XD.
-Las herramientas usadas, 1 y 2
- unas pantallitas



Solo espero que no sea mentira :/