Feb 29

Auditoría de “software”

El otro día nos hicieron una auditoría interna de software. Como era de software, me soltaron a mí al auditor. Le duré menos de cinco minutos.

El auditor empezó su ristra de preguntas, que básicamente consistía en de los dos mil documentos que teóricamente pueden hacerse (requisitos, plan de desarrollo, diseño preliminar, manual de usuario, de instalación, de árbol de configuración, …), preguntarme uno por uno si lo hacíamos. Yo me dedico a codificar software y algunos de esos documentos sí me suenan, o bien porque me llegan, o bien porque incluso colaboro en ellos, pero del resto ni idea, ni si se hacen, ni cual es el proceso para hacerlos e incluso muchos de ellos, nombrados por sus siglas, los había oido por primera vez. De hecho, en la lista anterior he puesto algunos de los que sí conozco, porque de los otros mil novecientos ni siquiera me acuerdo ahora del nombre.

Cuando llegó el momento en que nos acercamos al tema de software real, vi llegar mi oportunidad, pero al auditor le importaba tres pepinos qué herramientas usábamos (cruise control, bugzilla, test de junit, etc). Unicamente hablamos de que usabamos CVS y hacíamos ramas de vez en cuando. Realmente lo que le interesaba era saber si teníamos controladas las versiones del proyecto completo y si teníamos algún documento que reflejara todas las mejoras y peoras de una versión respecto a la anterior. Asi que de software nada de nada, lo único de interes es que usamos CVS.

Cada vez me da más pena este mundo empresarial, en el que lo importante son las apariencias y no la realidad, en donde lo realmente importante del softwre son los documentos que le acompañan, y no el software en sí mismo. El software puede ser una patata, pero si va acompañado de varios documetnos tamaño "El Quijote", está bien hecho. Y si tienes todos esos documentos, aunque el software no vaya, cumplirás con las normas de calidad ISO 9001 y similares. Luego, claro, se sacan premios a la "excelencia empresarial" (nombrecito, ¿de dónde lo habrán sacado?).

Feb 28

Programando el mando de wii con java

Un compañero de trabajo se ha encontrado una librería java motej que permite conectarse con el mando de la wii y extraer información de sus sensores, como el de posición o el de infrarrojos, etc. Una vez que conseguimos extraer en nuestro código la información detectada con el mando, podemos hacer lo que queramos con ella y el único límite es nuestra imaginación. Como ejemplos, puedes ver los videos de esta página Johnny Chung Lee, Esos proyectos posiblemente no están hechos con esta librería, sino en Visual C#. Los ejemplos son:

  • Con unas pegatinas reflectantes en nuestros dedos, podemos moverlos y dibujar unos puntos en la pantalla del ordenador que se muevan de acuerdo con nuestros dedos.
  • Podemos proyectar la pantalla del ordenador en alguna pared o en la mesa. Luego, con unos lápices adecuadamente preparados, podemos controlar el ordenador sobre esa proyección, como si fuera una pantalla táctil.
  • Finalmente, el más asombroso de todos, el tercer video. Colocándonos el sensor en la visera de una gorra, el ordenador puede saber desde dónde estamos mirando la pantalla, haciendo girar una imagen 3D en ella de acuerdo a nuestra posición. El efecto 3D según se ve en el video es realmente alucinante. Lo pongo aquí

En fin, como dice mi compañero, hay que comprarse un bluetooth (para conectar el mando con el ordenador) y un mando de la wii y buscarse un sitio tranquilo para empezar a jugar.

Feb 28

Indra en Gijón

Una buena oportunidad para volver a los que somos de allí Indra abrirá un centro para el desarrollo de software en Gijón ( La Voz de Asturias - 27/02/2008 )

Lástima que sea una "software factory".

Feb 26

SMF y SEO: Un desastre

El foro de java que tengo es SMF (Simple Machines Forum). Hasta hace poco estaba contento con él, hasta que he descubierto una pequeña pega. Resulta que si miro en google las páginas del foro indexadas, son todas perfiles de los usuarios y cosas variadas, pero ninguno de los post está indexado. Google no mostrará en sus resultados ninguno de mis post.

