sábado 27 de diciembre de 2008

Open Source para tontos

Una cosa que permite el Open Source es la capacidad de generar curiosidad a la gente que hace uso de él. Cuando se ven a través del código las líneas que van dibujando la aplicación, es implacable (al menos para mí) el querer modificar su contenido, para corregir algo, o hacer que cambie su apariencia simplemente.

Desde que usaba DOS y Windows 3.1 en mi 286 a 12 MHz con mi monitor CGA, ya modificaba el prompt (wow!), las piezas del tetris que corría en GW Basic, hasta algunos comandos del DOS que modificaba con un editor hexadecimal que había encontrado por ahí, entre los comandos externos del DOS.

Hoy es un poco más fácil cambiar el código de las cosas, y más aún si se tiene Open Source. Por ejemplo, tengo instalada la aplicación gdrae, que es un programita hecho con glade y python creo, para hacerla de interfaz con el sitio web de la Real Academia de la Lengua Española. Básicamente es una ventana que tiene un marco donde salen los resultados, y una caja de texto donde uno puede escribir la palabra de la quiera su definición y un botón de enviar, para hacer la consulta y mostrar el resultado en el marco. El problema es que hay una etiqueta que dice "Dicionario" y debería decir "Diccionario", obvio. Bueno, pues hay que cambiarlo.

Lo primero que hago es buscar todos los archivos que tengan que ver con gdrae
#locate gdrae

Entre los resultados, hay uno que tiene la extensión "glade", y es ese archivo el que hace que se dibuje la aplicación, así que busco en ese archivo, la línea donde dice "Dicionario"
#cat /usr/share/gdrae/rae.glade|grep Dicio -n

270: <big><b>Dicionario de la Real Academia Española (RAE.es)</b></big>

Ahí me dice que del archivo rae.glade, en la carpeta /usr/share/gdrae tiene en su línea 270 el error, así que entro a modificarlo, desde la consola puedo hacerlo con el editor gedit.
#sudo gedit /usr/share/gdrae/rae.glade

Me voy a la línea 270 en el gedit
CTRL+i 270

Cambio lo que tengo que cambiar, guardo
CTRL+S

y ya quedó. La próxima vez que abra esa aplicación, no vendrá el error en su interfaz :D

Claro que se puede hacer un poco más si se instala glade-2 y se entra directamente desde la consola
#sudo apt-get install glade-2
#sudo glade-2 /usr/share/grdare/rae.glade

No me gusta que este programa no le de el foco al campo de entrada de la palabra, así que cada vez que lo inicio, le debo de dar un Tab para enfocar el campo. Desde la interfaz de glade-2 muevo a mi antojo las cosas, lo grabo y listo.

Si la cagué y debo de recuperar el archivo original, lo remuevo
#sudo apt-get remove gdrae

Y lo vuelvo a instalar
#sudo apt-get install gdrae

Listo.

martes 23 de diciembre de 2008

Typos

-Pinche Liliana, esta es mi tarea no manches
-Estás que brillas, esa la hice en clase, ¿verdad maestro?
-Lengua que eres, si esa es mi letra ¬¬
-Ay, baboso.

Dos de mis alumnos (David y Liliana), hablando de sus tareas de Bases de datos, mientras comparaban unas consultas en SQL, en un editor de textos. ¡Plop!.

viernes 31 de octubre de 2008

Cabrón intrépido

Para nada es un insulto. Es mi traducción mexicanizada de la actualización de Ubuntu, Intrepid Ibex, la 8.10 (año 2008, mes 10).


Apenas se liberó, bajé el torrent. En 2 horas terminó la descarga y me puse a quemarlo. Cuando llegué a la casa comencé a instalarlo en una de mis particiones -la más grande- que eché a perder con unos comandos mientras quería a fuerza instalarle unos efectos nuevos del compiz, y por flojera mejor instalé de nuevo en una partición de 50 GB y jalé mis datos desde la otra.


Leí muchas opiniones en blogs sobre el aspecto del Intrepid que trae predeterminado, y todavía no entiendo porqué se quejan tanto, si se puede cambiar facilmente. Seguramente son de las personas que siguen con windows y su "hermoso" paisaje de las lomitas y el cielo azul, 7 años después de haberlo instalado cada año para que no se alentara.


