jueves, 26 de febrero de 2009

Y un clásico de rateros

Como de ladrones va el tema...

El ladrón que no sabía leer



P.D.: Estoy un "poquito" ocupado con trabajo, así que mientras seguirá el desfile de noticias interesantes/chorras hasta que tenga un hueco.

miércoles, 25 de febrero de 2009

La medida del Universo

Siguiendo con la series Cosmos, de la que ya hablé, me he encontrado con este video:



Y que aún haya quien cree que somos el centro del Universo...

martes, 24 de febrero de 2009

Ni un pelo de tonto

Si te vas a depilar tienes dos opciones, do it yourself o a "mi que me lo hagan".
Empecemos por el segundo caso: cuidado con las cremas anestésicas.
Vaya tela.
Y ahora el segundo, el hágalo usted mismo, que también puede acabar mal.

Dos historias que acaban mal, las dos empiezan por lo mismo, al menos una de ellas totalmente verídica, pero ¿alguien no se creerá la segunda?
Es que somos así, supongo.

lunes, 23 de febrero de 2009

domingo, 22 de febrero de 2009

Stand By Me

La he visto hace poco en La Hora del Pintxo, antes la había visto en otros sitios:


Playing For Change: Song Around the World | Stand By Me from Concord Music Group on Vimeo.

Un poco al estilo Where the Hell is Matt?.

Playing for change, quien quiera más información, que al parecer tienen hasta una película, aquí.
De momento hay otra canción: Don't Worry.

P.D.: Y otra: One Love.

sábado, 21 de febrero de 2009

Don't Stop Me Now... Mario

Lo he visto en LaGranN y no me he podido resistir:

viernes, 20 de febrero de 2009

Empezando con AJAX de forma sencilla

Iba a escribir un post explicando cómo empezar con AJAX de forma sencilla, como dice el título (más que nada porque he hecho un par de cosas con AJAX últimamente y me han ido bien), pero me encuentro con que todo lo que iba a contar está ya contado aquí: A Simple AJAX Tutorial.
Visto ahí creo que es innecesario, ya está bien explicado.

P.D.: Además, tiene un sospechoso parecido con el código que estoy usando ahora mismo (y puedo asegurar que no lo saqué de ahí). Tenía pensado usar prototype cuando todo estuviese funcionando para poder controlar mejor si metía la pata, así que a lo mejor lo cuento... o acabo poniendo un enlace a un sitio que lo cuenta mejor que yo.

Error en explorer.exe

Recientemente he tenido un problema bastante molesto, de hecho he estado un tiempo sufriéndolo. Lo que ocurría es que de vez en cuando me saltaba un error de explorer sin motivo aparente, ya fuera de la manera habitual o con un cartel bastante majo que decía "Error en explorer Microsoft Visual C++ Runtime Library".
La causa estaba poc clara, porque hay un error bastante típico que ocurre cuando explorer trata de previsualizar un video. Sí que me ocurría al abrir la carpeta de vídeos, o al seleccionar alguno, pero también al abrir "Ejecutar..." con Inicio+R, al cargar un pendrive o HDD externo con carpetas de videos, vamos que hacer cualquier operación con explorer era una lotería.

Entonces se me ocurrió que tal vez el problema fuese solo de los videos, ya que por alguna razón tengo un video en el escritorio*, y explorer intentase cargar una previsualización del contenido del excritorio. Tampoco estoy muy seguro de cómo fucniona explorer con este tema, pero la relación causa-efecto parecía ser esa.
Buscando y buscando me encuentro con que podría ser un problema de codecs, la solución habitual era ir eliminando los codecs uno a uno hasta que no pasase más. Obviamente me pareció una mala solución, yo tengo mis codecs que funcionan a la perfección, y en esto como siempre cuanto menos toques mejor.
Así que con un poco más de búsqueda encontré una solución más razonable, si no recuerdo mal en ForoSpyware, aunque luego la ví en más páginas. Consiste en desactivar la previsualización de películas (sí, ese primer frame que aparece en la ventana del explorador abajo a la izquierda), cosa que realmente no me causaría ningún problema.
Para ello basta con abrir la ventana de "Ejecutar..." y escribir:



