Habi Hablóg
Declaro:
XML válidoXHTML válido800x600 +
RSS válidoCSS válidoNavegador digno
  Blog   Archivo   Contacto   Administración  

Acerca de

Matemático, informático, aficionado a la electrónica, friki... y otras cosas que no vienen a cuento ni pasan los filtros de palabras.

¿Queríais un blog? Ahí va.

Red antisocial

¡Me van a volver loca! 2.0
La Fragata Portuguesa

Z
¡Me van a volver loca!

Últimos posts

El expediente X que nadie pidió
eNigma
La cuadratura del píxel
Portando desde Spectrum
Inexorable

Últimos comentarios

Habi
NoSupoResolverLaFuncion
Edu
Habi
EnriqueGG

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Habi dice: Un exe renombrado a .mp3 sonaría mejor!

6 6 6 6

Habi - 26/09/2006 19:41:00 - Paranoias

Nuestra historia comienza hace algún tiempo, cuando a tres amigos que se hablaban bastante por Internet pero poco en persona les asaltó una paranoia: podría morir alguno, y podrían pasar días, semanas, e incluso meses sin que ninguno de los otros se enterase. Sencillamente pensarían que no se conectaba por algo, o que no coincidían.

Así que uno de ellos, el más friki informáticamente hablando y al que llamaremos X0, decidió crear una pequeña aplicación on-line con la que se permitiese dar fe de vida. Era una página Web dentro de su propio blog en la que se podía dar fe mediante un código propio a cada persona, y a la vez se veía cuándo cada uno de ellos dio fe por última vez y cuánto tiempo hacía que lo hizo.

Y los tres vieron que esto era bueno. Así pasaron las mañanas, tardes y noches de los primeros días.

Pero con el tiempo, se fueron descuidando. Incluso la paranoica X1, que en un principio daba fe 57 veces por hora como media, se empezó a descuidar.

Ocurrió que a los 6 días, 6 horas, 6 minutos y 6 segundos de no dar fe por parte de X0 fue publicado un post extraño en su blog. Quien primero lo leyó fue la asustadiza X1, la cual, alarmada, fue a comprobar la página de fe de vida. 
Y allí tenía X0 en su entrada 6 días, 6 horas, 6 minutos y 6 segundos; pulsó el botón de recargar varias veces, porque le dio muy mal fario, pero la misma entrada seguía ahí una y otra vez. El contador de X0 se había detenido.

Aunque estaba asustada, no hizo nada para comprobar si a X0 le pasó algo. Esperó durante interminables minutos hasta que por fin se conectó X2, y le contó lo sucedido. "No puede ser nada, si ayer hablamos con él por el Messenger", dijo X2. Dos días después, tras no ver durante todo ese tiempo a X0 por Internet, X1 y X2 decidieron ponerse en contacto con él, pero su móvil estaba apagado y nadie cogía el teléfono de su casa. Así que decidieron ir los dos personalmente a su casa el fin de semana, y quedaron el sábado. Pero con todo este lío, el trabajo y otras cosas, X2 se olvidó de actualizar su fe de vida durante 6 días, 6 horas, 6 minutos y 6 segundos.

El sábado, X1 espero hora y media antes de darse cuenta de que X2 no iba a ir; y también tenía apagado su móvil. A la vuelta a su casa, se dio cuenta de que el contador de X2 también se había parado en 6 días, 6 horas, 6 minutos y 6 segundos. "No puedo ir a la policía ni a nadie, no me creerían. Y si han desaparecido, yo sería la sospechosa" pensó X1 cargada de razón. Finalmente se armó de valor y fue a las casas de sus amigos.

Allí no había ni rastro. Los buzones tenían otros nombres, los vecinos no los conocían, y en sus casas no vivía nadie desde hacía mucho tiempo. Como si nunca hubiesen existido. Tampoco estaban en las listas de personas desaparecidas, guías de teléfonos o bases de datos a las que tenía acceso.

Por un lado, la mente de X1 deseaba dejar pasar 6 días, 6 horas, 6 minutos y 6 segundos sin dar fe para ver que sucedía, pero esa idea le aterraba por otro lado. Así que decidió dar fe tan a menudo como pudiese. Sí, eso haría, y no le pasaría nada.

Pero la siguiente vez que fue a darle al botón, algo pasó: no se actualizaba la página. Tampoco decía que el código personal estuviese mal puesto o que hubiese ocurrido un error. Sencillamente, el tiempo corría, inexorablemente. Y cada vez le quedaba menos tiempo. Pulsó otra vez, y otra, y otra... en distintos momentos del día, en distintos días... pero nada.

Y así, el reloj de la cuenta llegó a 6 días, 6 horas, 6 minutos y 6 segundos.

3


-

Habi - 21/09/2006 23:51:00 - Yuyus

