Entradas

Mostrando entradas de 2011

Metodología Ágil

Imagen

Gestión de configuraciones de software

Imagen

Calidad del software

Imagen

vipera 1.0.0

Imagen
Hola. Acabo de subir vipera 1.0.0 en:  http://code.google.com/p/vipera/ . vipera está bajo licencia GPL 3 , por lo que se puede modificar, distribuir y hacer lo que se considere siempre bajo los términos de la General Public License , versión 3. No he creado instaladores, puesto que no me ha dado tiempo, y como estoy en fase de pruebas y depuración de cosas, pues no me ha parecido conveniente. Para hacer funcionar vipera únicamente hay que hacer: python vipera.py Si diera algún problema de fichero de configuración.... (perdón): python vipera.py -r Si encontráis alguna cosa rara, algún mal funcionamiento os agradecería eternamente que me lo comentaseis. vipera es un proyecto, que ahora que está terminado, veo que puede mejorarse en muchas cosas, pero la idea era lo primero, así que a partir de dicha idea se puede ir a otros puertos, con otras tecnologías, como OpenGL en vez de OGL . NOTA: Hay un vídeo demostrativo de su funcionamiento en: https://www.facebook.c

wxPython: cómo controlar los PyDeadObject

Imagen
Hola. En este artículo vamos a ver una manera muy fácil de poder controlar los errores producidos en wxPython cuando se intenta acceder a widgets que han sido destruidos. Y vamos a verlo con el siguiente ejemplo: # -*- coding: utf-8 -*- import wx class mi_frame (wx.Frame):     def __init__(self, parent):         wx.Frame.__init__(self, parent)         self.SetTitle("Ejemplo de PyDeadObject")         # 2 botones.         self.boton1 = wx.Button(self, -1, u"Botón 1")         self.boton2 = wx.Button(self, -1, u"Botón 2")         sizer = wx.BoxSizer(wx.HORIZONTAL)         sizer.Add(self.boton1, 0, wx.ALL, 1)         sizer.Add(self.boton2, 0, wx.ALL, 1)         self.SetSizer(sizer)         # Binding.         self.boton1.Bind(wx.EVT_BUTTON, self.OnBoton1 )         self.boton2.Bind(wx.EVT_BUTTON, self.OnBoton2 )             def OnBoton1(self, event):         self.boton1.SetLabel("Hola Python")             def OnBoton2(self

Redes sociales: ¿Dónde debes enviar tu estado?

Imagen
Chuleta para recordar donde hay que enviar nuestro estado... ...y es que es mejor prevenir que curar...

vipera tester 1.0.0

Imagen
Hola. Estas son las grabaciones de vipera , un diseñador de aplicaciones para Python . Este programa será mi proyecto fin de carrera (o de grado como se llama ahora). En este primer vídeo hago una simulación muy sencilla de creación de clases de manera gráfica, y como se genera el código Python correspondiente. https://www.facebook.com/video/video.php?v=1889051804429 En los siguientes links se muestran como hacer prototipos de funciones: https://www.facebook.com/video/video.php?v=1889100005634 https://www.facebook.com/video/video.php?v=1889147406819 Estos vídeos los he creado con recordMyDesktop . Perdón por no tener sonido el primero de ellos, estaba en fase de pruebas... Por último decir que vipera puede crear módulos con clases, funciones, registros (emulados con funciones o clases), constantes y código de ejecución para pruebas de módulo. Además incluye un diseñador de packages visual estilo árbol, un generador de documentación de proyecto y un sistema de gene

Dennis Ritchie

Imagen
Dennis Ritchie murió el pasado Miércoles 12 de Octubre. http://es.wikipedia.org/wiki/Dennis_Ritchie Una de " sus pocas contribuciones " fue (junto con Ken Thompson ) la creación del lenguaje de programación C, base de la mayoría de las tecnologías de las que ahora disfrutamos. Será por ello que no sale en televisión. Descanse en paz.

Taller tutorial de wxFormBuilder, en español

