miércoles, febrero 13, 2008

Juez de menores de Granada, Emilio Calatayud

A ver si dando difusión al decálogo y charlas de este hombre, conseguimos que se arregle un poco la juventud actual.

DECÁLOGO PARA CONVERTIR A TU HIJO EN UN AUTÉNTICO CRIMINAL:

1. Comience desde la infancia dando a su hijo todo lo que pida. Así crecerá convencido de que el mundo entero le pertenece.

2. No se preocupe por su educación ética o espiritual. Espere a que alcance la mayoría de edad para que pueda decidir libremente.

3. Cuando diga palabrotas, ríaselas. Esto lo animará a hacer cosas más graciosas.

4. No le regañe ni le diga que está mal algo de lo que hace. Podría crearle complejos de culpabilidad.

5. Recoja todo lo que él deja tirado: libros, zapatos, ropa, juguetes. Así se acostumbrará a cargar la responsabilidad sobre los demás.

6. Déjele leer todo lo que caiga en sus manos. Cuide de que sus platos, cubiertos y vasos estén esterilizados, pero no de que su mente se llene de basura.

7. Riña a menudo con su cónyuge en presencia del niño, así a él no le dolerá demasiado el día en que la familia, quizá por su propia conducta, quede destrozada para siempre.

8. Dele todo el dinero que quiera gastar. No vaya a sospechar que para disponer del mismo es necesario trabajar.

9. Satisfaga todos sus deseos, apetitos, comodidades y placeres. El sacrificio y la austeridad podrían producirle frustraciones.

10. Póngase de su parte en cualquier conflicto que tenga con sus profesores y vecinos. Piense que todos ellos tienen prejuicios contra su hijo y que de verdad quieren fastidiarlo.

Aquí os enlazo dos videos de una charla magistral suya:




miércoles, febrero 06, 2008

Función de los discípulos

   Vosotros sois la sal de la tierra;
si la sal se desvirtúa, ¿con qué se la salará?
Para nada vale ya, sino para que, arrojada fuera,
sea pisada por los hombres.
Vosotros sois la luz del mundo.
Una ciudad situada en la cima de un monte no puede ocultarse.
Ni encienden una lámpara y la ponen debajo del celemín,
sino sobre el candelero, y alumbra a todos los que están en la casa.
Brille así vuestra luz delante de los hombres,
para que vean vuestras obras buenas
y glorifiquen a vuestro Padre celestial.

San Mateo 5,13-16

Señor, que no se nos olvide nunca.

lunes, julio 30, 2007

OpenCV vs Microsoft Visual C++ 2005

If you're trying to work with OpenCV, I'm sure you've followed all the steps in OpenCV Library Wiki. After that I'm sure you've tried to compile something and you have realized YOU CAN'T!

This is because you must do more things.

Once you installed OpenCV Library you must open de Workspace MSVC6,you can find it in Start Menu->OpenCV.

Visual C++ will be opened with it.
Go to Build->Patch Build.Select all and Build! (this may take several minutes)It will create .dll's so we can work with the library.


When you create a new project (use a Win32 Console Application), you must create a new workspace too. Go to Projects->Setting. Go to Link and select Category: Input.
You must include in the library modules every .lib you use in your code. I recommend to include all of them: cxcore.lib cv.lib cvaux.lib highgui.lib


We're not finished yet! You must add in the environment variables the path openCV/bin

After all you can build your projects and they will work!!

martes, junio 12, 2007

Como programar en XML y no morir en el intento

A veces programar en XML puede ser un auténtico infierno.
Es un lenguaje bastante 'especial' que requiere que se programe de una forma muy poco eficiente, al menos ese es mi punto de vista. No obstante su utilidad está más que demostrada y una vez conocidos todos los secretos, programar es coser y cantar.

Un ejemplo de lo que yo considero ineficiencia es el hecho de que para definir un elemento raíz que sea una secuencia de elementos en un XML Schema, sea necesario definir un ComplexType. El elemento raíz deberá ser de ese tipo. Será la costumbre de programar en otros lenguajes, pero yo veo el ComplexType como un intermediario que sobra. En fin, para gustos, los colores.

Os pongo aquí un ejemplo de documento XML Schema para que podáis ver cómo se pueden crear restricciones, como declarar atributos o tipos enumerados:
El ejemplo es una secuencia de fichas. Cada una posee una secuencia de :
nombre
apellido1
apellido2
cero o dos e-mail cuyo formato debe ser: 'cadena_de_caracteres@cadena_de_caracteres.com'
cero o tres direcciones que son una secuencia de calle, piso, letra y código postal (5 dígitos y sólo son válidos los que están en el intervalo 10000-99999) , ciudad y país
Las fichas posee también dos atributos: categoría y zona, los cuales sólo pueden tomar unos determinados valores.




<?xml version="1.0" encoding="UTF-8"? >


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

elementFormDefault="qualified"

attributeFormDefault="unqualified">