Blanco. Vacío. Nada.

Un circulo de aire rancio y putrefacción.

Así. Lo merecen. Sea pues mi voluntad. 13.

Y la muerte vino. "¡No les mates todavía!", le dije. Me miró, entendí su oscuridad.

Que agonicen, mi niña. Muerte para todos.

Incluso para mí.

0


Tas podrío

Habi - 20/09/2006 17:57:00 - Chorradas

Blog.Worm

0


Pretérito

Habi - 19/09/2006 13:43:00 - Yuyus

Invoqué a las 721 de los 80, y todas ellas vinieron a mí; y sus voces ajadas me devolvieron a mi infancia.

Libro de escolaridad. Todo encaja.

Imágenes yuxtapuestas de estados mentales en olvido.

Sólo P pudo devolverme al presente, con sus consejos sabios y necios a partes iguales (y por ello, efectivos).

Ahora se lo que he perdido y lo que he ganado.

0


Cambios, cambios, cambios...

Habi - 17/09/2006 23:40:00 - Tecnoesoterismo

...Y otra versión del blog.

La mayor parte de los cambios son en la interfaz de administración, y en la BBDD. Aunque algunos se ven por fuera, como la desaparición del "Acerca de", renombrado de cosas, sección nueva en obras, etc.

En honor al editor de texto para descargas:

0


¡Lo veo! ¡Es verde!

Habi - 16/09/2006 0:57:00 - Tecnoesoterismo

El post prometido (a mi mismo, no creo que le interese a nadie por su ininteligibilidad).

Meditando sobre la etapa de preprocesado de un compilador, tuve una revelación. ¿Y si el lenguaje del preprocesador fuese EL MISMO que el lenguaje preprocesado en si mismo? Sería como el caso de tener JScript en ASP generando JScript para HTML.

Pero seguía estando el tema del mezclado de ambos en el mismo fichero… y se encendió otra bombillita: hace tiempo pensé en poner las directivas personalizadas para cada función en el lenguaje, a modo de “etiquetas”. Podemos poner una para la ejecución en tiempo de compilado.

Juntando eso con la notación funcional – matemática, con la gramática extendida para tener operadores definibles (y su analizador híbrido), con el lenguaje que hice funcional imitando a imperativo y cuatro cosas más, la revelación ha sido completa.

Hasta he pensado el tema de interfaz con (linkado contra) otros lenguajes, y su extensión de clases (pues tiene tipos simples correspondientes al hardware que subyace), con herencia simple e interfaces, y la sintaxis de todo.

Todo encaja. Tengo el lenguaje que buscaba. Que pena tener tan poco tiempo.

0


No me comes ná

Habi - 14/09/2006 16:12:00 - Paranoias

Modelos de restauración de cara al usuario.

Empezaré definiendo el modelo tradicional en todos sus pasos, y lo usaré como referencia; sus pasos son:

1) Sentarse.
2) Pedir la comida.
3) Esperar que la traigan.
4) Comer.
5) Pagar por la comida (y/o servicio si procede).

También definiré la relación "ser equivalente" entre dos modelos A y B como tener los pasos en el mismo orden (aunque puedan faltar algunos o tener alguno intermedio). Lo importante es que se conserve el orden, es decir, los predecesores de un paso en un modelo no pueden ser sucesores en el otro. Contamos además con las restricciónes semánticas de que 2 siempre irá delante de 3 y 4, y 3 lo hará de 4 (si es que existen). Tampoco pueden faltar los pasos 2, 4, ni el 5 (desgraciadamente).

Este modelo tradicional lo cumple, digamos, Casa Pepe.

Hay sutiles variaciones de esto, como un bar de sushi. En él, realmente no hace falta pedir la comida, sino seleccionarla de entre la que va pasando (pero sigue siendo el paso 2); además se ahorra el cliente el paso 3.

Ahora toca el modelo Rodilla. Aquí el orden es 2, 3, 5, 1 y 4. No pagas al final, sino cuando te dan tu comida. Sigue siendo lógico.

Este modelo Rodilla lo cumple, digamos, la Pastelería Miguelita (pensabais que diría Rodilla, eeeehh xD), aunque se salte el paso 1.

Una variación de esto es el autoservicio. Se salta el paso 3 porque ya está hecha, y el 2 es cogerla (o escogerla) uno mismo, pero el orden es el mismo.

Veamos el modelo de buffet libre. Pagas una tarifa plana por entrar, y una vez dentro te sirves lo que quieras y cuanto quieras. Después del paso 5, en este modelo pasa como el bar de sushi; el paso 2 se reduce a seleccionarla y el 3 desaparece. Después vendría el 1 y el 4. Tiene la ventaja de que 2 - 1 - 4 se pueden repetir. Pagas realmente por entrar, no por la comida, sigue siendo lógico.