Hola. En este post os presento un material sobre wxFormBuilder , el diseñador de interfaces gráficas para wxPython , que se utilizará en el taller Caldum de esta tarde 13 de Junio. El material lo podéis bajar, como siempre, del repositorio de este blog: https://sites.google.com/site/elviajedelnavegante/documentacion Es un zip , Taller_wxFB.zip , que contiene un PDF con la explicación/teoría/presentación del taller, así como carpetas con proyectos wxFB hechos. De la misma forma se incluyen ficheros Python que utilizan el código generado por wxFB para crear las interfaces. Espero os sirva este material para vuestros intereses. Un cordial saludo.

Taller Caldum: wxFormBuilder (wxPython)

Hola. Escribo este post para comunicar que se ha retrasado el taller CALDUM de wxFormBuilder , y se impartirá el día 13 de Junio (Lunes), de 16:00 a 20:00 horas. El taller se podrá seguir online por videoconferencia . Más información en la página de CALDUM. Enlace

Taller de wxFormbuilder en la Universidad de Murcia

Hola. El día 10 de Junio 13 de Junio (Lunes), de 16:00 a 20:00 impartiré un taller CALDUM sobre wxFormBuilder en la Universidad de Murcia , Es necesario saber Python así como tener clara la programación orientada a objetos , ya que veremos, no solamente el diseño de pantallas en wxFormBuilder , también el código que genera, para modificarlo  mediante herencia, en lo que se refiere a manejadores de eventos. En este taller se verá fundamentalmente: 0) Generación de proyectos. 1) Contenedores de alto nivel: Frames, Paneles 2) Sistemas de menús. 3) Componentes:   3.1) AUI_Notebook   3.2) Controles de texto y etiquetas.   3.3) Etc... 4) Posicionamiento de widgets mediante Sizers (BoxSizer y FlexGridSizer). 5) Herencia y override de métodos del código generado. 6) Aplicaciones FrontEnd en wxPython. 7) Bibliografía. De lo que se trata en este taller es que el asistente tenga una idea clara de las posibilidades de wxFormBuilder como diseñador de interfaces gráficas bas

wxPython: Obtener datos de las hojas de un AUI_Notebook

Imagen
Hola. En este post vamos a ver el componente de wxPython AUI Notebook , y en especial su instanciación, creación de hojas y forma de recorrerlas para obtener la información que pudiera haber sido introducida por el usuario. Hay un ejemplo muy completo en la Demo de wxPython . Aquí se verá lo mismo, más simplificado y con el plus del recorrido de las hojas del AUI Notebook . El código fuente de esta aplicación se puede encontrar en el repositorio de este blog, en: https://sites.google.com/site/elviajedelnavegante/ Para poder entender bien como funciona un AUI_Notebook es necesario realizar un ejemplo, ya que es la mejor manera posible. De lo que se trata es de crear un módulo (fichero) que contendrá 2 clases. Una de ellas será el diseño de una hoja (que hereda de wx.Panel ), y la segunda clase será un frame que heredará de wx.Frame . Cada hoja del AUI_Notebook será una instanciación de la clase hoja. Comenzamos... Lo primero de todo es importar los módulos necesarios: imp

Lorca muy tocada...

Hola. Como el lector debe de saber ya soy de Lorca . Ayer sufrimos 2 terremotos que han dejado la ciudad con un 80% de daños en infraestructuras. Mi casa no ha sido una excepción, por lo que no se cuando volveré a escribir. Lo primero es lo primero. Espero que sea pronto. Un cordial saludo.

Charla sobre Python y wxPython en Almería (IES Al-Andalus)

Hola. El Jueves 14 de Abril daré una charla de una hora (prometo no sobrepasarme en el tiempo) sobre Python y wxPython , en el IES Al-Ándalus , en Almería ciudad, en las  Jornadas SLCENT 7.0 . El programa está aquí . La hora es a las 20:30 de la tarde. Lo que pretendo es dar una visión general de Python , sin entrar en ningún tipo de matiz, y ver por encima la plataforma de desarrollo de interfaces gráficas wxPython , con ejemplos. Será una charla de ver por donde empezar para llegar a buen puerto. El material que expondré lo dejo como siempre en el repositorio de este blog . Es muy parecido a la charla de la Lan Party 2010 , pero he quitado muchas cosas (código) y añadido otras (capturas de pantalla de wxPython ), con lo que creo la presentación gana en legibilidad y soltura. Saludos.

Algoritmos de clasificación y problema de cambio de monedas, en C

