super_l: prueba de concepto

Okay. Una «liberación» de un programa en estado peor-que-devel, peor-que-git: prueba de concepto.

Funciona bajo Linux. Estoy hasta la madre de tener en mi teclado una tecla llamada «Windows», como si sólo usara ese OS. Ahora se llamará «MENÚ» o «LAUNCHER» o «PINGÜINO» o como sea, pero servirá para controlar todo el ambiente de escritorio: lanzar programas, mover mentanas, matar aplicaciones, etc.

Este programa es la pura prueba del concepto. No sirve de nada todavía, pero estoy muy orgulloso de él. 🙂 Sólo por eso lo publico.

http://alvarezp.ods.org/~alvarezp/extra/super_l/super_l-proof.c

Licencia: GNU GPL.
Compilar con: gcc -o super_l super_l.c -L/usr/X11/lib -lX11 -ggdb -ansi

Ejecutar y presionar la tecla WIN. Sólo funciona con la letra A… y de hecho, no hace nada todavía.

… algún día…

Enjaulado pero libre

Lo único que me faltó es fumar mota. Trataré de contarlo paso por paso.

Hoy me levanté por la mañana y —no sé por qué— de repente pensé en la idea de las dimensiones y la manera de nosotros representarlo geométricamente:

En cero dimensiones, un punto.
En una dimensión, una línea.
En dos dimensiones, un cuadrado.
En tres dimensiones, un cubo.

Me imaginé un punto, moviéndose en «línea» recta, dibujando la línea y formando la primera dimensión (en «x»). Después, esa línea, moviéndose en la segunda dimensión (en «y»), formando un cuadrado. Después, ese cuadrado moviéndose en «z», formando el cubo.

Dije «Órale. Cuando la línea la hago cuadrado, aparece su (una) superficie. ¿Con cuántas líneas queda? Con 4. ¿Y con cuántos puntos queda? Con 4.»

Ah, caray: ¿»1, 4, 4″? Los coeficientes de (x + 2)^2 = (1)x^2 + 4x + 4.

¿Coincidirá si elevo (x+2) al «cubo»? Uta… no me acuerdo cómo queda… Sólo me acuerdo de que en el tríangulo de Pascal, la cuarta lína (la de la elevación al cubo) dice «1, 3, 3, 1». Pero veamos: cuántas caras (superficies), líneas y puntos tiene un cubo? 6, 12 y 8. O sea, ¿cuántos objetos de dos, una y cero dimensiones tiene? Si lo ponemos en una expresión matemática sería 6x^2 + 12x + 8, así que me falta la x^3. ¿Pero dónde en el cubo está esa x^3, es decir, tiene una «qué»? Pendejo: si tiene un volumen, un espacio de tres dimensiones, así que queda x^3 + 6x^2 + 12x + 8.

Ya nomás me quedaba recordar si (x + 2)^3 = x^3 + 6x^2 + 12x + 8, porque traté de hacerlo pero mentalmente no pude.

En fin, supongamos que sí (esto nunca se debe hacer, pero tenía  matemáticamente  una corazonada). La pregunta es: ¿Por qué todo parte de (x + 2)? ¿Qué significa (x+2)? ¿Por qué no (x+1) o (x + 3)?

Bien: yo cuando «desdoblé» el punto hacia una línea, me la imaginé «iniciando» y «terminando», es decir, delimitada por dos puntos. Y si «x» es la línea y el número 2 (o término independiente) son los 2 puntos, entonces tiene sentido. Entonces (x + 3) sería una línea delimitada por tres puntos.

Para no ponerme a buscar una línea delimitada por tres puntos (jaja) pensé que mi línea delimitada _contenía_ dos puntos, así que mejor busqué una línea que contuviera tres puntos, algo como +—+—+. Esto es (2x + 3), 2*línea + 3*punto. Al desdoblar esta línea en dos dimensiones me quedó:

+---+---+
|   |   |
+---+---+
|   |   |
+---+---+

Y sí: (2x+3)^2 = 4x^2 + 12x + 9, es decir, 4 superficies, 12 caras y 9 puntos. El cubo se lo dejo al lector (porque me dio hueva cuando lo estaba pensando).

