@snisnik esta bueno.. Pero es bastante incomodo acostumbrarse

Módulo readline en OSX

Me emputecí cuando vi que en OSX no funcionaba el modulo readline de python.
La solución era simple…

1
sudo easy_install readline

Drupal + Lighttpd + URLS bonitas + subdirectorio

Si, asi de largo. Tuve que instalar un drupal en un servidor que usaba lighttpd, el problema es que yo lo mudé desde un apache y el drupal usaba el modulo de urls bonitas.. Cuando lo mudé al lighttpd (que no usa mod_rewrite) el sitio no anduvo más ni para atras ni para adelante.

La cosa es que encontré la solucion, pero solo si el sitio estaba sobre el root del vhost, lo que dió mas dolor de cabezas. Al fin encontré la solucion acá con un pequeño script lua y usando lighttpd-mod-magnet.

La solución es bastante simple.. Necesitamos mod-magnet (probablemente necesites root para todos los pasos)

1
2
apt-get install lighttpd-mod-magnet
lighty-enable-mod magnet

Despues hace falta el script lua que hace la magia

1
2
3
cd /etc/lighttpd
wget http://more.zites.net/morefiles/lighty-drupal-lua-conf.tar.gz
tar xvzf lighty-drupal-lua-conf.tar.gz

Luego, activarlo para el host

1
2
3
$HTTP["host"] =~ "your.domain.example.com" {
  include_shell "./drupal-lua-conf.sh"
}

Si el drupal está funcionando sobre un sub-directorio, podes pasarle el sub-directorio como parámetro al script y anda de perlas, algo como

1
include_shell "./drupal-lua-conf.sh drupal-5"

Y voilá, tenes drupal andando en lighty…

Me hizo doler la cabeza una mañana larga esto, por eso lo dejo por acá a mano

Mis amigos, usando Python

Hace un tiempo que vengo con un pequeño proyectito por trabajo que parecía ser una pavada, pero resultó ser un dolor de hígado bastante, bastante fuerte.

La idea es obtener la lista de amigos de varios contextos distintos, entre ellos Gtalk y Facebook. Ambos, por suerte, usan xmpp como protocolo para manejar las aplicaciones de chat. En PHP logré hacer (en parte) lo que quería, pero con todas las librerías que probe tuve problemas de velocidad, tamaño, timeout, hacian una parte y no la otra.

Asi fue que pedí permiso para probar con python y por suerte al cliente le gustó. Buscando no más de 10 minutos encontré la librería xmpppy, y ésto me hizo recordar porque python es TAN lindo.

1
2
3
4
5
6
7
8
9
10
11
12
13
import xmpp
 
class FacebookClient(object):
    def __init__(self, user, password):
        self._cl = xmpp.Client('chat.facebook.com')
        self._con = self._cl.connect()
        self._auth = self._cl.auth(user, password)
        self._roster = self._cl.getRoster()
        self._nameAndJid = {}
        for user in self._roster.getItems():
            self._nameAndJid[user] = self._roster.getName(user)
    def getNamesAndJid(self):
        return self._nameAndJid

Y modificandolo un poco para Gtalk

1
2
3
4
5
6
7
8
9
10
11
class GtalkClient(object):
    def __init__(self, user, password):
        self._cl = xmpp.Client('gmail.com')
        self._con = self._cl.connect(server=('talk.google.com',5222))
        self._auth = self._cl.auth(user, password)
        self._roster = self._cl.getRoster()
        self._nameAndJid = {}
        for user in self._roster.getItems():
            self._nameAndJid[user] = self._roster.getName(user)
    def getNamesAndJid(self):
        return self._nameAndJid

Para probarlo:

1
2
3
if __name__ == "__main__":
    # print FacebookClient('','').getNamesAndJid()
    print GtalkClient('','').getNamesAndJid()

Y así fue que en menos de 20 minutos tengo lo que buscaba, el roster (lista de contactos) de facebook y gtalk/gmail/orkut lista para usar en lo que sea que lo necesite.

Además si hubiese querido, xmpppy me permite chatear o lo que sea me permite xmpp, porque es una libreria con el api completo..

Que lindo es volver a escribir python.

Howto chroot – Levantar tu linux desde un live-cd