Hola. Revisando el disco duro de hace algunos años me he encontrado con unas prácticas de la carrera (del 2003-2004), el análisis y diseño de algoritmos de clasificación y la resolución del ejercicio (mediante ciertas técnicas) de cambio de monedas. Bien , pues ya es hora de compartir este trabajo, por si alguien lo necesita. Estos trabajos están hechos en C , en plataforma Linux . Se pueden descargar del repositorio de este blog , en: https://sites.google.com/site/elviajedelnavegante/documentacion Los ficheros son  ALGORITMOS DE ORDENACION.zip y PROBLEMA DEL CAMBIO DE MONEDAS.zip . Algoritmos de ordenación Este trabajo recoge el análisis, diseño e implementación, en C, de los algoritmos de clasificación más importantes, a saber: - Algoritmo de selección directa. - Algoritmo de burbuja. - Algoritmo de inserción directa. - Algoritmo de burbuja mejorado. - Algoritmo de QuickSort. - Algoritmo de MergeSort. - Algoritmo de QuickSort no recursivo. - Algoritmo de MergeSort

Script para pasar código Python a HTML

Imagen
Hola. En este artículo vamos a crear un script para pasar código fuente Python ( .py ) a formato HTML (y de esta manera mostrar dicho código en una página web ). Además vamos a darle   coloración  al código Python . Debe de haber formas más simples, sin duda, de resolver este tipo de problemáticas, ... a mí se me ha ocurrido esta. Como siempre, el fichero .py que contiene el script se puede obtener del repositorio de este blog , en: https://sites.google.com/site/elviajedelnavegante/ El fichero se llama mi_tokenize.zip , el cual contiene el script mi_tokenize.py . En este problema no se ha utilizado programación orientada a objetos, esto es, no se implementa ninguna clase. Todo se resuelve con programación imperativa (mediante funciones). Al grano... El funcionamiento es sencillo, en términos generales. De lo que se trata es que, a partir de un fichero de código fuente Python , se genera otro (con extensión html) con código HTML , que representa el código Python form

Mis antiguos juegos DOS en mi nuevo Linux Ubuntu