Con esto lo tendremos solucionado. Al menos a mi no me ha vuelto a pasar.

P.D.: Odio, con todas mis fuerzas, al DrWatson.

*este:


Es que me hace gracia, qué le vamos a hacer.

miércoles, 18 de febrero de 2009

Cosmos

La serie Cosmos está en youtube.

Para quien no lo sepa fue una gran serie (u obra de divulgación científica, que tal vez sería más correcto) presenteada por Carl Sagan.

No se puede dejar pasar.

martes, 17 de febrero de 2009

Perro... dramático

Tras la ardilla dramática (digo ardilla a pesar de que lo llaman perro de las praderas) llega el perro dramático.



lunes, 16 de febrero de 2009

Contra un gato

Hay días que ves noticias como esta y te viene a la mente la frase de "tanto gilipollas y tan pocas balas":



Por favor ignorad el excelente doblaje.

domingo, 15 de febrero de 2009

Videos de tortas

No se qué tienen estos videos que no puedo dejar de verlos.



Más en los videos de YigalGiat.

Eso sí, de los mejores este:

sábado, 14 de febrero de 2009

Tutorial básico de VIM

Todo lo que siempre quisiste saber:
http://www.preguntaalexperto.net/articles/lontivero-Tutorial-Baacutesico-de-VIM.aspx
Me ha gustado el tutorial, pero noto en su voz tal vez un toque de aburrimiento. A lo mejor era yo. Era yo el que se aburría digo.

En serio, un excelente tutorial si no sabes cómo empezar. Estoy aprendiendo python y, la verdad, VIM resulta bastante útil.

Para python (con pygame, para otro proyecto loco que está en el horizonte) estoy empezando por LosersJuegos, que lo tienen bastante bien montado.

viernes, 13 de febrero de 2009

Pringao - How To

Hoy me he encontrado con esta entrada en el blog STD y no puedo evitar ponerla. Qué recuerdos.

P.D.: Tag Humor, por poner algo.

lunes, 9 de febrero de 2009

Axis of Awesome - 4 Chords Song

Probablemente alguno verá esto y dirá ¡Novedad!, pero es una idea que me encanta, desde aquel Pachelbel Rant es algo que vuelve a aparecer cada cierto tiempo. Axis of Awesome han hecho una recopilación (creo que salió en Yonkis o algún otro sitio junto a la respuesta de... El Koala, sí aquel tipo del Opá, yo via'acé un corrá', que hizo lo mismo pero con grupos del panorama español. No, no voy a buscar el video.), parece que la van actualizando según salen canciones nuevas que usan el mismo patrón. De momento esta es la versión que más me gusta:



P.D.: No se si le pasa a alguien más, yo oigo mejor el sonido de los videos de Youtube cuando están en calidad normal que cuando están en calidad alta. La impresión que me da es que el sonido sale Mono en alta calidad y Stereo en calidad normal. Claro que no pasa con todos los videos, pero por ejemplo con este de Axis of Awesome sí, o al menos me lo parece.


viernes, 6 de febrero de 2009

¡¡MySQL no incia!!

Problema raro donde los haya.

El otro día estuve trabajando normalmente, como cualquier otro, con mi Apache y MySQL funcionando a la perfección. Tras un descanso vuelta al trabajo, y me encuentro con que el servicio MySQL no está iniciado. Bueno, cosas que pasan en "windorl" a veces, supongo (la costumbre de echarle la culpa de todo a Windows está arraigada), así que a iniciar... y que no, que "el archivo no existe". Pero cómo que no existe, hombre, si lo estoy viendo aquí, en esta carpeta. Así que nada, a probar con los .bat de mysql_servicefix, mysql_servicestart, mysql_serviceuninstall, mysql_serviceinstall y finalmente un mysql_start hizo que arrancase. Un poco raro, pensé, pero bueno, no le di mayor importancia porque me corría prisa, de estas veces que pruebas un poco a la desesperada, funciona, y dices "pues de momento así se queda".

