Planeta Python México

May 17, 2012

Jorge Luis Hernandez C.

El mágico Torrent Search

Con todo lo que ha pasado últimamente con servicios de hospedaje de archivos como Megaupload, Filesonic, Filserve, siempre he confiado que la transmisión P2P será la que prevalecerá. Aunque hay muchos intentos por parte de las industrias para obligar a que los gobiernos den ordenes a los proveedores de ISP de bloquear el tráfico bitorrent, siempre habrá manera de hacerlo.

Sabemos de sobra que lo que no han querido aceptar estas industrias es que deben cambiar sus modelos de negocios hacía internet. Netflix lo ha hecho bien hasta ahora.

Lo comentaba Wil Wheaton ayer, bloquear el tráfico de bitorrent en Internet por que algunos compartirán archivos piratas, es como cerrar las carreteras por que algún ladrón de bancos podría utilizarlas para escapar después de un robo.

En fin, y al punto de este post. Hace unos días, me descargue debido a este articulo, un maravilloso programa llamado Torrent Search, que hace la tarea de búsqueda de torrents tan sencilla sin tener que googlear nada en lo absoluto. La búsqueda la realiza en una gran cantidad de servidores, mismos que pueden agregarse a través de plugins.

Puedes incluso configurar que, una vez seleccionado el torrent, lo envíe a tu cliente de descarga de torrents al instante.

El programa esta desarrollado con Python y GTK, tiene licencia GPL así que es posible meterle mano sin problema. También existe un paquete .deb para distribuciones Debian y Derivadas.

Publicado por lesthack el May 17, 2012 03:22 PM

May 08, 2012

Jorge Luis Hernandez C.

Autenticación Windows con LDAP y PHP en Linux

Últimamente en el ámbito laboral he tenido que implementar algunas cosas nuevas con las que nunca me había topado, y sin duda, no he querido dejar pasar la oportunidad para documentarlo y compartirlo.

En ocasiones, puede resultar muy útil implementar sistemas de autenticación genéricos en el lugar donde trabajas, no todos lamentablemente usan Linux y por el contrario, están tan acostumbrados a usar un sistema de autenticación basado en un Windows Server sobre un dominio.

Por tal motivo, si desarrollas una aplicación web bajo un servidor linux, pero necesitas autenticación existente en un Servidor Windows tienes la posibilidad de hacerlo mediante LDAP.

Según wikipedia: LDAP son las siglas de Lightweight Directory Access Protocol (en español Protocolo Ligero de Acceso a Directorios) que hacen referencia a un protocolo a nivel de aplicación el cual permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. Habitualmente, almacena la información de autenticación (usuario y contraseña) y es utilizado para autenticarse aunque es posible almacenar otra información.

Por ello, es posible utilizarlo de intermediario entre nuestra aplicación y el sistema de autenticación de Windows. En mi caso especifico, desarrolle algunas aplicaciones web’s basadas en PHP y Apache2 corriendo bajo un Ubuntu Server, así que, mostraré solo el pedazo de código que me permite autenticar.

    function authLDAP($username, $password){
        $ldap_domain = 'midominio';
 
        $adServer = "miservidor";
        $ldapconn = ldap_connect($adServer) or die("Could not connect to LDAP server.");
 
        $ldaprdn = $username;    
 
        # Descomentar si la App corre bajo Apache2 sobre Windows Server
        #ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3)

        $ldapbind = ldap_bind($ldapconn, "$ldaprdn@$ldap_domain", $password);
 
        if($ldapbind)
            return true;
        else
            return false;
    }

Fácil, sencillo y útil. Si necesitas mas información o detalles técnicos del modulo LDAP para PHP puedes consultarlo en http://php.net/manual/en/book.ldap.php.

Como punto importante, hay que tener el módulo LDAP para PHP activado. Así que si estas en un servidor Debian/Ubuntu, solo basta con instalar los siguientes paquetes.

$ sudo apt-get install php5-ldap php-net-ldap php-net-ldap2 php-auth

Y confirmar que esté realmente activo el modulo en el archivo /etc/php5/conf.d/ldap.ini de la siguiente manera.

; configuration for php LDAP module
extension=ldap.so

Reiniciamos Apache.

$ sudo /etc/init.d/apache2 restart

Y ya tendremos el modulo activado.

Notas adicionales:

Si tu aplicación web esta corriendo sobre un Apache2 instalado en un Windows Server, activar el modulo basta con descomentar la linea en el archivo php.ini quitando el punto y coma “;”.

extension=php_ldap.dll

Y añadir los módulos al iniciar Apache2 en el archivo httpd.conf

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so

Publicado por lesthack el May 08, 2012 03:17 PM

April 27, 2012

Jorge Luis Hernandez C.

FLISOL Celaya 2012: Plática “Python + WebKit”

Es el 4to año consecutivo que este evento se lleva a cabo en Celaya, única sede del estado de Guanajuato por desgracia. Evento que es realizado dentro del Instituto Tecnológico de Celaya y en el que estuve involucrado en organización y coordinación durante 2 años (2009, 2010).

Este año (como el pasado) estuve de invitado para impartir una plática, y en este caso, con la temática de algunos experimentos que durante mis ratos libres (ya realmente son pocos) he estado probando con python y webkit.

Webkit ya es considerada como una plataforma para aplicaciones, podemos embeberla sencillamente con python para transportar una aplicación web a una aplicación de escritorio, y aprovechar toda la tecnología que Apple, Google y la comunidad ha venido desarrollando.

Los a credos a Python como yo, sabemos que este lenguaje es hermoso, pero mas allá de la estética en sintaxis, encontramos una infinidad de librearías para casi todo, y es por ello que juega un papel importante.

Dejo la presentación para aquellos que quisieran darle una simple vista, y en breve subiré los pocos códigos de ejemplo que presenté.

Publicado por lesthack el April 27, 2012 02:39 PM