Imagen
Hola. Este no es un post sobre Python , pero tenía que escribirlo, ya que llevo emocionado toda la mañana jugando a mis antiguos juegos de MS-DOS . Mi primer PC fue allá por 1988 ú 89, ya no recuerdo. Un 8086 de 640 Kb , diskettera de 5 un cuarto y otra de 3 y medio. Monitor CGA monocromo (luego cambiaría a un TARGA VGA, todo un lujo). Por supuesto, un sistema operativo MS-DOS 3.22 , que era lo máximo. Hacía mis pinitos con Logo (AV, GD, GI, ...) y luego GW-BASIC (return, goto's, ...). Ahí es donde empezó mi curiosidad por la profesión, que ya viene de lejos. Pero lo mejor, de verdad, lo mejor, eran los videojuegos. Unas auténticas joyas de programación, con los recursos hardware tan limitados que había por aquel entonces (comparado con ahora, claro) . Yo no soy ningún entusiasta de los juegos de hoy día (de hecho, no juego), pero sí de los de mi época ochentera y noventera (el último el PC-FUTBOL 6.0 , ¡qué maravilla!). En mi nuevo Linux he descubierto que también e

Me cambio a Linux

Hola. Después de algunos años en sistemas Windows XP (desde 2003 , en donde dejé abandonada a su suerte a mi fabulosa RedHat 6 ), me vuelvo a Linux , a Linux Ubuntu definitivamente, con Python 2.6.6 y como IDE de desarrollo el Stani's Python Editor ( SPE ). A partir de este post, todo lo que escriba se realizará en esta plataforma. La razón para el cambio es el intento de trabajar con Windows 7 , en mi PC . La consecuencia: Un SO tiene que ayudar al desarrollador, y en mi caso, con mi máquina, eso es muy complicado (¡tarda más en ponerse en marcha que ejecutar NetBeans en un 486!). No intento desprestigiar la familia de SO's  Windows 7 ni nada parecido. Únicamente, que no es bueno para mí. Y como mi Linux Ubuntu 10.04 no me da problemas de rendimiento, pues me quedo aquí. Por último decir que si por alguna excepción escribiera algo para Windows , sería con Windows XP SP3 , y con el IDE PyScripter , uno de los entornos de desarrollo más potentes para Python en pl

Pasar parámetros entre frames en wxPython

Imagen
Hola. En este artículo vamos a ver una forma muy sencilla de pasar parámetros entre 2 frames en wxPython , uno padre de otro. El paso de mensajes ó parámetros entre objetos se puede hacer de varias formas, siendo la que vamos a ver una de las más fáciles. Aunque lo vamos a ver con un ejemplo (esto es, código), no está de más explicar el funcionamiento. La aplicación es un fichero .py donde tenemos una aplicación wxPython , que instancia una clase (frame_principal ). Dicha clase, al hacer click en un botón instancia una segunda clase ( frame_secundario ). Cuando se introducen datos en el frame_secundario (objeto) y se hace click en un botón, se devuelve dicha información al frame_principal , que lo muestra. Es decir, se introducen datos en un frame y los devuelve al frame maestro desde que fue instanciado (llamado). ¿Cómo se ha hecho? La cuestión es que cuando se instancia el frame_secundario en el frame_principal , se le pasa como parámetro una referencia de él mismo. En frame_

Manual de introducción a Python, en español

Hola. Con motivo del taller sobre Python en la Universidad de Murcia que se impartirá hoy, he creado un manual de introducción a Python . No tiene ningún tipo de licencia, así que se puede copiar y modificar libremente. No es necesario mencionarme si lo modificáis. El documento se encuentra en: https://sites.google.com/site/elviajedelnavegante/documentacion Hay muchos manuales de referencia, y en español los hay muy buenos (aunque pocos). Este manual no es tan bueno como aquellos, pero deja la puerta abierta para que el lector saboree las capacidades básicas de Python . Se han incluido 3 ejemplos (loterías, agenda, contar) en el documento, que se pueden descargar de: https://sites.google.com/site/elviajedelnavegante/codigo Al ser una introducción dejo muchas cosas en el camino, así que espero podáis entenderlo. Saludos cordiales.

Curso de introducción a Python en la Universidad de Murcia

Hola. Os comunico que el día 25 de Febrero realizaremos un curso de introducción a Python , en la Universidad de Murcia . Toda la información la tenéis en el siguiente enlace: http://um.sym.posium.com/event_detail/434/detail/taller-caldum:-introduccion-al-lenguaje-de-programacion-python.html La charla durará unas 3 horas, y es una introducción al lenguaje, para empezar en el estupendo mundo de desarrollo de software. La impartirá Antonio Mario Molina Saorín y un servidor . Aquí os presento un descriptor de lo que queremos ver: 1) Lenguajes de programación.  1.1) Tipos.  1.2) Python.  1.2.1) Historia.  1.2.2) Características principales. 2) Herramientas disponibles en Python  2.1) Editores, GUI's, IDE's. 2.2) Frameworks. 2.3) Módulos. 4) Introducción al lenguaje. 4.1) Intérprete de Python.  4.2) Hola mundo: print y raw_input. 4.3) Tipos de datos: números, booleanos, listas, tuplas, t.hashing, ficheros. 4.4) Estructuras de cont

Persistencia de imágenes con Python: SQLServer y cPickle

Imagen
Hola. En este artículo vamos a ver cómo guardar y recuperar imágenes de una base de datos Microsoft SQLServer 2005 Express Edition , con Python , así como guardar y recuperar también, imágenes, en un objeto que se serializa , guardando dicha información en disco, mediante cPickle . Antes de nada comentar que en este blog se han tratado varios tipos de SGBD , tales como MySQL , Firebird ,  ó  SQLServer 2008 . El elegir SQLServer 2005 Express Edition es simplemente para probar que Python funciona, mediante pyodbc , con la mayoría de los sistemas gestores de bases de datos actuales. Y para ver si funciona lo mejor es probarlo uno mismo, ya que no es lo mismo conocer el camino que andar el camino . NOTA : Este post lo he escrito en la plataforma Microsoft Windows XP SP3, con Python 2.6.6 . Imágenes en SQLServer 2005 con Python Lo primero de todo es descargar el SGBD Microsoft SQLServer 2005 Express Edition . Se puede hacer desde aquí: http://www.microsoft.com/downloads/det