Pero no, tras terminar la sesión y parar mysql (mysql_stop, claro), me encuentro con que ya ni .bat ni historias, que no le apetece seguir funcionando. Es posible que me lo cargase yo al intentar arreglarlo con alguno de los archivos anteriormente mencionados, cosas de tocar sin mirar primero, así que antes de enfrentarme a la reinstalación investigué un poco a ver si podía solucionarlo. Finalmente, tras foros y foros visitados, descubrí que el error estaba en el archivo c:\windows\my.ini, ya que en las direcciones de archivos tenía puestas algunas barras al revés (c:\mysql/data, o incluso dobles c:\mysql\/data), con cambiarlas para que windows las entendiese dejó de dar problemas.

Por todas partes recomendaban reinstalar mysql y mira por donde, era una tontería. Claro, una tontería ahora, en el momento me tiré un buen rato hasta ver qué pasaba.

miércoles, 4 de febrero de 2009

Escribir código en Blogger

Con la entrada de ayer me peleé un rato con el blog para que me dejara escribir código y no lo usara en el html.
Encontré dos buenas soluciones :
SimpleCode
El blog de Bosco Curtu

Al final usé la solución de este último, con el añadido del atributo readonly="true".
Una buena solución que usaré bastante.

martes, 3 de febrero de 2009

Autentificación usando PHP+MySQL y Cookies

En mi proyecto número tres, el de crear un juego, me vi en la necesidad de autentificar usuarios. Tras ver diferentes formas, bien usando sesiones, usando HTTP, cookies... me decidí por esta última.
Lo cierto es que me pareció la más interesante de todas, además de que las cookies se tratan de una forma muy sencilla en PHP. Voy a pasar a explicar cómo lo hicimos:

En primer lugar se requiere una página para hacer el login:



Ahí tenemos un formulario que enviará los datos introducidos con el nombre T1 y T2 a la página login.php, que se encargará de realizar las comprobaciones.

Entrando en el código PHP tomamos las variables enviadas de la forma habitual:



Ahora tenemos que comprobar que los datos introducidos coinciden con los almacenados en nustra base de datos, para ello usamos el siguiente código:



La llamada a mysqlconnector.php no es más que traer el código que nos de conexión a la base de datos, almacenado en un archivo con ese nombre y con el siguiente contenido:



En la consulta a la base de datos sustituyo los valores con los que hay que comparar el nombre y la contraseña por los datos enviados desde el formulario. El password no está almacenado directamente, por seguridad se ha guardado un hash del mismo en MD5. Voy a tener que ir pensando en cambiarlo a SHA1, en vista de que MD5 ha sido hackeado.
En cualquier caso de momento funciona y hay maneras sencillas de cambiar un MD5 por un SHA1 con un pequeño cambio en la base de datos y cambiando las llamadas a la función.

Si todo ha salido bien la BD nos devolverá un único resultado. Lo comprobaremos y crearemos las cookies si es necesario:



Tras la comprobación de la existencia de resultados se guarda el tiempo actual y se almacenan dos cookies, una con el nombre de usuario y otra con el tiempo de entrada. Esta segunda con el propósito de garantizar la seguridad de la cuenta del usuario. Después de almacenar las cookies se hace un UPDATE en la tabla de usuarios guardando el tiempo de acceso, que es el mismo que está almacenado en la cookie. De esta manera si alguien intenta acceder a nuestra cuenta debería no sólo crear una cookie con el nombre del usuario, un dato fácil de obtener, si no también tener otra con el tiempo de entrada. Queda claro que es difícil hacer trampa y suplantar a otro usuario. Este valor se puede cambiar por otro que resulte más aleatorio y de igual manera almacenarlo tanto en el equipo del usuario como en la base de datos en el servidor.

A partir de aquí queda el trabajo de implementar el resto de funcionalidades que se quieran ofrecer. Un consejo útil es poner este código en la página principal (y en cualquier otra que se quiera) de nuestra web:



Vemos lo fácil que es usar las cookies en PHP. Esto sirve para comprobar la cookie del nombre y si se ha encontrado dar la posibilidad al usuario de continuar o desconectar, o en caso de que no se encuentre mostrar la página de login de la forma habitual. No he comprobado el valor time_check porque en este caso lo compruebo en una página posterior (principal.php), pero está claro que se podría hacer.

Para desconectar se hace una llamada a una página que se encarga de vaciar las cookies y redirecciona de nuevo a la pantalla principal.
Las cookies las elimino (escrito al inicio de la página):



El redireccionamiento lo hago usando una etiqueta meta:



Aunque no hay que olvidarse de poner un enlace típico de "si no es redireccionado en 3 segundos pulse aquí".

Y así termina la autentificación con cookies. Probablemente no sea la mejor manera, pero está probada y funciona de momento sin problemas.
Como siempre, se aceptan sugerencias.

lunes, 2 de febrero de 2009

Proyecto número 3 - Rising

Y el proyecto número tres es un proyecto personal al que nadie me ha obligado a meterme. Es un método de quitar el stress, de desconectar de las cosas más importantes y dedicarle tiempo a algo que, aunque si me importa que funcione, no lo necesito.

Todo esto nace de mi afición a los videojuegos, desde aquella Mega Drive que me lavó el cerebro durante horas hasta hoy ha pasado mucho tiempo, pero en el primer momento recuerdo que siempre quise hacer mis propios juegos, mejorar los que ya había, trastear, en definitiva, para mejorar la diversión.
El proyecto número tres nace de estas ganas de crear algo divertido, pero con una base pensada. Se require una experiencia determinada para poder plantear correctamente unas bases que enfoquen en cierto modo los resultados que se esperan obtener. Es decir, por haber estado tantas horas delante de una pantalla se adquieren ideas que, con un poco de inspiración, pueden ser la base para crear un juego que realmente sea divertido.

Las ideas las tenía, y la inspiración vino tras un par de partidas de StarMunchkin, un gran juego de cartas. El proyecto se convirtió en un juego de cartas online, con turnos que durarían un día (somos personas ocupadas), y que fuera rápido de jugar, posible trasladarlo a un juego de mesa y accesible desde cualquier lugar.
Así comenzó el proyecto Rising, un nombre provisional pero que cada día veo más complicado quitar. Está en una fase avanzada, mucho PHP, muchas consultas MYSQL, un diseño simple y una reglas bien planteadas. Aún faltan por solucionar un par de problemas, pero tras solventar el tema de la autentificación de identidad y definir el esquema de páginas creo que saldrá adelante, poco a poco, pero saldrá adelante.

Probablemente este sea el proyecto del que más hable por aquí, puesto que los otros son en cierto modo privados, y también porque este es completamente mío, me meto en los berenjenales que quiero y creo que puede estar bien enseñar cómo salgo de ellos.

Por cierto, en cuanto esté terminado ya echaremos alguna partida, que para eso lo hago :-)

domingo, 1 de febrero de 2009

Proyecto número 2

Mi proyecto número dos es parte de mi trabajo. Hace poco creamos una base de datos para una organización y el resultado les gustó, así que ahora quieren que trabajemos en el diseño de una página web incrustada en su propio sitio.
Las características principales de este proyecto son dos: consultas a MySQL con PHP, nada del otro mundo, y crear un diseño fresco e innovador dentro de una página que está creada íntegramente usando tablas.
La solución en principio pasa por usar un IFRAME, y a partir de ahí adaptar el diseño a las dimensiones y estilo de la página, pero de momento está en fase de pruebas. Todo sea que al final tengamos que readaptar la página y usar las "cómodas" filas y columnas.

Es el proyecto menos interesante de los tres. Es cierto que hay que trabajar el diseño y la usabilidad, pero contamos con unas limitaciones que no dejan mucho lugar a la improvisación o a la innovación, ya que nos ponemos.

El tercer y último proyecto en la siguiente entrega.