Monthly Archives: noviembre 2007

KeDElicioso

Aunque le falta un poco de azúcar todavía, puedo decir que hice un plug-out para el Konqueror y los marcadores de del.icio.us. Es un plug-out porque todavía no lo pude meter adentro del navegador. Para esto se necesita tener acceso a la barra lateral que se llama KonqSideBar y está bastante verde todavía en PyKDE, de hecho creo que no está :) .

Estoy convencido que quiero seguir usando el Konqueror, y no tener estos marcadores que sí tenía en Firefox, me impidan seguir usándolo. Además tenía ganas de empezar a ver un poco de HTTP-Auth y demás cosas en Python, de las cuales no tenía idea.

Asique me puse a investigar un par de días. Bajé el plugin que yo ya conocía y me puse a ver cómo funcionaba. Descubrí varias cosas ahí: el plugin para el Konqueror no era más que un archivo externo y que no tenía nada que ver con este. Estaba hecho Perl y se comunicaba con el navegador por medio de DCOP (una de las tantas grandes cosas que tiene KDE). DCOP, rápidamente, es una forma de comunicarse con los programas que están en ejecución, por ejemplo al Konqueror le puedo preguntar que url tiene abierta, cerrar una sesión de Kopete, etc…

Por otro lado, también descubrí que había una API de del.icio.us que explicaba cómo se debía manejar el servicio, cómo eran las consultas y como eran las respuestas. Qué te convenía hacer y demás. Estaba muy bien explicado, la idea es abrir distintas urls con algunos parámetros que se les pasan y esta te devuelve un XML con los Post, Tags y demás que se necesita.

Lo primero que hice fue ver cómo manejaba esto el plugin de Perl, pero lo hacía bastante feo, o por lo menos yo no lo entendía (todavía no sabía que existía esta API). Después conseguí un programita en Python que hacía algo similar a lo que yo quería pero no funcionaba :P . Miré el código y ahí recién descubrí que había una API.

El código no funcionaba porque tenía las direcciones de las páginas en cualquiera y le pasaba cualquier cosa a estas direcciones también. Después leí que la API puede cambiar sin ningún tipo de aviso, sin respetar las versiones anteriores y de la forma que se le dé la gana. En este momento me pregunté: ¿Cuánto tiempo puede durar mi programa funcionando? :D

Me puse a jugar un rato con la API, fue un rato bastante corto, ya que te limitan las consultas a la misma para no sobrecargar el servidor, hice 3 boludeces y se me terminó la joda. Una cagada bah! Asique seguía haciendo cosas por otro lado, y cuando pasaba cierto tiempo volvía a intentar y probar las funciones que había escrito y suponía que funcionarían.

Me filtraron dos veces más y me cansé, me dí cuenta que esto así no podía ser porque si abrías dos veces el navegador y este bajaba los marcadores a la segunda vez no los ibas a poder ver porque estabas filtrado. Además de tener que bajar todos los marcadores cada vez que entrabas al navegador con su correspondiente consumo de ancho de banda.

Me puse a buscar la forma de mejorar esto y me bajé el archivo XML a disco y lo trabajaba desde ahí. Aunque esto era un poco feo, tenía que hacer consultas como: ¿Cuáles son todos los marcadores que tienen tal etiqueta?, ¿Qué marcadores tienen la palabra “linux”?, etc… Asique lo pensé dos segundos y me hice una base de datos con SQLObject que algo sabía de cuando estudié TurboGears y era una boludés.

El problema era que si agregabas un marcador desde otra computadora, este actualizaba los marcadores de la página, pero no la base de datos. Investigué un poco más y encontré la función update en la API de del.icio.us, que indica cuándo fue la última vez que el usuario hizo una modificación. Asique comparando esta con la última fecha de modificación de mi base de datos queda chanta. Pero… ¿cómo saber la última modificación de la base de datos? Aja! Te la encargo. Yo hice una tabla en la que mantengo esa fecha por el momento. Una negrada bah!