Otros, los gamers en algunos blogs también, dicen que Ubuntu tiene color a mierda. Yo diría que a veces, porque si come uno más verduras, pues cambia el tono, no? A mí me gustó bastante el nuevo fondo de escritorio. En qué lo habrán hecho? en puro GIMP? en Photoshop? jajajajaja -chiste ubuntero- el caso es que me gustó mucho. El del Hardy también me gustó, muy estilizado, entre moderno y vintage -ja!-.


Cuando arranqué el LiveCD, entró bien casi todo, video con efectos de escritorio, audio, aunque la tarjeta de red no, pero es lo de menos. Hace tiempo bajé el paquete del madwifi y nomás entro a esa carpeta, hago un make y luego un make install y cuando reinicio ya tengo wireless.


El video hacía medio rarito, pero bueno, en la casa no tengo terné, y no pude descargar los controladores propietarios de ATI -aunque a veces dan más broncas que soluciones-.


El caso es que recuperé esa partición, y ando viendo qué tan rápido jala.


Felicidades a mí.

jueves 9 de octubre de 2008

Most used

Cuando leo alguno que otro blog que trate de ubuntu, casi siempre tienen su top ten de comandos utilizados en consola, así que para no sentirme raro, aquí lo pongo. Lo obtienes de manera sencilla ejecutando el comando:



history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}' | sort -rn | head



And the winner is...


205 sudo


60 ls


41 cd


35 clear


29 exit


22 history


18 iwconfig


13 ifconfig


10 man


9 aireplay-ng


O sea que... sudo más de lo que trabajo? :D Otra cosa que puedo ver con esa "estadística" es que mi memoria se da a notar, ya que hago casi siempre llamadas al manual de los comandos que uso. Normalmente son para el iwconfig y el ifconfig jeje.


Lo demás, el ambiente gráfico, no lo captura, pero sería interesante. Habría que consultar el log de la máquina para ver los programas más utilizados en el ambiente gráfico.

viernes 3 de octubre de 2008

Pseudo tutorial Inkscape

No llega a ser un tutorial en forma, porque no describo de P a PA el proceso que me llevó a concluir el gráfico, pero sí una secuencia de los pasos que realicé para terminarlo.

Es un pingüino, una de las imágenes más conocidas del Sistema Operativo GNU/Linux -Alabado sea Stallman/Torvalds-. Siempre había querido un pingüino como fondo de pantalla, y mejor hice una. Qué más quisiera yo, que fuese un gráfico realista, pero necesitaría más tiempo para hacerlo, agregarle texturas y efectos, pero al menos ya se ve decentemente.

No lo copié de ningún lugar, así que las proporciones no son muy correctas -de acuerdo a lo que me imaginé en un principio-, mas se acerca, a lo que yo simplemente tracé.























Anacrónico

Silvio de azul. Silvio en blanco y negro. Silvio con fondo verde. Silvio de lejos. Silvio casi mudo. Silvio en el DF.

Sí, de que hay que agradecer a Google o a YouTube el alcance que tiene el usuario de a clic para difundir información, hay que agradecer. Pero algo que me preocupa es que las personas no tenemos un sentido del orden.

Lo veo mucho con los chavos a los que les doy clases. Comienzan una operación aquí, la terminan allá, escriben primero el término del final, y continúan con el final, para luego escribir el término de enmedio. Así lo veía con una maestra, que si no estaba uno en su frecuencia, al final el pizarrón parecía un mapa mental del concepto que explicaba.

Es cierto que la medición del tiempo es invento del homínido, y es cierto también que estamos inmersos en esa superficie espacio-tiempo que se ve tan bien en maqueta hecha de cuerdas y bolas de billar. Pero parece que quisieramos vivir en un tiempo muerto. Como los deseos de tener un día de 48 horas para terminar los trabajos, para ver a tus hijos, para descansar del trabajo, para cobrar por hora, y un mar de etcéteras.

El homínido debería ser más un Sapiens que solo un Videns. Me refiero a que realmente deberíamos preocuparnos por tener un registro estricto de las fechas en cuanto a lo que vemos, lo que escuchamos, lo que hablamos, y hasta lo que pensamos. Un git integrado en la cabeza, o mínimo, en la computadora. Esos videos de Isabel que ve en el YouTube no serían simples videos con cintas beta medio mordisqueadas por alguna VCR barata de 4 cabezas. Serían un poco de orden. ¿Es mucho pedir el conocer la fecha en que un video fue grabado? o ¿qué tal el conocer la fecha en que lo digitalizaron? o para algún geek -Stallman nos libre de eso- saber la fecha en que esa guitarra que usa Silvio, fue hecha.

