Entradas

Mostrando entradas de agosto, 2013

Ampliando objeto C++ desde Python y mixins

PyQt4 es un "binding" de Qt4 para Python. Voy a utilizar esto como ejemplo por razones poco interesantes. Utilizo algo de Qt en el trabajo y me viene mejor jugar con Qt que con wxWidgets (por ejemplo) Qt está hecho en C++ y pensado para C++ (con esteroides). Sirve como un contraste interesante de cómo hacer algunas cosas en C++ vs Python (u otros sistemas con mixins) Un interfaz visual es algo menos abstracto y aburrido que un caso abstracto de estudio Planeo hacer una aplicación con interfaz visual (sí PyQt4) para uso personal Vamos a ampliar QPlainTextEdit para que resalte la línea actual y además, haga un par de cosas cuando se pulse una tecla. Las mismas ideas se pueden utilizar para añadir resalte de código, autocompletar, y cualquier cosa que necesitemos. Una primera aproximación... from PyQt4.QtCore import * from PyQt4.QtGui import * class MyPlainTextEdit(QPlainTextEdit): def __init__ ( self , * args): QPlainTextEdit. __

Guión para mejorar

No puedo entrar en casa. Nadie puede entrar en casa. Me he dejado las llaves puestas en la cerradura por la parte de dentro. Vivimos en un quinto piso, pero como soy pequeño (12 años) y delgado, mi abuelo ha tenido la idea de pasarme por la terraza del vecino. Menos mal que las ventanas de la terraza estaban abiertas. Ahora estoy entre las dos terrazas en horizontal. Tengo la cabeza en la terraza de mi casa y los pies en la del vecino. El resto... está un poco en el aire. También tengo mucho miedo. Después de conseguir entrar por la ventana de la terraza y abrir la puerta, decidí que algo había salido mal. Convendría analizarlo y tomar medidas. Hay un persistente error de diseño en las cerraduras que se mantiene desde entonces. Ahora sé que las cerraduras más caras y de mejor nivel, no tienen ese defecto. ¿Cómo es posible que una cerradura se pueda bloquear de forma grave por un despiste sencillo? Está bien que una puerta se pueda bloquear por dentro, pero sin favorecer q

Si sólo tienes un martillo, todo te parecerán clavos

Imagen
La ley del instrumento Tan bien explicado 1964... https://en.wikipedia.org/wiki/Law_of_the_instrument https://en.wiktionary.org/wiki/if_all_you_have_is_a_hammer,_everything_looks_like_a_nail Si sólo tienes un martillo todo te parecerán clavos Y lo vemos tanto en los desarrollos informáticos del siglo XXI... Un ejemplo frecuente es la utilización de bases de datos relacionales para todo. Intentando... Trabajar como middleware Comunicar procesos Guardar documentos heterogéneos Gestionar enormes cantidades de datos Buscando tolerancia a fallos Gestionar escalabilidad ... Es cierto que son sistemas muy maduros, eficientes y estables... Pero no sirven para todo. O utilizar XML para todo. Hasta el punto de poner carteles de publicidad diciendo "a XML company" Por fin está llegando la cordura y la utilización de YAML, JSON y otras alternativas empiezan a no verse extrañas. O webservices para push y tiempo real. Otro ejemplo han sido

Disonancia cognitiva

¿Es posible mentirse a si mismo? Es fácil pensar que sí, es una expresión común. "Te estás engañando a ti mismo" . Pero no es tan fácil razonarlo. Según comenté en la entrada sobre la mentira  (aquí) , para mentir es necesario tener intención de engañar. ¿No implica eso que sabes lo que es cierto y lo que es falso? Si es así, no te puedes mentir tú mismo. Sería una paradoja. Pero la realidad es que mentir no implica conocer la verdad y tratar de engañar, mentir es CREER conocer la verdad y tratar de convencer de lo contrario. Si de alguna forma nos inventamos una realidad falsa y nos la creemos, es una forma de mentira. De automentira. Parece difícil caer en algo así, parece que hay que ser tonto. Parece que se puede desmontar con un simple razonamiento lógico interno. Parece fácil descubrir el pastel. Y sin embargo, es todo lo contrario. Este tipo de mentira es común, persistente, difícil de detectar y difícil de corregir. Precisamente porque creemos q

Mentira, mentira, mentira

Las grandes masas sucumbirán más fácilmente a una gran mentira que a una pequeña. Adolf Hitler (1889-1945) Dictador de la Alemania nazi. Una mentira repetida adecuadamente mil veces se convierte en una verdad. Paul Joseph Goebbels (1897-1945) Político alemán. Ministro de propaganda Nazi Pero los mentirosos, sólo pueden deslumbrar por un breve periodo de tiempo. Después... empiezan sus problemas. Las mentiras tienen patas cortas.  Se pilla antes a un mentiroso que a un cojo Una mentira nunca vive hasta hacerse vieja.  Sófocles (495AC-406AC) Poeta trágico griego. Mentir no es sencillo, requiere esfuerzo y es fácil equivocarse (y que se descrubra la mentira)   Hay que tener buena memoria después de haber mentido. Pierre Corneille (1606-1684) Poeta y dramaturgo francés. Las mentiras no son el camino para ganarse la confianza. El castigo del embustero es no ser creído, aun cuando diga la verdad. Aristóteles (384 AC-322 AC) Filósofo griego. Todos conocemo