Por último empecé a hacer la GUI con PyKDE, primero por el diálogo de Agregar un Marcador, ya que supuestamente lo otro lo iba a meter en el Konqueror (que todavía no he podido :( ), probé esto y funcionaba perfecto. Asique seguí con la parte del filtrado de marcadores, etiquetas y las consultas a la base de datos para estas.

Terminó saliendo algo bastante bueno, por lo menos para mi gusto, y si lo puedo integrar completamente con el Konqueror me va a ser algo muy útil.

Al principio dije que le falta un poco de azúcar todavía porque el sistema de DCOP le asigna un nombre a cada uno de los programas que están en ejecución y soportan este sistema. Pero si se puede tener más de una aplicación del mismo programa, al nombre de esta le suma un número, que este es su PID. Al no estar integrado con Konqueror este número no lo puedo saber ya que la forma sería haciendo un os.getpid() pero como lo estoy corriendo fuera del navegador me devuelve otro número. Asique por el momento esto hay que ponerlo a mano.

Además no hice alguna forma de ingresar el nombre de usuario y la contraseña todavía, porque no he tenido ganas. Hice un archivo config.py en el cuál se pueden poner estos datos. Total, como nadie lo va a usar no me calenté mucho, y si alguién lo quiere probar y no puede me pregunta y le doy una mano :)

El código está lo que se dice horrible, tengo pensado cambiarlo todo para estructurarlo de alguna forma mejor, como no pensaba hacer nada de lo que hice fue saliendo así de feo :D

Hice una página para este programa en la que explico algunas cosas más, hay screenshots, se puede descargar el código, etc:

http://grulicueva.homelinux.net/~humitos/KeDElicioso/

¿Un escritorio? KDE. – Primera parte: Konqueror

konqueror

Sin dudarlo esa es mi respuesta. Hace algunas semanas, quizás un mes, no tengo idea. Instalé Ubuntu en mi otra pc por medio de la red. Le puse esta distro de linux (con GNOME) ya que la pobre tiene algunos problemas serios y es un poco lenta.

No viene mucho al caso tampoco. El punto importante en esto es que traté varias veces de utilizar este entorno desde la otra pc, pero no pude adaptarme todavía. GNOME tiene muchas cosas que no me gustan, y algunas pocas que sí. Me siento mucho más cómodo con KDE por varios motivos.

Cuando quise configurar la pc con Ubuntu, no me quedaba otra que usar GNOME, además esa era la idea. Varias veces intenté cambiarme, no sé bien porqué, supongo que por
una cuestión de rendimiendo. Hay muchos que dicen que KDE es mucho más pesado que GNOME, quizás sea verdad.

Lo primero que noté, es que la mayoría de los diálogos de GNOME no tienen el botón cancelar, como para deshacer los cambios. Un ejemplo concreto. Si hacemos botón derecho en el escritorio (esto es bien Windows) como para cambiar el fondo de pantalla del escritorio (no digo el camino correcto porque no lo sé). Elegimos uno, al azar, que sé yo, y si luego queríamos dejar la opción como estaba, no podemos, ya que de la única forma que podemos salir es aceptando.

Esto lo confirmo cuando en mi máquina con KDE instalo el programa Día (para hacer diagramas), en el que noté exactamente los mismo. No lo estoy cuestionando, ni diciendo si esto es mejor o peor. Gustos son gustos. A mí particularme esto por ejemplo no me gusta.