Pero ¿cómo hacer (x+1)? Mejor pensé algo todavía más simple: (x+0), o sea: x.

x^0 = 1.
x^1 = x^1.
x^2 = x^2.
x^3 = x^3.

Me da los _conceptos_ de punto, línea, cuadrado y cubo, sin «límites»… ¡Ah! El cubo «sin límites» es todo el espacio, infinitamente. Tiene lógica: x^2 debe ser un plano sin límites y x debe ser una línea infinita.

¿Pero (x+1)? Pensé en una línea, por un lado limitada y por otro lado al infinito, algo así como una línea con un «punto de partida», tipo +———>(infinito).

¡Ja! Y sí: (x+1)^2 = (x^2 + 2x + 1), o sea:

^
|
|
+------->

Es decir, 1 superficie (ilimitada), 2 líneas (ilimitadas) y un punto, o sea que estaba logrando encontrar por medio de siemples expresiones matemáticas de segundaria algunas propiedades del universo, lo cual —debo reconocer— se siente bien. 🙂

Todo estaba muy tranquilo cuando de repente tenía que salir con mi domingo siete: entonces pudiera intentar elevar a la cuarta y buscar las propiedades de un espacio de cuatro dimensiones, sea el espacio-tiempo o no. Por lo general, uno se imagina el tiempo como la cuarta dimensión y aunque Einstein diga que es curvo y no sé qué, a mí me coviene pensarlo con líneas.

Veamos nuestra (x+1), es decir, nuestra línea con punto de partida: (x+1)^4 = (1)x^4 + 4x^3 + 6x^2 + 4x + 1. Es decir, si desde ese punto trazamos una línea infinita en x, en y, en z… y todavía en otra dimensión debemos obtener un espacio con 1 «algo», 4 volúmenes infinitos, 6 caras infinitas, 4 líneas y nuestro (1) punto de partida. Algo difícil de imaginar…

Como hoy me fui al trabajo caminando tuve 15 minutos para seguir pensando. Cuando llegué, traté de imaginarme esa figura, la de

   ^
   |
   |
   +----->
  /
 /
L

pero con una línea más, la línea de la cuarta dimensión. Me imaginé un cojunto de esas figuras, una hoy, una mañana, una pasado mañana, etc., ¿pero cómo unir todas en el vértice? Fácil: ese vértice es hoy, y la línea es la línea que se mueve a lo largo del tiempo. ¿Pero dónde están ese «algo», los cuatro volúmenes infinitos, las 6 caras infinitas, las cuatro líneas infinitas y nuestro punto de partida? El punto de partida es hoy. Las cuatro líneas son las tres líneas de la figura más la del tiempo. Pero lo demás… ¡damn!

Bueno, ahora (x+2). Tenemos nuestro punto, nuestra línea +———+, nuestro cuadrado

+------+
|      |
|      |
+------+

nuestro cubo y nuestro ¿qué?

Como (x+2)^4 = x^4 + 8 x^3 +24 x^2 + 32 x + 16, debemos obtener una figura con 1 «algo», 8 volúmenes, 24 caras, 32 líneas y 16 puntos. Entonces dos cubos y uní cada esquina de uno con cada esquina del otro, igual que lo hubiera hecho con las líneas, y me quedó algo como esto:

Hipercubo 1.(Imagen extraida del caché de Google, de una página de exa.unne.edu.ar)

Entonces lo hice con líneas rectas, y me quedó algo así:

Hipercubo 2.(Imagen extraida también del caché de Google.)

Y recordé que en alguna página había visto esa figura, en alguna página como esa de la que extraje la imagen, llamada hipercubo así que me puse a buscar información sobre la misma y encontré estas páginas:

http://www.upc.es/ea-smi/personal/claudi/web3d/espanyol/hipercub.htm

http://translate.google.com/translate?hl=en&sl=pt&u=http://www.silvestre.eng.br/astronomia/artigos/bigbang/11/&prev=/search%3Fq%3Dh%25C3%25ADpercubo%26num%3D30%26hl%3Den%26hs%3DLY8%26lr%3D%26safe%3Doff%26client%3Dopera%26rls%3Den%26sa%3DG (está medio traducida, pues la original está en portugués)