A veces tengo la necesidad de meterme a Nautilus, en sus genes, y cambiar la vista por conceptos, o por fechas, o por nombres, abusar de una interpretación semántica de las cosas. Lo que no tengo es tiempo. Y sí, tampoco tengo el conocimiento suficiente. Lo más probable es que no entienda tanta clase en el código fuente. No lo he visto, esa idea tengo de las tripas de mi Linux.

Y luego viene la realidad: la consulta. Cómo demonios buscar o desmenusar la información. Con mis fotografías no hay bronca, proceso la información EXIF que tienen -algunas fotos dicen hasta la uña que tenía más crecida en el pie derecho cuando tomé la foto; hubieran hecho maravillas si tuviera un GPS integrado y me dijera en qué ubicación en 3D capturé esa rebanada de tiempo-, y luego le implemento de manera rápida, una base de datos en MySQL, con el algoritmo que uso en mi eterna tesis, y en dos patadas se tienen las relevancias y se ordenan. Nada de ORs ni ANDs ni palancas y cuñas por el estilo, una TDM, ¡qué chingados!.

El problema es, que hay que implementarlo en los videos, o en la información que usemos. Incorporarlo quizás en el primer cuadro que reproduce el plugin, y sacarlo y registrarlo y analizarlo e implementarlo y probarlo y mejorarlo y venderlo y ganar dinero. Cosas de ingenieros.

viernes 12 de septiembre de 2008

Santísima trinidad

Los tríos no parecen una mala opción cuando uno los propone, malo cuando uno es el mal tercio, pero bueno, nada que ver con el título ni con el tema. Esta entrada es para hablar de mi asiduidad del operador trinario.


Se trata del IF_THEN_ELSE pero de forma abreviada. Cortita. Maleable. Casi críptica e inexpugnable. Ok, exagero.


Me gusta porque es sencillo de escribir y en la mayoría de los lenguajes de programación de alto nivel está presente de la misma forma.


(pregunta_que_arroja_TRUE_o_FALSE)?SIMON:NONES


Es la notación que más he encontrado. El "lenguaje" que más uso desde hace unos años, por su simpleza, es PHP. Lo que me gusta de PHP es que maneja cadenas. Casi todo se reduce a manejo de cadenas. Todo tiene una mejor solución -o al menos para mí más entendible- con cadenas y arreglos.


El caso es que el operador trinario es muy sencillo de utilizar cuando uno quiere mostrar un resultado. Supongamos que en una base de datos obtengo el valor de un campo que se almacena en la variable $edo. $edo puede ser 1 ó 0. Bueno, pues cómo escribo algo con una sola variable para que sea una cadena cuando es 1 y otra cuando es 0? easy cake.


print ($edo==1)?"el valor es uno":"el valor es cero";


Ahora, lo que no me gusta en las páginas web, es que luego salga por ejemplo, la cadena "hay 1 comentarios en la nota". Esa pinche ese me molesta. Así que la puedo quitar con el trinario.


print "Hay $x comentario".(($x!=1)?"s":"")." en la nota";


Ahora, si quiero que cuando no haya comentarios, diga exactamente eso, que no hay comentarios, puedo modificar la instrucción más o menos así:


print ($x==0)?"No hay comentarios":"Hay $x comentario".(($x!=1)?"s":"")." en la nota";


También se pueden intercalar, para que sea muy parecido a un switch, donde pueden ser varias opciones, pero sólo se entre a una. El problema es que se hace un poco difícil de manejar. Aunque a veces es funcional para casos donde sólo es una cadena de salida lo que vamos a mandar y no vamos a usar más adelante el resultado, o al menos así lo uso.


$color=2;


$colorx=($color==1)?"color uno":(($color==2)?"color dos":(($color==3)?"color tres":"otro pinche color"));


print $colorx;


$colorx es la cadena que muestra el resultado de evaluar $color. Hay que usar los paréntesis para delimitar o agrupar, las diferentes evaluaciones.


Y en este ejemplo no importa realmente mostrar "color uno" "color dos", etc. porque se puede hacer de otra forma, lo que importa es mostrar la estructura de "anidamiento" del operador trinario.


Done.