1


Escribo esta entrada a colación de una muy interesante entrada en Barrapunto. Me ha parecido extremadamente interesante, especialmente los comentarios. Parece que el avance del Software Libre en los escritorios es cada vez más patente. Hace unos pocos años nadie tenía “Linux” en el escritorio, y pocos en los servidores. A día de hoy, los sistemas operativos basados en GNU/Linux ya dominan el mercado de los servidores (en la organización en la que trabajo son aproximadamente el 80% de los servidores) y parece que poco a poco se están abriendo paso en los escritorios.

¿Qué ha hecho posible esto?¿Qué camino habría que seguir para que dentro de 5 ó 10 años el 80% de los escritorios use este sistema?

(más…)

Aquí va una lectura muy recomendable para que los programadores de python se la lean una una vez en la vida. Python como a guido le gusta que se vea

Como no me voy a acordar de nada, hago un resumen para las cosas que se me van a olvidar.

  • indentación: 4 espacios. No tabs.
  • líneas a 80 caracteres, rompiendo después de los operadores
  • separar funciones y clases por dos líneas vacías
  • separar métodos y/o funciones por una línea vacía
  • grupos de funciones por dos o más líneas
  • enconding: utf-8 (será preferido para python >=3)
  • los imports a tu propio código, que sean absolutos
  • un import por linea salvo los from xxx import yyy,zzz
  • paréntesis y corchetes siempre pegados a ambos lados de las cosas
  • dospuntos, comas y puntoycomas pegados a la izquierda y con espacio a la derecha
  • operadores con 1 espacio a ambos lados
  • el igual de los parámetros pasados por nombre, pegado a los dos lados
  • escribe docstrings para toda cosa que sea pública, tanto el módulo como las clases como los métodos públicos. Incluye también los difíciles (docstrings en pep 257)
  • Los comentarios mejor que sean de una línea, comiencen con mayúscula y acaben sin punto, solo cuando sean estrictamente necesarios
  • módulos y packages: minusc y cortitos
  • clases y excepciones: LasPublicas y _LasPrivadas
  • variables globales y funciones: separadas_por_subrayados y los privados con _underscore_delante
  • si un nombre colisiona con algo de python y no lo puedes evitar, añade subrayado al final
  • crea una clase para cada excepción
  • aprovecha el else del try-except para cuando las cosas van bien

Y el siguiente fisco de código es interesante si usas svn/cvs, para ponerlo después de la docstring del modulo:

__version__ = "$Revision: 63990 $"
# $Source$

Oracle es una de las mayores empresas dedicadas a la informática. En sus inicios disponían de una base de datos que se ha convertido (por derecho propio) en la referencia en el mundo empresarial. Recientemente estoy sufriendo viviendo mi primera experiencia con este tipo de tecnologías por cuestiones de trabajo y por supuesto tengo unos comentarios que hacer a la comunidad. Particularmente me ha tocado enfrentarme a Oracle Identity Managment y en concreto Oracle Internet Directory (OID).

La elección de esta tecnología en detrimento de otras con las que me siento más cómodo y que cuentan con mayor cantidad de documentación no la he tomado yo sino mi jefe (que es un técnico cualificado). Sospecho que los motivos que le han llevado a adoptar esta medida tienen que ver fundamentalmente con cuestiones de inercia; pero en muchos sentidos es una decisión correcta debido al entorno. Los productos de Oracle se integran muy bien con los productos Oracle. Al margen de que ya se utilizan bases de datos y otros productos Oracle en un futuro próximo se empezarán a utilizar varias aplicaciones diseñadas para correr en el servidor de aplicaciones de Oracle. Utilizar OID en este entorno te simplifica las cosas ya que puedes disponer de un sistema de Single Sign On de manera sencilla. Al margen de esto OID tiene algunas ventajas con respecto a OpenLDAP como por ejemplo que se integra con Active Directory y con aplicaciones de terceros (puede integrarse mediente aprovisionamiento de usuarios o sincronizarse uni o bidireccionalmente).

Por otro lado también tiene cosas que me han parecido lamentables. En este caso el consumo de recursos es bastante razonable; pero la cantidad de esfuerzo que requiere una simple instalación es bestial. Si con OpenLDAP podemos utilizar el sistema de paquetes de la distribución y ya tenemos un ldap listo para funcionar con OID tenemos que cumplir un montón de requisitos hardware y software así como instalar un repositorio de metadatos y el sistema de ldap propiamente. Una instalación limpia del sistema completo ocupa algo más de 4Gb y lleva del orden de un día de trabajo. Además y mucho más importante la cantidad de información disponible en la web sobre OpenLDAP es infinitamente mayor que la que existe sobre OID y los esquemas vienen con el sistema utilizado por el primero aunque hay sencillas herramientas para convertirlos.

Tras haber invertido casi un mes (partiendo de un conocimiento 0 de las tecnologías de Oracle) tengo que decir que me seguiría gustando haber podido utilizar la solución libre debido principalmente a la documentación y comodidad que ello implica.

Personalmente utilizo de manera intensiva el RSS. Lo uso incluso para mantenerme al tanto de los proyectos en los que participo. En algunos de estos proyectos los feeds no están accesibles a todo el mundo, y es necesario hacer login en la página del proyecto para que se te permita verlos.

El lector de RSS que utilizo es akregator integrado dentro de kontact y no tiene a priori nada que te permite iniciar la sesión de algún modo. Lo mismo es que soy muy tontito pero hasta hoy no se me había ocurrido la posibilidad de almacenar una sesión en konqueror para intentar poder utilizar feeds privados. Y funciona (creo).

Estoy utilizandolo para sindicar un dokuwiki en el que todas las páginas son privadas. Tengo que probarlo con algún trac (¿el de gulic?) en el que los feeds sean privados, ya que con esto cubriría casi todas mis necesidades en este sentido.