En estos últimos días aprendí muchas cosas sobre Konqueror, el navegador web, explorador de archivos, lector de páginas de manuales, y un gigante etcétera, por defecto del KDE. Estuvimos con leo_rockway, un flaco que conocí en el canal de irc de ubuntu argentina (#ubuntu-ar en freenode.net) y además un beta tester oficial de todos mis programas :P .

“El que busca siempre encuentra”, dicen. Hace un tiempo, yo le había comentado a Leo que quería usar los bookmarks de del.icio.us en el Konqueror y no podía. Esto era uno de los motivos por los cuales no dejaba el Swiftfox.

Pasó un largo tiempo, instalé miles de plugins para el Swiftfox, y encima me acostumbré a ellos, mouse gestures, diccionario español para la corrección ortográfico y demás. Después de este tiempo y un poco más, recibo un mail de Leo que decía que había encontrado un plugin para el Konqueror que era para los bookmarks de del.icio.us. Lo probé, pero no me funcionó, tampoco le dí mucha bola porque además tenía los mouse gestures y sabía que el Konqueror eso no lo tenía, asique fue.

Sigió pasando el tiempo, y cada vez necesitaba hacer más y más cosas. Y siempre le volvía a dar una oportunidad más al Konqueror (de hecho, me gusta mucho más que cualquier otro navegador, por eso seguía insistiendo) porque descubría cosas nuevas. En este momento descubrí que presionando la tecla Control, Konqueror te muestra sobre los links unas letras y presionando una de las letras que muestra se hace “click” en ese hipervínculo. Buenísimo, a veces no queremos usar el mouse y esto para esos casos viene petacular!

Seguía pasando el tiempo, y yo al Konqueror no le daba bola, aunque le seguía encontrando cosas que lo hacían cada vez mejor. ¡Yo quería mis bookmarks y mis mouse gestures! Leyendo el blog de nercof, en un artículo que nada que ver con el Konqueror, él usa GNOME y Firefox, asique ni mú. Descubrí que presionando Control+Shift+Arriba o Abajo empieza a desplazarse automáticamente muy sutilmente para la dirección que presionamos. Si presionamos nuevamente aumenta la velocidad. Puede ser útil para leer un texto largo, a una velocidad relativamente baja. Yo no me acostrumbré todavía, pero lo probé y está bueno.

Tampoco hizo que me cambie de navegador, pero al menos me hizo darle otra oportunidad y saber que siempre estaba ahí mi navegador esperándome.

Desde que tengo hosting en el servidor nuevo, necesito acceder varias veces por ssh. A esto lo hacía por medio de una consola o con el mc. Pero para copiar ficheros era bastante embolante usar la consola asique me manejaba con el mc para esto.

Un día en el canal de PyAr escucho que StyXman menciona algo así como ¿Humitos estás conectado con el Konqueror por fish? A lo que respondí que no, que estaba usando el mc. Osea, ni idea de lo que me estaba hablando. Leí algo y ví que se podía acceder del mismo estilo que el mc pero con el Konqueror. Instalando un paquete (kfish en Ubuntu), poniendo en la barra de direcciones:

fish://usuario@host/carpeta/a/acceder

Podemos ver en el Konqueror los archivos que están en esa máquina como si estuvieran en la nuestra, y así poder utilizar cualquier programa que tengamos instalado en nuestra máquina con los archivos que se encuentran en la otra. Por ejemplo el Kate, ya no más Vim :) .

Además me hice un bookmark de esto, así no tengo que escribir más la dirección de la máquina a las que quiero acceder. Por lo que esto me hizo dejar otra vez el Vim, como así también el mc.

Otra cosa, si pongo un cd de audio y lo exploro con el Konqueror, se pueden ver muchas carpetas, con los nombres: Ogg, Mp3, Wav, etc… Cada una contiene todos los temas del disco en el formato especificado por la carpeta. Osea arrastrando esa carpeta a una de nuestro disco, el Konqueror automágicamente nos convierte los temas al formato especificado. ¡Genial!

También se pueden leer los man pages de los comandos desde el Konqueror poniendo en la barra de direcciones este comando. Con las comodidaes que esto trae, como agrandar la letra, y verlo con un formato un poco más amigable que desde la consola:

man:/comando

¿Ya está? No para nada. El Konqueror tiene mucho más. Si quiero pedirle la ayuda de un programa, hago:

help:/programa

Se pueden habilitar los “Accesos rápidos para web” desde las configuraciones del Konqueror, para por ejemplo buscar un montón de cosas en la web. Algunos ejemplos pueden ser, poniendo gg:humitos, busco humitos en Google, qt3:qtimer busca qtimer en la documentación de Qt, en2es:hello busca hello en wordreference… ¿Qué más querés?

Y por último, creo que solo porque me cansé de escribir, y no porque Konqueror termine acá. Mi amigaso leo_rockway hoy me comentó que pudo hacer funcionar los mouse gestures en Konqueror. Incluso este los trae por defecto, no es un plugins aparte ni nada, pero no vienen activados. Para activarlos hay que ir a kcontrol, luego regional y accesibilidad, introducir acciones, preferencias generales, importar nuevas acciones y colocar la dirección:

/usr/share/apps/khotkeys/konqueror_gestures_kde321.khotkeys

¡LISTO! Tengo los gestures que tanto estaba buscando, y además certificado por leo_rockway. También tiene sesiones este navegador, está integrado con el gestor de descargas KGet, tiene soporte para la cartera de KDE, y miles cosas más.

Obviamente, también tiene cosas malas, pero muy pocas. Yo hasta el momento le encontré sólo una: No funciona del todo bien Gmail, me marca como que tiene errores la página, el navegador. Otra cosa que no me gusta, no digo que sea mala esta, pero a mí no me gusta. El plugin que hasta el momento encontré para del.icio.us, no me gusta para ná.