<xs:element name="serie_fichas">
<xs:complexType>
<xs:sequence>
<xs:element ref="ficha" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="ficha">
<xs:complexType>
<xs:sequence>
<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellido1" type="xs:string"/>
<xs:element name="apellido2" type="xs:string"/>
<xs:element name="email" minOccurs="0"
maxOccurs="2">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Za-z]+@[a-z]+.com"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="direccion" type="dir"
minOccurs="0" maxOccurs="3"/>
</xs:sequence>
<xs:attribute name="categoria" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="empresa"/>
<xs:enumeration value="particular"/>
<xs:enumeration value="agente_comercial"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="zona" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Norte"/>
<xs:enumeration value="Sur"/>
<xs:enumeration value="Este"/>
<xs:enumeration value="Oeste"/>
<xs:enumeration value="Centro"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>

<xs:complexType name="dir">
<xs:sequence>
<xs:element name="calle" type="xs:string"/>
<xs:element name="piso" type="xs:decimal"
minOccurs="0"/>
<xs:element name="letra" type="xs:string"
minOccurs="0"/>
<xs:element name="codigo_postal">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="5"/>
<xs:minInclusive value="10000"/>
<xs:maxInclusive value="99999"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ciudad" type="xs:string"/>
<xs:element name="pais" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<!--By Daw@-->
</xs:schema>


Un detalle: si no se ponen, minOcurrs y maxOcurrs tienen el valor por defecto 1.
Del mismo modo, si no se dice nada, un atributo se define como optional

domingo, abril 08, 2007

Teclado QWERTY

Más de uno se habrá preguntado porqué el teclado del ordenador tienes las letras ordenadas del modo en el que están.

El motivo viene de lejos: en las antiguas máquinas escribir. Las teclas accionaban un conjunto de macitos pequeños (que pueden verse en la foto) que estaban colocados haciendo una media elipse y que tenían grabada la letra a escribir. Al apretar un botón, el macito salía de su ubicación y le daba a la cinta de tinta la cual daba con el papel quedando impresa la letra en el mismo.

En las primeras disposiciones de las teclas, si se pulsaban muy rápido dos letras cuyos macitos estaban próximos, podían entrelazarse liándose. La única forma de desenredarlos era con las manos. Esto hacia que no se pudiera escribir muy rápido.
La disposición actual de las teclas se diseñó para minimizar la probabilidad de accionar seguidamente dos macitos contiguos. Esto se hizo mediante un estudio de la correlación temporal de las letras en el idioma inglés (a los españoles se nos atrancaba más la máquina que a ellos :) )

El hecho de no cambiarlos cuando el problema mecánico desapareció se debe a que mucha gente había aprendido a escribir rápidamente y algunos sin mirar en ese tipo de teclado. Cambiar la disposición de las teclas hubiera supuesto a todas esas personas volver a aprender a escribir con teclado. A fin de simplifcarle la vida a ellos se dejó este teclado. Y así hasta nuestros días :)

lunes, febrero 26, 2007

Comparación graciosa

Hace tiempo me llegó un mail que comparaba a las chicas de Teleco con las de otras facultades.
Aunque los comentarios sobre las otras sé que son bastante exagerados, la mayoría de los comentarios sobre las chicas de Teleco dan en el clavo :)

Mujer universitaria
: Maquillaje y pote para la cara (nunca se sabe cuando el chico de sus sueños puede invitarla a tomar una Coca-Cola Light en la cafetería de la facul).
Mujer-Teleco: Vaselina u otros lubricantes (nunca se sabe cuando el profesor de sus pesadillas puede petarle el culete con un examen sorpresa).

Mujer universitaria: Cuerdecitas de muchos colores para hacerse unas trencitas guays a lo Lucrecia por si se aburre como una ostra en clase.
Mujer-Teleco: Cables de colores para poder distinguir el follón de señales que tiene montado en la placa.

Mujer universitaria: Carnet universitario por si a última hora se entera que hay una fiesta y tiene que demostrar para entrar que es estudiante de la universidad.
Mujer-Teleco: Carnet universitario para poder sacar manuales y cables de bus del laboratorio.

Mujer universitaria: Algo de dinero suelto por si en el último momento una amiga le anima a saltarse las clases para tomarse un piscolabis en la cafetería.
Mujer-Teleco: Algo de dinero suelto por si en el último momento se quema un chip y tienes que ir a Electrónica del Futuro a que te claven.

Mujer universitaria: Una calculadora únicamente con las funciones elementales (Suma, resta, multiplicación y división) para que no le claven cuando se compra la Superpop en el kiosko del campus.
Mujer-Teleco: Una calculadora con ocho millones de funciones de las cuales domina el 1%, y que luego no le dejarán usar en ningún examen.

Mujer universitaria: Una barra de labios por si hay que ¿estudiar? un rato en la biblioteca general.
Mujer-Teleco: Una barra de cacao por si el frío les corta los labios (se ha demostrado de forma empírica que algunas facultades de Teleco están diseñadas estructuralmente de tal forma que en invierno no entra un rayo de sol ).