Buscando, buscando, encontré seo4smf, que supuestamente pone las url del foro más amigables y proporciona un sitemap para google. Pero tras varias intentonas de instalarlo y juguetear con él, no conseguí que funcionara. El mod_rewrite que exige este plugin sí está instalado y funcionando, pero aun así, sólo obtenía errores.

Así que me he decidido por una opción más artesanal. De momento he creado con un programa guarrete un sitemap.xml, lo he subido y lo he dado de alta en google. Si dentro de unos días veo que se empiezan a indexar en google los posts, intentaré hacer un programita php en el foro que genere este fichero de forma automática cuando se le pida.

Feb 25

¿Hostito?

Desde que me hice con un dominio, tengo mi hosting con hostito. Hasta hace no mucho estaba contento y de momento, no tengo ningún problema serio. Sin embargo, están empezando a pasar "cosas" que me tienen un poco preocupado.

Hace tiempo intenté actualizar mi versión de wordpress para el blog y se me fastidiaron los acentos. Lo achaqué a algún tipo de compatibilidad entre las versiones de wordpress y no le dí más importancia. Deshice la actualización y todo correcto.

Hace menos de un mes, recomendé hostito a un compañero de trabajo que sólamente quería un dominio para un blog. Se dio de alta y la instalación automática desde cpanel del blog no le funcionó. Aparentemente todo iba correcto, pero en el momento de ver el blog no iba. Escribió al soporte técnico y, al igual que cuando yo lo he hecho, han constestado bastante rápido -menos de un día-. Le comentaron que había algún problema con la nueva versión de wordpress y determinadas características de la base de datos/hosting que podían dar esos problemas. Sin embargo, una semana después, correo arriba, correo abajo, no consiguieron solucionarle el tema, por lo que se dio de baja. Al menos no le pusieron pegas para hacerlo.

Ayer, tras un intento fallido de instalar smf4seo para mi foro, que lo dejó totalmente inoperativo, intenté recuperarlo actualizando desde cpanel la versión del foro SMF… y se me volvieron a fastidiar los acentos, igual que con el blog. Afortunadamente el foro tiene una configuración para cambiar la codificación de caracteres y se arregló. De todas formas, dos aplicaciones distintas que fastidian los acentos al actualizarlas…. me hace sospechar que los de hostito tienen algo raro en su base de datos.

Sí, sé que hay otros hostings, pero también sé que lo de que te vaya bien o mal es más casi cuestión de suerte que de la calidad dle hosting. Basta ver las opiniones en los foros para ver que con el mismo hosting unos están contentos y otros echan pestes. Además, ¡¡ qué pereza moverlo todo !!. De cualquier forma, salvo lo de mi compañero que no le funcionó el blog, ninguna de mis desgracias es claramente culpa de ellos. El blog llevaba varias versiones sin actualizar y el foro, yo me había encargado de fastidiarlo primero con el smf4seo.

Feb 18

Gráficos en google code

Yo sigo dándole vueltas a mi librería gráfica. Después de haber creado mi proyecto en http://proyectos.chuidiang.com/graficos/ y mi repositorio maven en http://maven2.chuidiang.com/, estuve pensando que me quedaba un poco cutre el tema de bajarse los fuentes, ya que están metidos en un .jar creado y subido por maven. Así que he dado de alta el proyecto en google.code, así los fuentes están disponibles a través de subversion.

El proyecto está en http://code.google.com/p/chuidiang-graficos/ y he creado dos proyectos dentro del mismo repositorio de subversión. Uno llamado GRAFICOS que es la librería en sí misma. El otro GRAFICOS-EJEMPLOS para los programas de prueba de la librería.

Los fuentes se pueden bajar anónimamente por medio del siguiente comando

svn checkout http://chuidiang-graficos.googlecode.com/svn/GRAFICOS/PRINCIPAL/ chuidiang-graficos-read-only

Además, te dan espacio para una wiki y para bugs. A ver si tengo algo de tiempo para jugar con ello y darle un pequeño empujón.

Y ya puestos, igual intento darla de alta también en sourceforge, así juego más.