¿Todavía no usás Konqueror? ¿Qué esperás?

PD: Este post lo escribí de una forma rara, pero muy cómoda: reStructuredText, es simple, fácil, rápido.. :D

Hosting nuevo – Vida nueva

¡Mission acomplished! Hace un rato que termino de mudarme. No está demás decir que en PyAr (Python Argentina) hay gente que tiene muy buena onda con la respuesta de los mails que uno manda a la lista. Pero además, tienen buena onda en otros sentido también.

A través del canal de irc de pyar (#pyar en freenode.net) conocí a StyXman (o StucKman); que quitando el problema de doble personalidad que tiene, es uno a los que hago referencia arriba.

Muy sutilmente, hace un par de días (dos exactamente :P ) me ofreció hosting en su servidor casero. Le dije que lo iba a pensar y que era mejor que lo charlemos por mails, ya que yo tenía demasiadas dudas al respecto. ¿Cómo era el servicio? ¿Qué tengo que hacer? ¿Cuanto tengo de subida? ¿Cuanto de bajada? Que sé yo, una cantidad de preguntas que creo que cualquier persona que va a un hosting algo bastante distinto a lo que es Google, tiene en su cabeza.

Bueno, después de un par de mails de idas y vuelvas, nos pusimos de acuerdo. Arreglamos para empezar a hacer las cosas hoy (ya ayer) por la tarde. Enseguida me creó una cuenta para poder acceder por ssh, si bien yo tengo conocimiento sobre esto, tuve que recurrir a mis artículos anteriores sobre este comando, para refrescar algunos conceptos.

Bajé todos los repositorios de Google, como comenté en mi post anterior. Pero al final tuve que modificar algunas cosas en esta mudanza. Cuando bajé los repositorios de google lo hice con el comando:

$ svk mirror //local http://<proyecto>.googlecode.com/svn/

Lo cual me dí cuenta que está mal. Porque esto te crea una carpeta local en el repositorio y dentro de ella te manda todas las otras (trunk, branches, tags). Entonces a la hora de hacer el svnadmin load me quedaban carpetas indeseadas. Asique busqué un rato, y me dí cuenta que el error era el //local pero en casi todos los ejemplos que ví en internet estaba así y no explicaba mucho el porqué. Por lo que yo lo dejaba así cayadito.

Lo que hice en un principio fue bajar todos los repositorios de google a mi máquina, para luego subirlos por ssh al servidor. Después me avivé y me dije: ¿Porqué no ejecutar mi script de Python que me baja todos los proyectos en el servidor? Ya sabía que tenía Python en el servidor asique iba a funcionar, lo único es que me faltaba el comando svk, pero enviando un sólo mensaje al administrador del servidor en pocos minutos tenía lo que necesitaba instalado.

Bueno la cuestión es que después de un par de horas tenía todo andando en el servidor mal llamado mio. En cuanto al llamado por StyXman hacia mi persona como “iluso”, no tiene idea de lo que está diciendo. En el mismísimo momento en el que se fue a dormir, busqué todas las pass del sistema y empecé a cambiar todo tipo de configuraciones de la máquina adaptándola a mis necesidades. Ja! En realidad todavía no sé ni como cambiar la clave que me dió por defecto de mi cuenta de usuario :( . Ya veremos, todo se aprende… tampoco busqué.

“Asique bueno”, diria alguna persona que conozco. En cuanto tenga todo bien configurado se los comunico a mis amigos co-desarrolladores de algunos proyectos para empezar a meterles pilas a este repositorio.

Me gustan varias cosas de esto. Para empezar sé como están funcionando algunas cosas ahí, y soy mi propio administrador de los repositorios, osea, no dependo de google si quiero borrar el repositorio a la mierda cuando quiero (hace un par de semanas hice un “Delete proyect” en google y todavía está ahí :( ), hacer mis backups, subir cosas, bajar cosas… que sé yo. Por lo menos hasta que me reten, me echen o pase algo. Por algo dicen que no todo es color de rosas, pero esto pinta bastante bien.

Vamos a ver cómo se va desarrollando con el tiempo esto, espero no tener ningún problema y no complicarle la vida a StyXman, o a su alma gemela StucKman, haciendo cagadas…

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 421 seguidores