Ayer me explotó la laptop, no literalmente, sino que actualice la máquina y nunca mas booteo. Lo que habia pasado es que durante la instalación, no se pudeo re-configurar algo del kernel y quedó todo mirando al techo. Ya pensando que iba a tener que reinstalar todo y empezar de vuelta, se me ocurrió entrar a #archlinux en irc.freenode.org y me recomendaron hacer chroot a mi disco, y probar re-instalar el kernel nuevo, el problema es que jamas habia hecho un chroot en mi vida.

La cosa al final es bastante sencilla, tenés que tener un cd de algún sistema operativo con live-cd, yo usé ubuntu porque tenia en la mochila y otro detalle, tenes que saber como están configuradas las particiones de tu equipo, en mi caso:

/dev/sda1 => /boot
/dev/sda3 => /
/dev/sda4 => /home

Sabido eso, empezamos con bootear con el live cd y esperar a tener un shell o un entorno grafico, y empezamos en una consola.

cd /
sudo mount /dev/sda3 /mnt
sudo mount /dev/sda1 /mnt/boot
sudo chroot /mnt /bin/bash

Y tenemos un shell de root como si estuviesemos en nuestra máquina. Ahora tenemos que hacer lo que sea tengamos que arreglar, en mi caso:

sudo pacman -S kernel26

Y listo, tenia mi equipo arreglado y listo para bootear de vuelta.

Me voló la cabeza lo fácil que fue, yo ya me veia reinstalando todo, pero no hizo falta. Linux rulz.

Back to KDE3

Asi es, despues de un par de meses.. vuelvo a KDE 3… Razones?, no se.. pero I Felt Like Doing IT…

La verdad que extrañaba KONSOLE, y GTK-QT-Engine

17 nov

Comentar

Simple Gallery 1.0a

Bueno, les paso a mostrar una galeria de imagenes que terminé de armar basada en FredGallery.

Es una galeria de imagenes bien simple hecha en PHP, lo bueno que tiene es que no necesita ninguna base de datos y muestra las imagenes directamente del arbol de directorios, recorriendolo y mostrando todas las imagenes que encuentra. De esta forma no hay que uplodear las imagenes al servidor.

La mejor forma de utilizarlo es creando en el directorio de la galería un symlink a los directorios con las imagenes y voilá, ya tenes una galeria de fotos.

Las caracteristicas originales de la galeria:

  1. Todo se configura desde el archivo config.php.
  2. Se puede editar el .css para cambiarle el estilo al sitio
  3. Simple de cargar las fotos, solo hay que meter las fotos o los directorios con las fotos en el directorio de la galeria y sale andando.

La diferencia que tiene con la version original es:

  1. Titulo configurable desde el config.php
  2. Al mostrar la  imagen la muestra en un tamaño configurable (config.php) en lugar de mostrarla en tamaño completo. Todavía se puede ver en tamaño completo haciendo click sobre la imagen.

Para ver una demo: Mi Galeria

Descargar (14k)

También te puede servir ésto, para editar las imagenes de la galeria todas juntas.

OpenOffice 3.0 – Apreciación

La verdad que por ahora openoffice 3.0 me encanta…

Por ahora anda de lujo, el único problema “feo” es que en fluxbox los menús no me quedaron igual que con openoffice.org 2.4, entonces tuve que buscar un poco mas antes de abrirlo.

  • Se acabó el problema de no poder ver archivos docx, ahora podemos, y anda bastante bien.
  • Se acabó el problema de las tablas feas en archivos .doc. Antes siempre las tablas creadas en MSWORD se veían feas y hasta descuajeringadas, ahora ya no, y se ven lindo y reconoce bien las posiciones
  • Seguimos teniendo el problema de las imágenes esparcidas por todo la página en archivos .doc. Sigue estando el drama ese de que las imagenes aparecen en cualquier lado, o sobre el texto, o cortada entre dos paginas, todavía no encontré como resolverlo.
  • Se mimetiza mejor en KDE. Ahora se ve mas lindo y menos cuadradoso si no tenes el gtk-qt-engine instalado como yo
  • Mejores iconos y menúes mas chicos. Siempre me molestaban los menús gigantes llenos de botones que tenia openoffice, ahora sigue estando lleno de botones, pero al menos son mas “lindos” y quedan mejor ubicados

A medida que vaya probando mas cosas, sigo subiendo mas detalles que voy encontrando..

Instalar OpenOffice.org 3.0 en Debian

Bueno, esto es algo que tenía ganas de hacer hace un rato pero no andaba con tiempo para ver como se hacía, hoy lo intenté y anduvo..

