jueves, junio 30, 2005
lunes, junio 27, 2005
De nuevo sobre documentacion de codigo python
Usando epydoc, ya veo una pega.
Al documentar por ejemplo las variables de clase, epydoc es capaz de extraer el tipo, pero lo que no mola nada es que con un comentario al lado de la declaración de la variables no sea capaz de extraer el comentario sobre la variable y lo tengas que hacer en el docstring.
Con pydoxy, se podría mejorar fácilmente.
Además de lo latoso que es, tiene como desventaja de que se te puede quedar documentación no actualizada si eliminas alguna variable.
FHS
FHS = Filesystem Hierarchy Standard. O lo que es lo mismo, un estándar para un sistema de ficheros jeráquico. Describe la estructura de directorios típica de Unix.
viernes, junio 24, 2005
De momento está en beta y sólo disponible para Windows e IE.
jueves, junio 23, 2005
- David Bravo publica un libro sobre P2P y derechos.
- Bram Cohen afirma que Avalanche será un fiasco.
- Schillix: primera distribución para OpenSolaris.
- ¿Linux para perdedores? Theo de Raadt lo dice...
- Detenido en Pontevedra P.Power, "famoso" cracker. La noticia en sí no vale nada, pero hay algún post interesante.
Por cierto, google ha sacado un servicio de Mapas, se llama Google Maps.
La noticia, aquí.
miércoles, junio 22, 2005
martes, junio 21, 2005
En estas noticia de barrapunto:
hay algunos post interesantes (como siempre, conveniente filtrar para eliminar la morralla).
lunes, junio 20, 2005
De barrapunto: ¿Por qué P2P es legal y un servidor FTP es ilegal? Tiene algunos posts interesantes.
viernes, junio 17, 2005
Documentando python
Bueno, tras una pequeña investigacion sobre que herramientas hay disponibles para documentar python puedo afirmar que las dos finalistas son:
- epydoc
- pydoxy (o pydox, ¿cual usar?) (pythfilter + doxygen)
De doxygen que se puede decir que no sepamos ya.... Es la caña de España. La única pega, es que no soporta directamente python. Es por ello que tenemos que usar un filtro que haga una traducción a un lenguaje que ya entienda. En este caso C++.
Pythfilter, traduce codigo python a stubs en C++. La unica pega que le he visto, con unas pruebas muy simples, es que no trata atributos en clases ni variables de ambito global. Con pruebas mas profundas podrían aparecer mas pegas.
La ventaja de pydoxy sobre epydoc, es que los diagramas de herencia son graficos, y proporciona además diagramas de colaboración y de relación entre modulos. El que sean gráficos tiene la ventaja de que pueden ser usados para generar documentación mas formal (ej. documentos de diseño).
Concluyendo:
- si no queremos complicarnos nada la vida, yo usaria epydoc, pero lo complementaria con doxygen para poder obtener diagramas graficos.
- en caso contrario, y disponemos del tiempo, mejoraría pythfilter y usaría epydox.
Sobre A9
Esta currado el buscador este. Sobre todo el tema del clustering y su presentacion.
Como sospechaba, usa por debajo google. Habra que probarlo cuando tenga que buscar algo, a ver que tal se porta... (por cierto, ya hace tiempo mi hermano me comentó sobre él).
jueves, junio 16, 2005
martes, junio 14, 2005
Probando generación de UML desde python
De las herramientas que he mencionado anteriormente, he estado probando pyUMLGraph y pyReverse.
pyUMLGraph
Usa Graphviz para generar los gráficos.
Con los ejemplo moñas funciona bien, pero ya con código mio (usando python 2.3) me dio un par de problemas con un par de tipos (uno de ellos el Set). Tras amañar el código, la hice funcionar.
Lo mas particular es como funciona, ya que no parsea el código y genera los modelos, sino que lo ejecuta y lo genera para el código ejecutado.
Si lo que queremos es documentar una aplicación este compartamiento no es valido, ya que puede quedar código sin ejecutar.
Podria ser mas una herramienta (un poco rara) de ayuda a la depuracion. O también podria servir para genrar documentación de una ejecución partitular.
Otro problema de esta forma de funcionar es que cuando nuestro código se va a ejecutar en un framework, no va a ser posible su prueba.
pyReverse
Se pueden generar archivos para VCG (existe también xvcg) o bien para argoUML.
Ha diferencia de pyReverse, esta no la tengo probada del todo, pero casi.
Al igual que con pyUMLGraph, la probé con python 2.3.
Requiere para su uso la instalacion de pyXML y Logilab´s common library.
Si queremos generar los ficheros para argoUML debemos ejecutar pyArgo en caso de querer generarlos para VCG debemos ejecutar pyVcg.
En la prueba realizada, me posicioné en un directorio por encima del paquete a documentar y use la opcion -p
- Generación para argoUML: no tiene mucha utilidad. Además de que no he logrado ver diagramas de clases (supongo que tengo que jugar con los ficheros de configuración ademas de aprender algo mas sobre argoUML). Lo que quedaria por saber es si se pueden exportar diagramas de clases desde argoUML. Si es así se podría considerar. Una nota final sobre argoUML, no generar código python.
- Generación para VCG: Tengo pendiente ver los diagramas, ya que no me pude bajar la aplicación por no tener acceso a ftp. Lo que si ya he visto es que solo exporta a bmp.
Realmente ninguna de estas herramientas son comparables a doxygen. Quizás la mejor alternativa sería probar el pythfilter para doxygen. Lo que hace es pasar el código python a C++ para luego poder usar doxygen con este código C++.
Ya para acabar el post. Unas herramientas de documentación:
Mas sobre python
Buscando sobre lo de UML me he encontrado este post en un thread que es interesante (habla de python y ruby).
Y un par de directorios con herramientas para python:
Nota: he visto que el segundo incluyen exactamente lo mismo que el 'open directory'.
Del 'open directory' me han llamado la atencion las siguientes tools:
Aparte hay un par de debuggers.
Diagramas UML para python
PyUMLGraph permite generar diagramas UML a partir del código fuente.
Otra herramienta que hace ingeniería inversa de código python es PyReverse. Genera ficheros para ArgoUML.
Buscando un poco en la web, sobre programas de modelado que soporten python me he encontrado:
- PyUt. Esta me da a mi que debe ser pobre, pero nunca se sabe... habría que probarla.
- ObjectDomain. De pago.
Together creo que lo soporta asi, como Rational.
Finalmente me he encontrado argouml (de gratis además). Tienen muy buena pinta, pero no estoy seguro de que lo soporte.
Finalmente... en esta pagina aparece un listado de herramientas de modelado clasificadas por precio. Es muy interesante.
Redes Neuronales en Python
Bueno tras una pequeña busqueda en google sobre el tema he encontrado:
- Neural Intetrator. 'A Neural Net toolkit'.
- An introduction to neural networks. El mismo articulo en IBM DeveloperWorks.
- Weave a neural net with Python.
- Perceptrons: Introduction to Machine Learning.
Y unas entradas de la wikipedia:
Se pueden rebajar estos consumos por lo visto con cajas buenas, y por supuesto teniendo el monitor apagado. En el precio anterior no se si estará incluido el monitor encendido.
lunes, junio 13, 2005
Tratamiento de argumentos de programa en python
Tenemos dos opciones (por lo que he visto):
Sin entrar a profundizar en ambos (ahora no tengo el tiempo). Parece mas potente el segundo.
Ummm, habiendo una busqueda para confirmar mis sospechas, parece ser que es correcto, según indican es mas potente el segundo, pero solo esta disponible a partir de la versión 2.3 de python.
viernes, junio 10, 2005
- EuroIngeniero ¿alguien puede ayudar?
- La ministra de cultura NO responde a los internautas.
- SD de 100GB, ¿cuál es el límite?
miércoles, junio 08, 2005
ummm, tras ver la pagina web, ya no estoy seguro de lo que acabo de afirmar, a ver que me dice Mauro de nuevo...
martes, junio 07, 2005
Unas noticias de barrapunto
- Se inicia un proyecto para simular el cerebro por ordenador.
- ¿Qué clusters recomendáis? Este está muy bien, dan bastante info.
- ¿Recomendáis algún teclado?
lunes, junio 06, 2005
Una pagina de regalo sobre lo mismo. Y un Python Unicode Tutorial.
Y ya para acabar he encontrado esta pagina: How to use UTF-8 in Python.
viernes, junio 03, 2005
Arrays en Python
Inicialmente se disponia de Numerical Python. Actualmente sigue existiendo pero parece que finalmente acabará existinendo solamente dentro de SciPy (Scientific Tools for Python).
Y actualmente se dispone de NumArray.
De hecho, nltk dependiendo de que version de python y NLTK tengamos usa o bien NumArray o bien Numeric.
Hay un post interesante:
"Aunque la noticia salió hace una semana [escomposlinux.org] en otros sitios [eweek.com] no fue muy comentada.
En las comparativas de rendimiento de hace unos años los mejores servicios de LDAP eran el de Novell y el de Netscape, con mucha diferencia sobre los demás. Lo siento por Openldap, pero nunca es triste la verdad, lo que no tiene es remedio
Si os interesa, el rendimiento de un servidor LDAP de Redhat es muy bueno,
... anteriormente llamado Sun Directory Server,
... anteriormente llamado IPlanet Directory Server,
... anteriormente llamado Netscape Directory Server.
Y si quieres saber los tumbos que ha dado este software tan bueno, de empresa en empresa puedes leer el articulo de la wikipedia sobre IPlanet [wikipedia.org]
El rendimiento no es la única ventaja en este LDAP, los padres de este software (Netscape) pusieron especial énfasis en que satisfaciese los estándares del protocolo, ahora estoy migrándo -por imperativo empresarial- a un producto de Oracle y noto aún más esta característica.
Era necesario que hubiese más de un software de LDAP en el software libre, Openldap es buena solución (sobre todo el cambio de versión 1.x a 2.x) pero no se podía comparar a éste software -ahora de Redhat, pero creado por los de Netscape que fueron un poco los padres del protocolo- ni se podía compara con Novell, que de directorios saben un rato (dicen las malas lenguas que Hasecorp contrató a desarrolladores de Novell para hacer Active Directory)
Una nota final: LDAP es un protocolo, no un servicio. Hablais de servidores de RPC? o servidores SMTP? o servidores HTTP? o decís servicio web? servidores de correo? ...medítese"