Feb 15

Preguntas en los foros

Suelo visitar y participar en varios foros de java. Algunas preguntas son realmente curiosas, pero esta pregunta me ha llamado la atención. ¿Cómo se puede desplegar un Combo hacia arriba?. Será cuestión de investigarlo un poco …

Feb 08

Ayuda de escritorio

Es un poco antiguo, pero por si alguien no lo había visto

Feb 07

Cosas que me han llamado la atención de la sintaxis de Python

Hay muchas cosas que me han llamado la atención de la sintaxis de python, quizás por haber estado centrado mucho tiempo en lenguajes como C/C++ o java, que son muy similares en cuanto a sintaxis, y haber hecho alguna incursión en php, que también tiene muchas similitudes con C. El basic y el pascal me quedan ya lejanos….

De la sintaxis de python me ha llamado la atención la forma de asignar variables. Si hacemos esto

a,b,c=1,2,3

asigna los valores uno a uno, es decir, la a valdrá 1, la b 2 y la c 3. Es más, si d es una especie de Hastable, -en python creo que se llama defaultdict-, podemos hacer un bucle así

for clave,valor in d:

y se iran asignando automáticamente clave y valor en cada una de las iteraciones. Realmente cómodo si lo comparamos con java, que hay que pedir las keys() y luego iterar y con cada key pedir el get(key) correspondiente.

En cuanto a las clases python, también es curioso el tema de los atributos. Estos, al igual que el resto de las variables, NO se declaran. En el mismo constructor de la clase emprezamos a crearlas sobre la marcha asignándoles valores.

class UnaClase:
   def __init__(self):
      self.unAtributo="hola";
      …

Todos los métodos, el constructor y demás métodos, reciben un parámetro self, equivalente al this, pero lo reciben explicitamente. Además, incluso desde fuera de la clase, cuando la estamos usando, podemos añadirle más atributos sobre la marcha. En el caso de UnaClase, podemos hacer perfectamente esto

a = UnaClase()
print a.unAtributo   # escribe "hola"
a.otroAtributo="adios"
print a.otroAtributo  # escribe "adios"

Y también es realmente curioso que no hay nada similar a abrir y cerrar llaves, ni begin-end, ni cosas de esas. El cuándo empieza o termina un bucle, una definición o cualquier otra cosa …. ¡¡ se hace con el sangrado !!. Bueno, no es totalmente cierto, hay que poner un dos puntos al final de la línea en la que empieza el bucle o definición y las siguientes líneas ponerlas sangradas hasta que queramos terminar el bucle o definición.

Un lenguaje realmente curioso.

Feb 06

Python y formularios

Bueno, no sé si es la solución fetén, pero he encontrado la forma de hacer formularios "dinámicos" y luego recoger los parámetros en una función de Python.

Creo mi formulario con una consulta a base de datos, consultando los proyectos y creando tantos campos <input type="text" name="id_…./>  como proyectos haya. El id_… es un trozo de texto "id_" al que concateno detrás el identificador del proyecto en base de datos. Esto hace que en la página python que recibe el resultado del formulario no se pueda saber a priori los nombres de los parámetros. Y más si tenemos en cuenta que en python debemos crear una función cuyos parámetros sean precisamente esos, los nombres de los parámetros del formulario.

# La función debería ser así….
def funcion (req, id_proyecto1, id_proyecto2, id_proyecto3):

La forma que he encontrado sólo funciona cuando el formulario es tipo GET. La función python que recibe el formulario recibe también un Request Object que tiene datos sobre la petición http. Dicho objeto es el primer parámetro req del trozo de código anterior. Pues bien, si la petición ha sido por GET, entonces req.args contiene el trozo de cadena de la URL con los parámetros. Es decir, algo como "id_xxx=32&id_yyy=3&id_zzz=1" donde xxx, yyy y zzz son los identificadores de los proyectos.

Ahora sólo queda, con un bucle y un par de llamadas a la función split(), separar adecuadamente todo. Por supuesto, siguiendo mi costumbre, he puesto todo esto con un poco más de detalle en recoger parámetros de un formulario con python en la Chuwiki.