En la segunda página llaman a ese «algo», un «hipervolumen». Puesto que yo me lo imaginaba con tiempo, preferí llamarlo «vida» o «lapso». Es un poco atrevido, pero en fin.

Y aquí es cuando comenzó lo mejor del viaje.

Cuando leí el libro Los hoyos negros y la curvatura del espacio-tiempo me sentí enjaulado, especialmente cuando ví la figura 4, ya que, al plantear la velocidad de la luz como una asíntota de velocidad, es decir, un valor al cuál no se puede llegar (sólo aproximar), pensé: si yo viajara al centro de la galaxia (para averiguar si hay un hoyo negro o no) a la velocidad de la luz (el límite), me tomaría 26,000 años llegar. Como no puedo viajar a esa velocidad, digamos que viajo a un poquito menos. Puede pasar una de dos:
* O el tiempo sigue pasando por mí (en cuyo caso nadie puede viajar más allá de cierto límite espacial, digamos, unos 80 años-luz),
* o el tiempo _casi_ dejará de transcurrir por mí, de modo que para cuando yo llegue, yo tendré quizá unos cuantos años más, pero mis amigos, colegas, etc. ya habrán muerto.

Pero si alguien más viaja al centro de la galaxia de igual manera, yo nunca podré saber cuáles fueron sus conclusiones, ya que yo habré muerto para cuando él regrese (si es que logra regresar). Me siento muy afortunado porque cuando la gente que yo quiero se va, digamos, en avión, y regresa, prácticamente no hay diferencia en el momento en el que estamos viviendo.

Debido a esta limitación, a esta «jaula» propia de nuestro universo, no podré nunca analizar por cuenta propia algunas cosas.

Alguna de estas ideas me llevó a concluir que vivimos en una proyección tridimensional con un inicio y un fin en el tiempo de un espacio tetradimensional, una figura más o menos así:

    espacio tridimensional
     ^
     |
     |     _ _ _ - - - _ _ _
 0 --+ : :                   : : + ------>
     |     - - - _ _ _ - - -          tiempo
     |