Este modelo buffet libre lo cumple, digamos, el Restaurante (de carretera, y puticlub de 23:00 a 07:00) Manoli.

El último modelo a considerar sería el de la hamburguesería. El orden aquí es 2, 5, 3, 1 (llevando la comida uno mismo, como el buffet libre), 4. Pagas por algo que tienes que esperar a que te hagan, y mientras esperas de pie por segunda vez.

Este modelo hamburguesería lo cumple, digamos, el Kentucky Fried Chicken.

De cara al usuario, lo más cómodo es que el paso 1 sea cuanto antes, y si es posible que no haya paso 3.

Por lo tanto, el peor parado es el Kentucky; ¿Quién daría mejor servicio, Casa Pepe, Restaurante (y puticlub a tiempo parcial) Manoli o la Pastelería Miguelita?


¿A qué viene este post? Ni idea. Iba hacer uno sobre gramática de lenguajes con mi última paranoia, pero me ha salido esto del alma y tenía que decirlo.

3


Sympathy for the devil

Habi - 11/09/2006 16:26:00 - Paranoias

Increíble.

Resulta que, según esto, soy un satanista o_O.

http://www.personal.able.es/cm.perez/satan.htm

0


Ábrete sésamo

Habi - 10/09/2006 20:40:00 - Tecnoesoterismo

A ver, algo que me han pedido. Vamos a ver como piratear un programa. En este caso se trata del Cube Media Player, v2.05.0117.

Echando un vistazo por encima con un editor hexa (uso UltraEdit32, que vale para todo) vemos que es un exe sin empaquetar ni proteger. Perfecto, derechito al IDA Pro.

Se tira su ratito pensando y lo analiza bien. Veamos las cadenas... en 004725E8 hay una cadena "Software\CubeMediaPlayer", típica de acceso a registro. Pinchamos, le damos a la X (referencias cruzadas) y vemos que se le llama desde tres procedimientos, igual que las cadenas "User Name" y "Register Code" que están por encima. Sospechoso.

El primer procedimiento se dedica a leer del registro y guardarlo en un buffer. No es gran cosa. El último hace lo contrario, lo devuelve al registro junto con las preferencias del usuario. Tampoco gran cosa. Ahí identificamos el nombre y la clave (en 0047C760 y 0195FE30 respectivamente).

El del medio (de los chichos) es distinto. Hace un montón de cuentas y al final entra en un bucle de comprobaciones, y sale o bien con un 0 o con un 1 (caso bueno) en EAX. *MUY SOSPECHOSO*. Para hacer la prueba, relleno desde 0040CD9E hasta 0040CDA5 con 0x90 (NOPs). Bingo, está registrado.

Hmmmm quizás haya sido un mal ejemplo, ha sido muy sencillo. :/

Nota: Todo son direcciones de memoria, no offsets de fichero (obviamente). Lo digo porque alguien es muy brutito... cheeky

0


Pascual

Habi - 08/09/2006 19:19:00 - Tecnoesoterismo

Llevo mucho tiempo sin visitas, como al principio... mola escribir cosas así, porque puedes escribir de lo que quieras sin pensar en nadie.

Centrémonos. Todavía recuerdo cuando aprendí Pascal en un PCW. Es un lenguaje que siempre me gustó. Sistema de tipos estricto, sintaxis limpia.

Así pues, hoy en día mi lenguaje por definición es el Delphi, que es un dialecto muy ampliado de Pascal con clases, esteroides y un IDE digno.

Viendo lo que ha sacado Borland (o DevCo, o como coño vaya a llamarse ahora esa parte de Borland), en TurboExplorer, me ha dado un yuyu. Y ese yuyu me ha hecho bajarme... ¡el Lazarus!.

¿Qué decir? Con la edad me he amariconado. En los tiempos del DOS habría vendido mi alma al diablo por un IDE así, pero teniendo el BDS 2006 sólo he podido pensar tres palabras: juguete, incómodo, feo. Bueno, también he pensado "palaustre" y "prukogi", pero no tienen nada que ver con esto (creo).

Es aparentemente como un Delphi 5 cutrosillo, y con menos controles. Se hechan de menos a los poderosos Indy. Ya lo probaré a fondo y os comentaré, pero de momento he decidido compilar la ventana por defecto, según se abre: ¡6 MB y pico! Aunque después del susto he visto que la mayoría era información de depuración, y pasando un strip se queda en mega y medio (aún así más que el Delphi 2006, con el último VCL). ¿Qué pasó con el SmartLink ese?

Pero soy raro, y hasta un poco masoca, así que voy a dedicarle algún tiempo. Tengo que probar las extensiones al lenguaje del FPC, ese modo OBJFPC de moda.

2


Reglas del 10:
10 últimos   10 después   10 antes   10 primeros