Es bastante fácil, lo que hay que hacer es primero bajar los debs necesarios, para eso en una consola:

mkdir openoffice3

cd openoffice3

wget http://openoffice.bouncer.osuosl.org/?product=OpenOffice.org&os=linuxinteldeb&lang=en-US&version=3.0.0

Una vez terminado de bajar… descomprimimos todo..

tar -xvf OOo_3.0.0_LinuxIntel_install_en-US_deb.tar.gz

Terminó de descomprimir, ahora hay que empezar ra instalar.. La verdad que esto de instalar TODOS los debs no me gusta, pero la verdad que preferí hacerlo antes de ponerme a probar con cada uno de los debs a ver que onda.. despues si tengo pilas me pongo a hacerlo..

cd OOO300_m9_native_packed-1_en-US.9358/DEBS

sudo dpkg -i *.deb

Después, la integracion con los desktops

cd desktop-integration

sudo dpkg -i *.deb

Yo tuve problemas al hacer el ultumo comando porque me decia que tenia problemas con pisar otro paquete, me hice el heavy y le hice un force.. asi:

sudo dpkg –force-all -i *.deb

y listo el pollo… anduvo de diez… Espero que les haya servido..

SVN Server en Debian

Bueno, acá va un how-to cortito y al pié de como levantar un servidor svn en debian. No soy ningún experto ni mucho menos en el control de versiones, pero esto que estoy por mostrar lo usamos para hacer trabajos practicos en la facu, y anda bastante bien.

Ok, primero, instalamos lo necesario

sudo aptitude install subversion

Luego, decidimos donde poner el directorio root del svn, lo normal es en /var/svn pero yo lo tengo en /home/svn porque es el disco mas grande y el que no se modifica si por alguna razon re-instalo, Ademas lo comparto entre distinas distros

sudo mkdir /home/svn

Ahora, es cuestion de crear el nuevo repositorio

svnadmin create /home/svn/[nombre del repo]

Atentos al nombre del repo porque es el nombre con el cual van a tener que conectarse despues

Ahora, editamos los archivos de configuracion

sudo kate /home/svn/[nombre del repo]/conf/svnserver.conf

En lugar de kate pueden usar el editor de texto que mas les guste (gedit, nano, mcedit, vi, vim)

Aca lo que tenemos que hacer es descomentar las lineas que dicen:

# anon-access = read
# auth-access = write

De modo que queden:

anon-access = read
auth-access = write

Ahora, definimos los usuarios y contraseñas al repo

sudo kate /home/svn/[nombre del repo]/conf/passwd

Este archivo se edita de forma que queda [nombre de usuario] = [contraseña]
entonces, por ejememplo, para crear el usuario usuario1 con la clave 1234
Tendría que quedar algo así

[users]
usuario1 = 1234

Bien, ahora, hay que levantar el servidor, para eso corremos

sudo svnserver -d -r /home/svn

y a partir de ahora podemos conectarnos al repo desde la direccion:

svn://[dominio]/[nombre del repo]

Lo primero que hay que hacer es darle al repo la primer carga de datos. Eso se hace con import. Entones, en algun directorio que tenemos en el sistema que queremos hacer que quede controlado por versiones (por ejemplo el proyecto que estamos por hacer), hacemos:

svn import [directorio del proyecto] svn://[dominio]/[nombre del repo] -m “[mensaje del primer import]“

No olvidarse las comillas!!.. Y listo el pollo.. Por cualquier cosa, pueden hacer

man svnserve
man svnadmin
man svn
svn help

Si quieren leer para hacer cosas mas complicadas

Duda existencial

Cuando instalo windows, al principio te pide que le digas tu ubicacion geografica, le digo ARGENTINA, me pone de idioma de teclado, INGLES (ok, te lo perdono porque puedo estar usando un teclado en cualquier otro idioma), pero mas tarde me pone el uso horarior de BRUSELAS wtf!.. o sea, ta todo bien, pero pedimelo después si quiero cambiar el uso horario, tengo que quedarme 40 minutos al frente de la maquina por si al puto instalador se le ocurre preguntarme algo. Podrían ser un poco mas inteligentes, preguntar todo al principio, y listo..

Todo sea por aprobar una materia en la facultad… my got.. al menos no deje de usar mi linux para hacerlo

Free Image Hosting at www.ImageShack.us

Mocosoft