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

HabiSoft dice: ¿qué clase de programadores tenéis vosotros? 
 
Zarith dice: hernán sería su Dios

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


Chunta chunta

Habi - 06/09/2006 13:32:00 - Yuyus

 

 

Presupuestos listos: 3 de 7.

Y 7 limones y medio limón.

Anubis ampliado.

Todos sabemos que los palaustres quieren estar juntos.

Obras sacadas: 2 de 7.

Tirititú tata-tá tirititú...

Filtro de Spam implementado.

...when love and death embrace.

¡Curro! ¡Curro! ¡Curro!
¡Obra! ¡Obra! ¡Obra! - ¡Obraaaaaaaaa!

Abriré las aguas y todos pasarán.
Cerraré las aguas y los infieles morirán.

(Me gusta este curro frown

(Y sí, conector arreglado)

0


Navegando

Habi - 03/09/2006 22:17:00 - Tecnoesoterismo

Ya no hace falta ir a "Archivo" para mirar los posts antiguos (y encima uno a uno); acabo de ponerle unas opciones de navegación al final de la página para ir de 10 en 10 adelante y atrás, además de ir al principio y fin.

No, no ha sido nada trivial, y menos porque el mandato LIMIT para SQL no es estándar, y ni Access ni SQL Server lo admiten.

Si es que os quejáis de vicio...

0


El hecho es que...

Habi - 02/09/2006 0:29:00 - Chorradas

Pues iba a hacer un post sobre la suerte (buena en este caso), o contando que las vacaciones se me han hecho equitativas aunque me espera un mes de curro tremendo, o cualquier otra cosa; pero me ha dado el yuyu, así que toca un cuento para dormir tranquilito.


Había no muy lejos de aquí espaciotemporalmente hablando un helecho que todas las mañanas, al salir el sol, empezaba a hacer su fotosíntesis diaria, como cualquier otro helecho. En todo momento, drenaba nutrientes y agua de la tierra fresca y húmeda cerca del pequeño salto de agua del bosque, que era donde vivía; de nuevo, como cualquier otro helecho.

Este helecho era verde, como cualquier otro helecho o matemático, y se reproducía por esporas, en efecto como cualquier otro helecho. No tenía nombre, como la mayoría de los helechos, porque nadie se lo puso, algo que nunca pareció importarle.

Pero este helecho era diferente, porque en su figurado corazón anhelaba hacer un crucero por las islas Malvinas, a pesar de ser un helecho ucraniano.

Un buen día, algo pasó cerca de su bosque. Y es que a poca distancia, en Chernóbyl, explotó un reactor nuclear, bañando de ondas gamma, beta y algunas partículas alfa a nuestro helecho.

Y nuestro helecho mutó, y se transformó en persona.

Salió de allí, gano dinero traficando con armas y drogas (¿queda alguien que piense que la gente se hace rica trabajando?), y pudo por fín hacer su crucero. Después de eso se retiró a vivir el resto de sus días a Ibiza, todo el día de juerga con Pocholo.


Ahí tenéis un cuento que sigue la misma dinámica y estilo de los anteriores PERO termina bien, tal y como prometí. Y si me apuras, está basado en hel-hechos reales.

0


Hoy toca

Habi - 30/08/2006 0:33:00 - Chorradas

Hoy toca... ¡sesión de cine! Aunque de lo que realmente trata este artículo es también aplicable a la música, me reservo el derecho de un post futuro.

Y es que me gusta lo malo. Aunque no todo lo malo, por supuesto. Es dificil de explicar, así que intentaré contar mi teoría y poner ejemplos.

Sea f(x) la función que determina cuánto gusta una peli a una persona, donde x es su calidad. En una persona normal tenemos:

Lo cual es lógico. A mayor calidad, más le gusta, y viceversa, de forma lineal (con lo que se pueden aplicar reglas de tres). Sin embargo, en mi caso tenemos:

Lo cual es absurdo (¡lo cual es lógico!). Por un lado, vemos que la función es estrictamente positiva, con lo cual disfruto más en media que cualquier persona normal. Salvo con las de calidad nula, por supuesto, que me aburro.

Cuando nos metemos en las calidades negativas (serie B en adelante) empieza mi disfrute. Ahí encontramos superhéroes casposos como el "Vengador tóxico" (me he visto las 4 partes; la 4ª tiene calidad 0, no la recomiendo), invasiones de cartón-piedra como "El ataque de los tomates asesinos" o "Karate a muerte en Torremolinos", gores como "Comida sangrienta", etc.

A la gente que tengo cerca que no admite cosas de presupuesto tan bajo las intento corromper a base de Torrentes, Condemores (sí, hay más de una de ese finstro de la pradiraaaa) y similares. Y si se dejan, hasta un capítulo de "Pingu".

 

 

END OF LINE

1


Tres eran tres

Habi - 26/08/2006 13:21:00 - Yuyus

 ¿1?

Entonces callaré.

Siguen siendo dos pasos.

 ¡3!

....................

(Eso dicen todos)

 

4


Hmmm

Habi - 24/08/2006 21:18:00 - Tecnoesoterismo

Ayer estuve haciendo limpia entre todos los proyectos de Delphi que tengo empezados. La mitad de ellos eran analizadores sintácticos / semánticos y traductores en general; para Freud tendría algún significado.

¿Cómo debería ser el lenguaje ideal? No hay lenguaje ideal. Cada elección de diseño aporta ventajas e inconvenientes a partes iguales.

Un lenguaje interpretado es ideal para la depuración, para construcciones dinámicas y de alto nivel y para su integración en entornos cualesquiera. Pero al ser tan dinámico es bastante más lento que uno compilado, el cual ya tiene resueltos estáticamente los enlaces y traducción, y ha podido ser optimizado profundamente, amén de no requerir un entorno para integrarse con otros lenguajes.

Con los paradigmas es casi peor, porque aunque los lenguajes y la forma de programar en ellos sea radicalmente distinta, todos sirven para todo. Es un tema de comodidad, depende para lo que se lo vaya a usar.

Y luego está el tema del traductor, mi preferido. Un lenguaje como Pascal o C puede implementarse con LR (SLR, LALR) sin problemas, en el caso del Pascal basta con un LL un poco modificado (al fin y al cabo, el Pascal fue diseñado para compilar en un solo paso, sólo hay que desambiguar el IF).

Sin embargo, si quisiese un lenguaje compilado que pudiese definir sus propios operadores (no sobrecargar los existentes) teniendo en cuenta la asociatividad y precedencia de éstos no nos valdría un LR a secas, por usar tablas estáticas, con lo que no nos valdrían ninguno de los generadores automáticos que hay (mi solución a esto fue usar una técnica híbrida, con un LL modificado para toda la gramática que no fuesen expresiones y precedencia de operadores por funciones de precedencia para éstas, aunque esto es otra historia).

Me está quedando un post muy largo y no he entrado en detalles de ningún tipo. Divago. ¿Cómo debería ser un buen lenguaje para desarrollar aplicaciones eficientes tanto en tiempo de ejecución como de desarrollo? Aunque quizás de lo segundo, puede encargarse un entorno de desarrollo integrado, fijaos si no en el VB.

Por mi parte: compilado, imperativo / funcional, con macro-preprocesador, capacidad de inline, un sistema de tipos fuerte aunque con amoldamientos y una sintaxis clara y ortogonal. Y si tiene objetos (en algún sentido), herencia simple con interfaces añadidos.

1


Salva nos, Deus

Habi - 23/08/2006 23:14:00 - Yuyus

Cayó la oscuridad, se hizo el silencio.

Dolor. Agonía. Muerte. Éxtasis. Sueño. Resurección. Vida.

Como siempre, desde siempre y para siempre.

Sin principio ni fin.

Siempre aquí y ahora, siempre tú y siempre yo.

¿Acaso no es lo mismo?

¿Por qué?

 


 

(No se si será la foto, pero me ha quedado un post muy a la devil)

0


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