Mujer universitaria: Unas pilas para escuchar lo último de La Oreja de Van Gogh en su Discman mientras "estudia" en la biblioteca.
Mujer-Teleco: Una pila por si la fuente de alimentación del laboratorio está jodida.

Mujer universitaria: Unas gafas de sol para tostarse al sol en el jardincito entre clase y clase.
Mujer-Teleco: Unas gafas de sol para poder ver sin reflejo lo que está escribiendo el profesor en el extremo opuesto de la pizarra.

Mujer universitaria: Una carpeta forrada con fotos de sus ídolos: Por delante con pequeñas fotos de Bustamante, Leonardo DiCaprio, Manuel Carrasco .. Por detrás un poster inmenso de Robe de UPA Dance, su preferido.
Mujer-Teleco: Una carpeta forrada con fotos de sus ídolos: Por delante con pequeñas fotos de Gauss, Kirchoff, Cauchy....Por detrás un poster inmenso de Fourier, su preferido.

Mujer universitaria: Un bikini por lo que pueda surgir (Fiesta de espuma en cafetería que había olvidado, etc...)
Mujer-Teleco: Un diskette por lo que pueda surgir (Grabar la práctica que había olvidado, etc...)

Mujer universitaria: Para una revisión: ropa interior sexy, actitud pragmática y pensamiento muy liberal acerca de intercambiar créditos de libre configuración por favores sexuales con el profesorado.
Mujer-Teleco: Para una revisión: tarro de vaselina, cruz de madera al pesho, fé en los milagros y agradece si no le escupen.

Mujer universitaria: Una lima para las uñas (o incluso un cortauñas) para llevar una manicura impecable.
Mujer-Teleco: Un pelacables para hacerle un apaño de última hora a la placa.

Mujer universitaria: Un CD con los grandes éxitos de Ricky Martin, entre los que se incluyen She Bangs y Livin' la vida loca.
Mujer-Teleco: Un CD con los grandes éxitos del Departamento de Tecnología Electrónica y del de Matemática Aplicada, entre los que se incluyen Mathlab 5.0 y AIM-Spice.

Mujer universitaria: Un top insinuante y que se transparente un poco porque este verano están de moda las transparencias.
Mujer-Teleco: Un tocho de transparencias de la asignatura que se ha dejado para Septiembre, porque este verano están de moda las transparencias.

Mujer universitaria: El bolso fashion de rigor para llevar todos los complementos de una auténtica Mujer universitaria (pañuelo fashion para la cabeza, cadenita de repuesto para la cintura...)
Mujer-Teleco: La caja de zapatos de rigor para llevar todos los complementos de una auténtica Mujer-Teleco (placa protoboard, cables banana-cocodrilo, circuitos integrados varios...)

jueves, febrero 01, 2007

Como cortar una pelicula avi

A veces nos puede interesar cortar las películas avi que tenemos.
El programa que vamos a emplear para conseguirlo es el Virtual Dub Mod 1.4.13, que te lo puedes bajar mísmamente de aquí. Versiones posteriores de este programa tienen estructurados los menús y opciones de forma diferente.
El VirtualDub Mod no necesita instalación. Sólo hay que descomprimir el .zip y ejecutar el .exe para empezar a usar el programa.
Éste luce tal que así:


Le damos al File/Open video file para cargar la película. Si sale una ventana diciendo algo de cambiar el audio a bitrate constante le damos a No, ya que si no nos desincronizaría el audio.

Seleccionamos en el menú Video, la opción Direct Stream Copy y en el menú Avi, y el submenú Audio, la opción Avi Audio.

Los botones que más nos interesan son los que tienen una llave pintada, que son los que nos permiten movernos por los keyframes. Si cortamos una película por un punto que no sea un keyframe se corromperá el video.
Los anteriores a estos botones son para movernos por el video (al principio, al final, hacia delante y hacia atrás).Vamos, nada que no podamos hacer con la barra desplazadora :)
Con los dos últimos botones hacemos los cortes. El primero de los dos hace el corte del principio y el último el corte del final(quien lo iba a decir ¿no? :P).

Para cortar cualguier trozo, ubicamos la barra desplazadora por donde queremos cortar y le damos al botón de la llave (si le damos al primero nos colocaremos en el keyframe inmediatamente anterior al punto donde estamos y si le damos al segundo se colocará en el keyframe inmediatamente posterior). Le damos al primer botón de cortar. Colocamos la barra desplazadora donde queremos que el trozo acabe y volvemos a pulsar un botón de keyframe.Le damos al segundo botón de cortar y la barra se nos pondrá de otro color la zona que hemos señalado como zona a cortar.

Finalmente nos vamos al menú AVI, Save as AVI. Le ponemos el nombre que queramos y aceptamos.
Saldrá una ventana donde se ve el proceso. Cuando se cierre la ventana ya se habrá creado el archivo avi cortado :)