lo cual confirmaría matemáticamente la teoría de la Gran Explosión y la Gran Compresión, jaja. 😀 (Se supone que esas líneas son dos curvas que van del cero al final, una por arriba y otra por abajo.

Pero pensé: si yo pongo un cubo sobre mi mesa y lo desplazo hacia otro punto sobre mi mesa, entonces ese cubo y las posiciones en donde estuvo en cada instante, harían un hipercubo. En el momento en el que yo le imprimí fuerza al punto en el primer instante todo estaba casi definido: la fricción, la fuerza inicial, la gravedad y todas las demás boberías que harían que mi cubo terminara donde terminó. Yo _decidí_ darle cierta _dirección_ al cubo. Pero digo «casi todo» porque puede haber otro factor, como llegue alguien más y lo frene si desea.

En tal sentido, con mucha hambre y con ganas de seguir unas dos o tres páginas más, sólo me resta decir que _por lo tanto_ depende de las decisiones que yo tome la dirección que le doy a mi vida. Y está comprobado matemáticamente.

Saludos.

Aunque Ud. no lo crea

En días recientes he visto cosas tan impresionantes que al verlas digo «Wow, ya no hallan ni qué inventar» o «Wow, y yo que pensé que ya todo estaba hecho», pero hoy me he topado en Linux.org conque SCO le ha pedido a IBM, en su demanda, que muestre todos los documentos concernientes a las contribuciones de IBM hacia [el kernel] Linux 2.7.

Deberían imponer multas por este tipo de estupideces…

Y tú, qué opinas?

Ni tanto que queme al santo…

Me encontré esta publicación de Diego Martín Lafuente. Después de leer el artículo y los comentarios escribí mi comentario pero resultó tan largo que pensé que valdría la pena publicarlo aquí también.

Se titula «¡Esto es tan simple!» y habla sobre la complejidad de una interfaz de usuario, citando como ejemplo a los buscadores.

Pero parece que la gente que comenta no leyó la frase más importante de todo el artículo: «simple no significa inútil» y comenzó a darse una serie de comentarios hasta que surgió el de «Knithx», que en su página puso un buscador (local) sin botón de «buscar», lo cual me pareció exagerado. Ojo: Todo eso es sin ofensa para la persona ni su diseño, ya que su sitio está muy limpio y fácil de leer.

Incluso Diego propone eliminar las «búsquedas avanzadas», con las cuales se asume que el buscador es un humano y puede adivinar exactamente lo que uno como usuario desea. Quiero entender que se refiere a esto como un ideal, pero aunque se llegue a ofrecer una funcionalidad aceptable, en promedio, nunca dejará de ser eso: aceptable y promedio.

Es decir, hay quienes escriben «ke» y ellos también usan los buscadores. ¿Desde ese punto de vista: «kiosko» está mal escrito»? ¿Por qué perjudicar a los usuarios avanzados de esta manera?

Y a continuación, cito mi comentario. Inicio.

El problema está en la pregunta.

Tipos de usuario:

1. El usuario estúpido o «tapado»: el que no sabe, y no está dispuesto a aprender. Este usuario espera ubicar el martillo sobre el clavo y que el martillo haga el resto. Por lo general, le va a echar la culpa al martillo. Este usuario esperará que le resuelvan las cosas, y quizá aprenda algo en el camino. Preferirá llamar a soporte técnico. La única manera de frenar su estupidez es cobrándole por ella.

2. El usuario dispuesto: el que no sabe, y está dispuesto a aprender. Este usuario comprende que los martillos no van a clavar un clavo por él, así que sabe que deberá aprender algo y está dispuesto a hacerlo. En no raras ocasiones compartirá algunas propiedades del usuario observador. Este usuario admirará a un gurú. Es un futuro discípulo y hasta gusto da darle soporte técnico.

3. El usuario observador: el que ya ha usado el martillo durante algún tiempo, y de repente se da cuenta de que el martillo tiene algo en forma de ye, se pregunta para qué sirve, y quizá intenta buscarle un uso o quizá preguntará a alguien más. Se le puede mostrar algún truco y no sólo lo apreciará, sino que sabrá sacarle jugo.

5. El usuario gurú: Ha usado el martillo durante un tiempo, es observador, y _se_dio_cuenta de que la magia del martillo radica en que el centro de gravedad está ubicada en la cabeza del martillo. Es capaz de aventarlo al aire dándole una vuelta sin golpearse y tal vez se molesta cuando otros usuarios (usualmente huevones [v. usuario estúpido]) lo critican por tener la curiosidad y la habilidad de hacer eso. Quizá hasta él mismo ha fabricado algún martillo simple.

6. El ingeniero de martillos: Esa es su área. Le dices que viste un martillo, se lo describes y en la cabeza ya se lo imaginó y quizá le corrigió los defectos. La línea divisoria entre el ingeniero de martillos y el gurú es muy delgada y confusa.

No es lo mismo diseñar «pensando» en el usuario estúpido, es decir, con una consulta relativamente simple, y un botón de búsqueda avanzada para aquellos que no son tan estúpidos, que diseñar «exclusivamente» para el usuario estúpido, que es cuando crees que todos los usuarios son estúpidos, con lo que le arrebatas las ventajas de la experiencia y el control al usuario gurú, perjudicando al mundo de la computación en general.

Del párrafo anterior pueden comenzar a hacer la lista de los «tipos de diseñadores de martillos».

Yo no soy partidario de la simplicidad, sino de la libertad del usuario. Si bien para algo sirve el «Enter» (y yo lo uso demasiado), si un diseñador piensa que quitarle el botón de «búsqueda» es bueno, pues que de una vez le quite la etiqueta de «búsqueda» a la búsqueda, ya que –según él– todos los usuarios buscan una cajita blanca, y esperemos en Dios que nunca se quede ciego. Si con este razonamiento decide regresarle la etiqueta «búsqueda», y va a dedicarle un espacio en la página a esta etiqueta, que no lo desperdicie y que lo haga botón.

A final de cuentas hay que equilibrar todo. Ni exageradamente minimalista que llegue al estúpido «monocromo azul» de Yves Klein, ni exageradamente lleno de cosas que parezca página portal de MSN. Después de todo es cuestión de enfoques. Pregúntale a un ingeniero y a un arquitecto qué es más importante, que un edificio esté bonito, o que no se caiga. Ahora pregúntale a los que visitan el edificio y a los clientes.

–Octavio.