miércoles, julio 23, 2008

SpringDM,Maven y Eclipse: Introduction

No pretendo ni mucho menos dar una explicación detallada (tampoco podría) de la especificación OSGI, ni de maven ni Spring Dynamic Modules. Únicamente me gustaría dar una brevísima introducción y un pequeño ejemplo de uso de estas tecnologías para la construcción de aplicaciones distribuidas.

OSGI Service Platform determina una arquitectura común para proveedores de servicios,desarrolladores, . . . . para desarrollar, desplegar y trabajar con servicios de manera coordinada.

OSGI Framework compone el núcleo de las especificaciones, facilitando un framework Java de propósito general que permite el despliegue de aplicaciones (conocidas como bundles). De manera muy simplificada, nos facilita un entorno dinámico de ejecución de aplicaciones en que podemos instalar,actualizar o eliminar aplicaciones "en caliente". Modularidad y versionamiento son otras de las características principales de esta especificación.

La arquitectura establecida por el framework anterior es la siguiente:

Spring Dynamic Modules, de ahora en adelante SpringDM, nos permite construir aplicaciones basadas en Spring de modo que puedan ser desplegadas en un entorno OSGI (trabaja con Equinox,Felix y Knopflerfish) ya hacer uso de todoos los servicios ofrecidos por el mismo.

La combinación de estas dos tecnologías nos ofrece innumerables ventajas de las que podríamos enumerar algunas de ellas:
  • Modelo de programación sencillo (y al que estamos habituados) el cual nos permitirá explotar todas las capacidades de la plataforma OSGI.
  • Capacidad de desplegar múltiples versiones de un mismo módulo de manera concurrente.
  • Instalación, actualización y eliminación dinámica en el entorno de ejecución.
  • Búsqueda y utilización de servicios ofrecidos por otros módulos desplegados en el sistema
  • . . . . . . (muchísimos más)
Como ya os supondreis, ésto no es ni una millonésima parte de las capacidades ofrecidas por estas tecnologías aunque creo que es una visión un poquito genérica que podría servir como punto intrductorio.
En la siguiente entrega construiremos un bundle que correrá bajo Equinox y ofrecerá un servicio. Asimismo construiremos otro bundle adicional, que correrá bajo el mismo entorno, y utilizará el servicio ofrecido por el primero de ellos.

En el futuro, espero que no demasiado lejano, intentaremos adentrarnos un poquito en el usode estas tecnologías para la construcción de clientes ricos distribuidos basados en Eclipse RCP.

lunes, julio 07, 2008

Ya tengo internet

La verdad es que en esta ocasión el servicio de Telefónica ha sido impecable: contratamos internet un martes en una tienda oficial y a los dos días nos llamo el instalador para decirnos que se pasaba por aquí cuando nosotros quisiéramos. Ha terminado de instalarlo hace menos una hora y ya está todo listo; el telefóno y la conexión internet. Sólo espero que a partir de ahora pueda actualizar el blog con una frecuencia mucho mayor.

Hasta pronto!



jueves, junio 26, 2008

No Internet, No blog

Pues eso, que no tengo Internet (ahora mismo se la estoy pirateando un poquito al vecino :) ) y no puedo actualizar esto. El próximo mes cambiaremos de piso (en el que estamos ahora era temporal) y podré disponer de una conexión estable ( y propia jejejej).

Hasta pronto!

Un abrazo!

jueves, mayo 22, 2008

Regreso a Asturias

El próxima día 3 de Junio, si no hay contratiempo, regresaré a Asturias durante, al menos, los próximos cinco meses. Regreso para echar una mano, espero que sea así :), y sobre todo, hacer y estar entre lo que más me gusta: el mundo del desarrollo.

Cambiando de tema, espero que dentro de poco pueda tener disponible la segunda entrega de la serie de capítulos dedicados a AOP.

Hasta pronto!

jueves, mayo 15, 2008

Aspect Oriented Programming (I): Introducción

Me gustaría iniciar una serie de posts relacionados con la programación orientada a aspectos (AOP programming) y este es el primer paso (esperemos que no sea el último ;) ). Tal y como podría esperarse, los ejemplos que aquí veremos serán muy sencillos, pero nos darán una idea de las capacidades que AOP nos ofrece.

A lo largo de estas entradas (todavía no tengo claros cuántas van a ser) veremos algunas de las posibilidades que AOP nos ofrece, ejemplos sencillos de utilización, terminología, . . . Para el desarrollo de los ejemplos utilizaremos, principalmente Spring AOP, aunque puede que también en algún caso veamos algo de AspectJ.

Creo que un buen punto de partida podría ser la definición de los conceptos propios (y no demasiado comunes) de la programación orientada a aspectos (pongo el nombre del concepto en inglés para no meter la pata en la traducción ;) )
  • Aspect: Representación de una funcionalidad transversal , es decir, un concepto que se utiliza en múltiples clases. Elementos como el log, la seguridad o el manejo de transacciones en aplicaciones empresariales son ejemplos de funcionalidades transversales.
  • JoinPoint: lugar de ejecución de un programa tal y como puede ser la ejecución de un método o el procesamiento de una excepción.
  • Advice: función realizada por un aspecto en un determinado joinpoint.
  • PointCut: predicado a través del cual se asocia la ejecución de un aspecto en un determinado joinpoint.
  • Introduction: declaración de nuevos métodos o atributos en un tipo determinado
  • Target Object: también llamado "advised object", es el objeto al cual se le está aplicando el aspecto.
  • AOP Proxy: objeto creado por el framework AOP tras aplicarle el advice al target object. El objetivo de este proxy es implementar los requerimientos del aspecto.
  • Weaving: Proceso mediante el cual se aplica el aspecto a un target object con el fin de objetner un nuevo proxied object. El proceso de weaving puede llevarse a cabo en distintos puntos.
    • Tiempo de compilación
    • En el momento de la carga de las clases
    • Tiempo de ejecución
Puede que la mayoría de los conceptos suenen extraños, y mucho más después de haberlos descrito yo :) . Las definiciones anteriores las he hecho en función de algunos de los libros que he leído (en realidad son mucho más extensas), intentando explicarme lo mejor que he podido.

De todos modos, esto únicamente pretendía ser una sencilla introducción a los conceptos generales y ,al menos eso espero, poco a poco iremos profundizando en el tema.

Hasta pronto.

PD: La programación orientada a aspectos no es exclusiva de Java, en C++ podríamos realizar una aproximación a la misma (un poco engorrosa, eso si) mediante plantillas y el concepto de plantillas de plantillas o mediante un lenguaje propio de aspectos como puede ser AspectC++.

miércoles, marzo 26, 2008

Sin tiempo a nada

Hace casi un mes que no posteaba nada pero es que el trabajo, ¿qué iba a ser sino ;)?, apenas me deja tiempo ni a respirar con lo que actualizar el blog se convierte en una tarea con una prioridad demasiado baja como para poder ser atentida :). También es cierto que vamos cerrando cosillas pero dichos cierres implican la apertura de nuevos trabajos con lo que . . . . . . ya veremos que nos deparará el futuro.

No puedo decir cuándo volveré a actualizar; intentaré que sea lo más pronto posible (no prometo n ada) y con temas más interesantes.

Hasta pronto chic@s!

Un abrazo!

sábado, marzo 01, 2008

Señales de vida

No he abandonado este site (aunque últimamente lo parezca :) ) aunque si es cierto que he estado bastante ocupado y no he tenido demasiado tiempo para mi mismo (y mucho menos para el blog).

Espero que a partir de la semana que viene pueda actualizar con más frecuencia,contaros como va todo aquí en Madrid y retomar la serie de post técnicos que había comenzado hace tiempo.

Un abrazo y hasta pronto!

lunes, enero 07, 2008

Se abaco lo que se daba

Lo dicho; las vacaciones se terminan y mañana mismo me reincorporo al trabajo en la oficina de Madrid. Me espera una larga tarde-noche de viaje aunque esperemos no encontrar demasiado atasco.

Las vacaciones han estado bastante bien en general; he aprovechado para retomar mi proyecto, terminar de leer alguno de los libros que tenía a medias,descansar,disfrutar de mi familia y de mis amigos y muchas cosas más.

¿Y este año que hemos comenzado hace una semana? No suelo hacer propósitos de nuevo año tales como dejar de fumar (más que nada porque no fumo), adelgazar, ir al gym o cosas por el estilo. Sólo espero gozar de buena salud para intentar llevar a cabo todas las cosas que tengo entre manos: terminar mi proyecto, actualizar el blog con temas interesantes y con mucha más frecuencia, intentar dar forma a un par de ideas/proyectos que tengo entre manos, y, sobre todo, disfrutar de toda la gente que me rodea.

Desde este pequeño espacio me gustaría desearos, tanto a los asiduos como a los ocasionales, un Feliz Año 2008.

Un abrazo a todo@s!

miércoles, diciembre 05, 2007

Vacaciones

Así es amigos, tal y como reza el título de esta entrada ayer mismo dieron comienzo mis vacaciones de manera oficial. Desde ayer hasta el día ocho de enero intentaré desconectar lo máximo posible, trabajar fuertemente en mi proyecto y, sobre todo, pasármelo bien que es lo realmente importante.

Al igual que el resto del año el día también fue muy intenso, para que vamos a cambiar :). A eso de las ocho de la tarde recogí todas mis cosas y tomé rumbo al aeropuerto para tomar mi vuelo dirección a Bilbao ( una media hora de retraso en el embarque pero únicamente cinco minutos de retraso sobre la hora de llegada programada). Y aquí estoy desde Bilbao escribiendo en el blog e itentando retomar todas las cosas que tengo olvidadas ;).

Estaré por aquí hasta el viernes a mediodía con lo que preveo llegar a Lastres a eso de las seis más o menos. Ya tengo muchas ganas de ver a mis padres y a mi hermana; desde mi regreso a Madrid el día cuatro de Septiembre no he estado ni un fin de semana por la tierra patria.

Poco más tengo que contar, además quiero ponerme a hacer cosas con lo que vamos a dejarlo aquí para este post. Prometo actualizaciones más a menudo tanto ahora que estoy de vacaciones como a mi regreso a Madrid (espero que mi jornada de trabajo se reduzca de manera considerable).

Hasta pronto!
Un abrazo.

domingo, noviembre 25, 2007

Una centena de entradas

Post número 100. Puede que no os parezcan demasiados pero, sinceramente, nunca pensé que llegaría tan lejos. Retomé esta aventura desde mi traslado a Madrid hace hoy un año y dos meses exactamente y en ningún momento pensé que fuese capaz de mantener ésto activo durante tanto tiempo pero aquí estamos con la intención de seguir dando guerra el mayor tiempo que me sea posible.

En muchas ocasiones me pregunto a mi mismo por qué escribo en el blog y la primera respuesta que me viene a la cabeza es "porque me apetece", ni más ni menos. Escribo acerca de cosas que me parecen interesantes, anécdotas, las cosas de mi vida que se pueden contar, aspectos técnicos, . . . . . no sé, intento catalogarlo con las etiquetas pero la verdad que tampoco me preocupa demasiado; escribo cuando tengo ganas y tiempo sobre los temas que me resultan interesantes.

Analizándolo más en detalle tampoco es que encuentre otras razones con un peso mucho mayor que la descrita en el párrafo anterior, aunque como dicen en Galicia: "habelas, hailas".

El hecho de haberme venido a Madrid y estar completamente solo fue el el principal motivo de que retomase el blog; mi intención era que la gente que había dejado en Asturias no se olvidase de mi por completo con el paso del tiempo y aunque parezca mentira creo que lo estoy consiguiendo. Y la otra parte del blog, la de artículos técnicos (por llamarlos de algún modo), también está íntimamente relacionada conmigo ya que todo ese mundo también forma parte de mi vida (y no soy un friki como Andre dice :) ). Escribo temas relacionados con programación, informática, patrones de diseño, . . . porque me gusta, porque me distrae ,porque me sirve para aprender cosas nuevas, porque puede que a alguien (lo dudo mucho) le pueda servir de ayuda en un determinado momento, . . . . . Por todo ésto y por muchas cosas más creo que voy a seguir en la misma línea.

Aprovechando que estamos de cumpleaños, puesto que el blog cumple 100 entradas y yo un año y dos meses de vida en la capital, creo que es un buen momento para echar la vista atrás y ver en que situación me encuentro.

Hasta el momento la experiencia creo que no puede ser más positiva; desde mi llegada a la ciudad todo el mundo me ha hechado una mano siempre que la he necesitado, he crecido un montón como persona, he conocido a mucha gente interesante, he viajado, he hecho amigos de verdad, . . . . En lo que al tema profesional se refiere he tenido la suerte de coincidir con gente extraordinaria, gente de la que estoy aprendiendo un montón de cosas nuevas y de las que espero seguir aprendiendo con el paso del tiempo; sólo espero haber aportado mi granito de arena para que toda esta aventura llegue a buen puerto.

Éste año ha sido complicado en lo que a trabajo se refiere aunque,en general, creo que las cosas han ido bastante bien. Todo este duro trabajo me ha servido para aprender miles de cosas nuevas o poner a prueba un montonazo de conocimientos e ideas que jamás pensé tendría oportunidad.

¿Y ahora? Pues en primer lugar espero disfrutar de mis vacaciones (tengo un mes :) ): retomar mi proyecto a ver si de nuevo soy capaz a tomarle el pulso, pasar mucho tiempo con alguien a quien por desgracia no puedo ver todo lo que me gustaría, estar con mis padres y mi hermana que ya tengo muchas ganas e intentar desconectar un poco porque creo que lo necesito. A todo ésto hay que sumarle el volver a ver a todos mis amigos y rememorar viejos tiempos jejejejeje.

¿Y para el próximo año? Tras las últimas noticias recibidas y conversaciones con las personas adecuadas creo que tengo más o menos claro mis intenciones tras el regreso de vacaciones. De todos modos, hasta que no me encuentre totalmente seguro prefiero no decir nada.

Hasta pronto!
Un abrazo!

PD: en widget de la derecha de la página (Almacén) he dejado mi clave pública (migue.asc)

sábado, noviembre 24, 2007

Setting up an SVN server (y II)

En el post anterior configuramos nuestro servidor Subversion a través del servidor standalone svnserve. En esta ocasión habilitaremos nuestro servidor svn a través del protocolo WebDAV (una extensión del protocolo http). Vamos allá:

En primer lugar necesitaremos tener instalado en nuestro sistema un servidor http. De sobra es conocido por todos que Apache es el servidor http más extendido con lo que será el que utilicemos en esta sencilla guía (concretamente utilizaremos Apache 2). También es necesario el módulo mod_dav_svn.so. Ejecutamos la siguiente orden en una terminal:
sudo apt-get install apache2 libapache2-svn

Tras esta sencilla orden tendremos en nuestro sistema un servidor http con el soporte necesario para habilitar nuestro servidor subversion. Configuremos ahora nuestro repositorio:

Editamos con nuestro editor favorito el fichero dav_svn.conf (si habeis instalado apache2 con la orden indicada anteriormente lo encontrareis en la ruta /etc/apache2/mods-enabled/dav_svn.conf)
vim /etc/apache2/mods-enabled/dav_svn.conf
Deberemos descomentar una serie de líneas para habilitar y establecer una configuración básica
: vayamos por partes.

En primera instancia habilitaremos el repositorio con lo que descomentaremos las siguientes líneas:
# habilitamos el repositorio
DAV svn
# indicamos la ruta absoluta al mismo
SVNPath ruta_absoluta_repositorio

Configuremos ahora el control de acceso. Dicho control es realizado a tres niveles diferentes:
  1. Autenticación facilitada por Apache.
  2. Directivas "limit" y "limitexcept".
  3. El módulo mod_authz_svn.
En este mini-tutorial habilitaremos una autenticación básica. Soy consciente de que no es demasiado seguro a no ser que se utilice a través de https pero no quiero complicar demasiado esta entrega; en futuras versiones configuraremos los distintos niveles de acceso.

Para llevar a cabo nuestra tarea necesitaremos descomentar las siguientes líneas en el fichero dav_svn.conf:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
Creamos el fichero /etc/apache2/dav_svn.passwd con los usuarios a los que deseemos permitir el acceso a nuestro repositorio. Actuamos del siguiente modo:
htpasswd -cm /etc/apache2/dav_svn.passwd nombre_usuario
Se nos pedirá una contraseña para el usuario indicado.

En este momento dispondremos de una configuración básica de nuestro servidor svn a través de http. Si queremos comprobar el correcto funcionamiento podemos irnos a nuestro navegador (Firefox por supuesto ;) e intentar acceder al repositorio:
http://maquina/repositorio/
Nos solicitará nuestro usuario y contraseña, y en caso de que las claves introducidas sean correctas, se nos mostrará un listado con todos los proyectos registrados en el repositorio.

Tal y como os contaba en el post anterior establecer una configuración básico no es demasiado complicada. Espero que pueda serviros de utilidad.

Hasta pronto!

PD: en siguientes post cambiaremos un poquito de tema dejando a un lado la configuración de servidores. Hablaremos un poquito de Hibernate y puede que LINQ si tengo tiempo.


martes, noviembre 20, 2007

Setting up an SVN server (over SSL) (I)

Tenía ganas de retomar la parte técnica del blog y aprovechando que estos días he estado instalando Suvbersion y Artifactory (éste aún no lo tengo completamente configurado) he elaborado este mini artículo con los pasos a seguir. En esta primera entrega configuraremos svnserve (modo standalone) y dejaremos para un segundo artículo la posibilidad de que nuestro sistema controlador de versiones esté disponible a través del protocolo WebDAV (una extensión de http). Manos a la obra:

En primer lugar, y tal y como indica el título del post que nos ocupa, estableceremos un servidor SVN a través de una conexión SSL con lo que necesitaremos tener instalados en nuestro sistema dichos componentes. En el caso de mi Ubuntu Feisty podríamos ejecutar el siguiente comando:
sudo apt-get install subversion openssh-server
Tras la ejecución del comando anterior tendremos en nuestro equipo todos los elementos necesarios para realizar una configuración totalmente operativa de nuestro sistema de control de versiones.

A continuación creamos un nuevo grupo (en mi caso lo he llamado svnusers) para facilitar las labores de administración . Todos los usuarios que deseen tener acceso deberan ser miembros del grupo anterior (más adelante veremos el porqué). Además crearemos un nuevo usuario perteneciente al grupo anterior con nombre svnadm. Para llevar a cabo esta tarea ejecutaremos el siguiente conjunto de órdenes:

# creamos el grupo svnusers
addgroup svnusers

# creamos el usuario "test" perteneciente al grupo svnusers
adduser --ingroup svnusers test
Nota: por motivos de seguridad es una buena práctica que el usuario root no pueda realizar login a través de una conexión de ssh. Asimismo ninguno de los usuarios pertenecientes al grupo svnusers debería ser capaz de "hacer su hacia root".

Llegados a este punto necesitamos que los usuarios del grupo svnusers no inhabiliten, en el momento en que establecen una conexión a través del tunel ssh,los permisos establecidos a nivel de grupo; para ello establecemos la máscara al valor 002. Una manera sencilla de hacer ésto es editar el fichero .bashrc de cada uno de los usuarios pertenecientes al grupo svnsusers y añadir la siguiente línea:

# permitimos lectura/escritura al usuario y al grupo pero no al resto
umask 002
Reptimos los dos últimos pasos descritos anteriormente y creamos el usuario svnadm.

Nos logueamos como usuario root, en caso de que no lo estuviéramos, y creamos una ruta en nuestro sistema de archivos para contener nuestros repositorios. Suponiedo que path_to_repository contiene una ruta válida dentro de nuestro sistema de archivos podríamos ejecutar la siguiente orden:
mkdir -p path_to_repository
Además restringimos el acceso a los repositorios al root y los usuarios pertenecientes al grupo svnusers
chown -R root.svnusers path_to_repository
chmod -R u+wxr,+gwxr,o-wxr path_to_repository
El paso que a continuación se indica (lo encontré en una mini guía buscando cosas relativas a la seguridad) pretende "esconder" la ruta raíz del servidor donde estamos almacenando todos nuestros repositorios. Para ello sustituiremos nuestro ejecutable svnserve del modo que a continuación se indica:

Renombramos el comando svnserve (en mi caso lo tengo disponible en /usr/bin/) con el nombre svnserve.bin
mv /usr/bin/svnserve /usr/bin/svnserve.bin
Creamos un nuevo fichero /usr/bin/svnserve que contendrá el siguiente código:
#!/bin/sh
# wrap in order to put root in by default
# Script implemented by Adrian Robert <arobert@cogsci.ucsd.edu>

exec /usr/bin/svnserve.bin -r /path/to/repository/root "$@"
El fichero recién creado podrá ser ejecutado y leído por todo el mundo
chmod u+wrx,g+rx-w,o+xr-w /usr/bin/svnserve

Un vez llegados a este punto estamos en disposición de crear un nuevo proyecto en nuestro repositorio. Nos logueamos como usuario svnadm e introducimos la siguiente orden en una terminal:
svnadmin create path_to_repository/nombre_proyecto
No permitimos el acceso a ningún usuario no perteneciente al grupo svnusers (a excepción del root claro está)
chmod -R o-rwx path_to_repository/nombre_proyecto
Editamos el fichero de configuración del proyecto recientemente creado para no permitir accesos anónimos (sólo aquellos autenticados a través de ssh) y además permitimos la escritura (una vez autenticados). Esto se consigue editando el fichero svnserve.conf de un modo similar al que a continuación se indica:
# abrimos el fichero de configuración de nuestro nuevo proyecto
vi path_to_repository/nombre_proyecto/conf/svnserve.conf

# no se permite el acceso anónimo y si la escritura para usuarios autenticados
[general]
anon-access = none
auth-access = write

Para testear que todo marcha correctamente ejecutamos al siguiente orden:
svn list svn+ssh://@localhost/nombre_proyecto
Se nos pedirá un nombre y un password y en caso de que los datos introducidos sean correctos seremos devueltos al prompt donde tecleamos la orden (el proyecto que hemos creado unos pasos más arriba no contiene ningún tipo de información). Con ésto nos aseguramos que el servidor ssh está funcionando correctamente así como el tunel hacia el svnserve.

En este mismo instante dispondríamos de un repositorio Subversion totalmente funcional aunque cada vez que realizásemos una operación se nos pediría que introdujésemos nuestro usuario y contraseña correspondientes. Con el objetivo de evitarnos este pequeño incordio generaremos un par de claves públicas/privadas.
A continuación, y de manera rápida, se indica el modo en que llevaríamos a cabo esta tarea:
# generamos nuestro par de claves
ssh-keygen -t dsa

# copiamos nuestra clave pública a las claves autorizadas
cd $HOME/.ssh/
cp id_rsa.pub authorized_keys

# permisos adecuados
chmod 0700
$HOME/.ssh/
chmod 0600
$HOME/.ssh/authorized_keys
Esto ha sido todo. Como veis son un conjunto sencillo de pasos gracias a los cuales establecemos una configuración básica de un repositorio subversion a través de una conexión segura.

En el siguiente capítulo haremos que nuestro repositorio se encuentre accesible a través del protocolo WebDAV; (mucho más sencillo que ésto :) )

Espero que os haya gustado y que os sirva de ayuda.

Hasta pronto!

domingo, noviembre 11, 2007

El trabajo(I)

Últimamente el trabajo, ¿que otra cosa podría ser sino?, me impide actualizar con la frecuencia que me gustaría; además siempre he tenido la intención de continuar con los post acerca de programación que hace un tiempo comenzé pero, sinceramente, paso demasiado tiempo inmerso en el trabajo y apenas me queda tiempo para nada más. El problema es que el proyecto actual parece no tener fin, cada dos por tres aparecen cosas nuevas (supuestamente se habían dicho en el inicio del proyecto con lo que me lo tendré que creer porque yo no estaba). Todo ésto implica que en este último mes y medio las jornadas "largas" (por llamarlas de alguna manera) se hayan convertido en una tónica habitual. Entonces me surge la duda de si es que realmente tengo demasiado trabajo o es que soy un completo inútil (más bien apuesto por lo segundo). Bueno, que tampoco me quiero extender demasiado que tengo que terminar unas cosas que debemos entregar mañana y todavía me quedan bastantes cosas por terminar.

Espero que el proyecto actual no se prolongue demasiado y pueda dedicar mucho más tiempo a mi proyecto, a escribir más por aquí (pretendo retomar con ganas la parte técnica del blog) y dedicar más tiempo a las cosas con las que realmente me entretengo.

Seguireis teniendo noticias mías.

Un abrazo!
Migue!

sábado, octubre 20, 2007

Una de clientes

Ya había oído que la mayoría de la gente del ***** ********* (no daré nombres para no ofender a nadie aunque . . . . .) eran unos auténticos ********** (no se pueden decir palabrotas que estamos en horario infantil) pero en estos momentos lo estoy sufriendo en mis propias carnes.

Me encuentro desarrollando un proyecto, el cual me fue asignado una vez iniciado por distintos motivos que ahora no vienen al cuento. La cuestión radica en que los inicios del mismo no parecía que se tuviese mucha prisa pero resulta que esta última temporada el cliente presenta una necesidad imperiosa porque todo ésto se termine la próxima semana. ¿En qué se traduce todo ésto? Pues que llevo una temporada con muchísimo trabajo, y cuando digo mucho es mucho de verdad, con lo que escribir aquí se ha convertido en una tarea harto complicada (ahora estoy trabajando desde casa y he hecho un pequeño inciso para escribir esto).

¿Y a qúe viene todo ésto os estaréis preguntado? Pues bien, el pasado viernes tuvimos una reunión en las instalaciones de nuestro cliente para enseñarles cambios que se habían realizado y uno de sus empleados, durante el transcurso de la reunión, soltó la frase: "... pero si a nuestros usuarios le entregamos esa mierda . . . ." (en alusión a una pantalla que ellos habían diseñado la tarde anterior y que tuve que implementar esa misma noche). No sé si fue la cara de odio con lo que lo miré (lo dudo) o que el mismo se dio cuenta de que la frase no había sido de lo más afortunada, pero se disculpó de manera instantánea.
No fue la frase en sí lo que me molestó (la opinión de una persona que no tiene ni idea sencillamente me resbala) sino el hecho de que no tengan un poco más de respeto; más aún cuando han estado haciendo cambios del alcance hasta el último momento y nos seguimos comprometiendo a tener casi todo listo para finales de la semana que viene. Yo al final soy un pringao que ni pincho ni corto pero tengo muy claro que si yo soy mi jefe y me suelta la frasecita del otro día le emplumo otro mes más en el desarrollo debido a todos los cambios de alcance realizados las últimas tres semanas (y lo mismo me da lo que le estén presionando sus jefazos). Pero como no soy nadie pues . . . . . . .

Y la verdad es que es una aunténtica pena porque este proyecto es muy interesante: he implementado un motor de consultas, un intérprete,. . . . Además he tenido la oportunidad de pelearme con nuevas herramientas que desconocía tales como antlr, la herramienta de reporting que viene integrada en .NET y algunas más. El problema radica en que lo estamos haciendo aprisa y corriendo y las cosas así no pueden salir bien de ninguna manera. Pero bueno, es lo que hay. Ya lo dice el refrán, donde manda patrón no manda marinero.

A pesar de todo el montonazo de trabajo, y como ya os contaba en el post anterior, sigo muy contento. Creo que todo ésto me está sirviendo para aprender un montón de cosas nuevas, poner en práctica nuevas ideas y, lo más importante de todo, darme cuenta de que puedo llevar a cabo cualquier cosa si de verdad me lo propongo.

Por poner una pega a todo ésto: tengo un montonazo de ideas nuevas que podrían mejorar el desarrollo de determinado tipo de proyectos en la oficina pero no tengo tiempo a proponerlos (aunque tampoco estoy seguro de que me hiciesen mucho caso :) ).

Dejando a un lado el tema del trabajo, deciros que las cosas siguen más o menos como siempre aquí por Madrid: mi proyecto sigue aparcado como os podeis imaginar pero en cuanto la carga de trabajo se relaje un poco me dedicaré a él todas las noches. Últimamente si que algunas cosas han cambiado en mi vida, para bien, pero tampoco me apetece contarlas ahora porque he decidido que las voy a abordar con calma.

Y poco más tengo que contar. Voy a continuar trabajando otro rato que después tengo que bajar al centro a comprarle a Javi el regalo de cumpleaños (y puede que aproveche para darme un homenaje jajajajja)

Hasta pronto!
Migue

PD: el jefe me ha regalado el puente de Todos los Santos pero no voy a ir a Asturias, he hecho planes. Hasta Navidades posiblemente no regrese a casa (como el Almendro jajajajajja)

sábado, octubre 13, 2007

De regreso

Hace casi un mes que no actualizo pero es que estas últimas tres semanas he estado realmente agobiado; en serio, llevamos una temporada en la que hemos estado trabajando muchísimo y apenas he tenido tiempo de respirar; mis compañeros de la oficina pueden dar fe de ello. Hasta que no termine este proyecto que tengo entre manos me imagino que el ritmo de trabajo será el mismo con los que las actualizaciones se dejarán caer con cuentagotas, lo siento.

Tras la explicación de rigor tras un largo periodo de inactividad bloggera, ¿por dónde empezar? Pues no lo sé muy bien :).

Sigo en Madrid; creo que resulta evidente pero para los más despistados prefiero aclararlo jejejeje. Las cosas se mantienen en su curso habitual, muy ocupado e intentando aprovechar al máximo el poco tiempo libre del que dispongo.
Como os contaba antes, en el trabajo estamos hasta arriba,pero hasta arriba de verdad, en serio,y muchas veces me saturo (es lo que tiene estar más de 14 horas seguidas frente a esta maldita pantalla) y me apetece mandarlo todo a la mierda pero enseguida se me pasa y me lo tomo con calma. A pesar de esos ataques momentáneos de, no sé muy bien como llamarlos, quizás locura jajajajajja; sigo muy contento, aprendiendo un montonazo de cosas nuevas y cada día que pasa con más ganas de aprender. Puede que resulte raro pero os lo digo como lo siento.

En el terreno personal las cosas siguen bien (aunque últimamente puede que mejor que bien ;) aunque eso lo dejaremos para futuros episodios).
Entre unas cosas y otras hace un montón de tiempo que no sé nada de mis amigos; salvo una llamada de Andre hace poquito y un mail de Vicio para decirme que el último finde del mes en curso se vendrá a visitarme (ya tengo ganas de que llegue!!) la verdad es que he perdido un poco el contacto.

Y a pesar de que hace tanto tiempo que no escribo no tengo muchas cosas más que contar y tampoco quiero aburriros con cosas del trabajo (últimamente es la tarea a la que dedico el 75% de mis horas jajajajaj). Espero que todo el mundo siga bien y prometo actualizar ésto con cosas más interesantes en cuanto me sea posible.

Un canción con la que me he encontrado mientras navegaba y que me ha gustado mucho:



Un abrazo
Migue

PD: el finde que me fui a ver el Billabong Pro Mundaka sólo tuvimos un día de competición en Bakio. A pesar de que las olas no eran una maravilla el viaje mereció la pena y el domingo pudimos disfrutar de unas cuantas mangas.

lunes, septiembre 17, 2007

Regreso de Roma

Ayer a la tarde regresamos de Roma tras un fantástico fin de semana. Mis primeras intenciones eran las de colgar el post ayer pero la verdad es que me dio muchísima pereza así que decidí posponerlo para hoy.

En líneas generales Roma es una ciudad bastante bonita, con un montonazo de sitios que visitar, no demasiado grande (me refiero al centro de la ciudad) y con mucho ambientillo. Llegamos el viernes a la tarde y dejamos las mochilas en el hostel (teníamos una habitación con baño incluido para nosotros solos) y nos fuimos a dar un paseo para ir conociendo la ciudad y cenar algo por ahí. Esa misma noche estuvimos hacia la zona sur; el Coliseo, el monumento a Victor Manuel II (éste me gusto mucho), el foro de Trajano,el Arco de Constantino, . . . . y unos cuantos sitios más.


El Coliseo de ñoche

A la mañana siguiente madrugamos y estuvimos antes de comer estuvumos visitando la plaza del Popolo, el Castel de Sant´Angelo y el Vaticano. Este último la verdad que merece la pena, la plaza y la cúpula son impresionantes y la Capilla Sixtina es una verdadera maravilla. La única cosa que sigo sin comprender es que como la Iglesia puede tener esas posesiones y siga habiendo gente que se muera de hambre. Mejor eso lo dejamos para otro día y continuamos con el resto del viaje porque sino me enciendo.
Os dejo algunas fotos del Vaticano, el Castel de Sant´Angelo y alrededores








Comimos en los alrededores de plaza avona, había mucha gente (montonazo de españoles nos encontramos a lo largo de todo el fin de semana) y la verdad es que las pizzas que nos metimos entre pecho y espalda estaban muy buenas. Tras la parada obligatoria para eso que llaman comer visitamos un poco plaza Navona y todos sus alrededores (templo de Adriano, el pantheon, ...). Tras un breve paseo por toda esta zona nos dirigimos a la Fontana de Trevi (sin duda mi lugar preferido de todo el viaje) y después a plaza España que también me gustó mucho, pero sobre todo la Via Condotti; tendría que irme con 6000 0 7000€ para salir contento de esa calle jajajajaja.





A la noche cenamos de nuevo por los alrededores de plaza de Navona y estuvimos un rato de fiesta. Hacer mención a que Roma necesita una visitilla de tres o cuatro días de fiestón porque, en general, las romanas están de muy buen ver jajajajjajaj.

El domingo era el último día que estabamos allí y decidimos visitar toda la zona del Palatino y el interior del Coliseo. Sinceramente este último me decepcionó de manera considerable, está demasiado ruinoso y necesitas demasiada imaginación para imaginarte como podría haber sido en todo su esplendor. Y tampoco es que yo me fuese imaginando el Coliseo en el que Máximo Décimo Mericio comenzaba su venganza pero en serio que es una pena que semenjante obra de arte se encuentre en ese estado. De todos modos, si alguno viaja a Roma merece la pena que visiteis los interiores y juzgueis por vosotros mismos. Os dejo un par de fotos y en cuanto pase un par de videos que tengo en el móvil los colgaré por aquí para que veais que no os engaño.




A grandes rasgos este ha sido mi fin de semana en Roma. Ahora ya estamos de nuevo del vuelta al curro y al montón de trabajo que me queda por delante ..... pero bueno, eso será para otro post.

Hasta pronto!
Un abrazo!

jueves, septiembre 13, 2007

Seguimos con lo de antes

En primer lugar dejar claro que con el post anterior mi intención no era ni mucho menos "despreciar",como dice Andre, a nadie (no creo que sea nadie para hacer tal cosa). Simplemente estaba dando la opinión de cómo veo las cosas y como creo, y siempre desde mi punto de vista, deberían ser. Lo que no termino de ver es la diferencia entre analista y desarrollador (tan acentuada como vosotros quiero decir). Tal y como lo yo veo son totalmente complementarias ( y se solapan)

En cuanto a la múltitud de cosas que Andre decía en uno de sus comentarios decir que en algunas estoy de acuerdo con ella y en otras no. Por ejemplo en el tema de la documentación sí que comparto su visión del asunto: creo que es necesaria una buena documentación de los proyectos informáticos (al igual que proyectos de cualquier otra índole) aunque creo que sería preferible comenzar la casa por los cimientos y desarrollar un software de calidad, porque de nada me sirve tener una documentación extraordinaria si, perdón por la expresión, mi software es una auténtica mierda.

Personalmente, veo el software como una ingeniería más, en la que, al igual que en el resto, son necesarios una serie de procesos y metodologías gracias a las cuales se pueda desarrollar un sofware de calidad. Pero la realidad es que en el mercado actual priman otra serie de cosas,veáse dinero por ejemplo ;), con lo que los proyectos se hacen aprisa y corriendo con el objetivo de satisfacer los requisistos establecidos en el principio del proyecto por activa o por pasiva (cosa lógica por su parte). ¿Y en qué desemboca todo ésto?: pues nuevos contratos por mantenimiento, continuos retoques, mantenimientos infumables (sobre todo si te toca el mantenimiento de un software desarrollado por una empresa diferente a la tuya), y un largo ecétera de situaciones que provocan que haya más software malo que bueno.

Ésto es una breve explicación de como veo las cosas (tampoco quiero aburriros :) ). No sé si estaré en lo cierto o totalmente equivocado pero al menos tengo una opinión al respecto.

Dejando a un lado el tema anterior, las cosas por aquí siguen más o menos como siempre; mucho trabajo tanto en la oficina como en casa (esta semana me he propuesto retomar el proyecto con ganas y estoy quedándome todos los días hasta la una de la madrugada más o menos intentando ponerme las pilas). También he estado mirando los precios para sacarme el abono del Madrid Baloncesto y la verdad es que son bastante asequibles; estoy pensando si comprármelo o no, todavía no lo tengo decidido.

Y poco más que contar. Mañana me marcho a pasar el finde a Roma así que posiblemente hasta el domingo por la tarde no postee de nuevo.

Hasta pronto!
Un abrazo!


lunes, septiembre 10, 2007

Diseño y desarrollo

Hoy me ha dado por colocar el título al post; no es que sea demasiado bueno resumiendo pero me parecía que la entrada de hoy se prestaba a ello. A partir de ahora intentaré colocarlo en todos aunque si veo que la frase elegida no resume demasiado bien el contenido casi prefiero dejarlo en blanco.

Últimamente he oído frases, y no es la primera vez que las oigo, del estilo de las siguientes: "yo es que no quiero programar","no quiero orientar mi carrera de ingeniería informática a la programación", "yo es que quiero ser analista y no quiero picar código". Dejar claro que si algo me caracteriza es que tengo máximo respeto por las opiniones del resto del mundo, pueden ser parecidas o totalmente contrarias a las mías, pero siempre las respeto porque cada uno es libre de pensar lo que le venga en gana.

Personalmente no comparto esas ideas, realmente son diametralmente opuestas a las mías. Creo que para ser un buen analista/arquitecto de software/diseñador de soluciones software, ..... podeis llamarlo como más os guste, es necesario haber programado,y además bastante. Porque diseñar una aplicación no es tan fácil como tomar los requerimientos,hacer un diagrama de clases y ya está. Tambien resulta evidente que si tienes otras responsabilidades podrás dedicar menos tiempo al desarrollo pero creo que sigue siendo una parte importante. Metodologías como pueden ser TDD se basan en "code to design code".

Como he dicho antes ésta es mi manera de ver las cosas, que puede ser igual de acertada o errónea que vuestro punto de vista, pero es que me apetecía escribirla :).

Después de esta minicharla decir que hoy he podido salir a la hora aunque mejor hubiésemos salido un poco tarde ya que la salida puntual de hoy implica un montonazo de cambios a realizar a partir de mañana (hoy hemos tenido reunión) con lo que me temo que los próximos días no estoy seguro de poder actualizar con una frecuencia más o menos aceptable.

Ya os había contado que este retorno había sido un poco más duro que los anteriores pero poco a poco y con el escaso tiempo libre del que dispongo ya me estoy aclimatando de nuevo :). De todos modos deciros que me acuerdo mucho de toda la gente de Asturias así que a ver cuándo tengo un hueco y hago una visitilla por allí aunque ya sabeis que estais invitados a conocer Madrid (o repetir el que ya lo conozca). Mis planes están publicados aquí (al menos los que se pueden contar jajajajajaj) con bastante antelación con lo que si algún finde os apetece pasaros por aquí sereis muy bien recibidos.

Hace ya mucho tiempo que no pongo ninguna foto así que voy a aprovechar a colgar un par de ellas que hicimos en la despedida de Noe, uno de los compañeros de Gijón, que se marchó a trabajar a GMV.





Me gustaría seguir actualizando la sección de manuales pero en serio que no tengo demasiado tiempo. Entre manos tengo uno de Hibernate y otro de log4j pero no se cuando los colgaré por aquí; espero que sea pronto.

Hasta pronto!
Un abrazo!

sábado, septiembre 08, 2007

La intención cuando regresé a Madrid era dedicarme más a mi proyecto, descansar después de tanta fiesta, tomarme las cosas con más calma, no sé, relajarme un poco como se suele decir. De momento se están quedando en eso, en intenciones porque seguimos trabajando por las tardes debido a que tenemos "bastante" trabajo. Sobra decir que lo de la fiesta tampoco lo he conseguido; esta mañana hemos llegado a casa a las ocho de la mañana ;)

Ayer quedamos Gabi,Marcos,Javi y yo; cena de Telepizza en casa del primero y unas cervezas y unos tequilas que Sergio tiene por allí jajajaja. Después estuvimos tomándonos unas copas en el Amor Brujo; era la primera vez que nos pasábamos por allí y la verdad es que está entretenido el sitio. Mientras estabamos allí recibimos la llamada de Amparo y Rocío que nos invitaron a pasarnos por casa de una colega suya a que nos tomásemos unas copas; evidentemente no pudimos declinar la invitación. En resumen, unas buenas risas y unos cuantas copas entre pecho y espalda.

Esta mediodía Javi y yo hemos quedado de nuevo con Amparo,Rocío e Isa para comer (todavía no me explico como hemos podido comer tanto con la resaca que arrastrábamos) y después nos hemos vuelto a casa a tumbarnos en el sofá. Como bien observareis así no hay quien se concentre aunque también es cierto que no debo poner demasiado de mi parte y me dejo engañar fácilmente :)

Ahora estoy sentado en el sofá viendo la tele y esperando la llamada de Javi ya que creo que nos vamos a ir de fiesta de nuevo (y menos mal que había marcado como objetivo del finde el descanso absoluto; si es que .....)

Y la verdad que pocas cosas interesantes tengo que contar (si es que alguna vez las he tenido). Lo que últimamente me ronda la cabeza, el otro día lo hablaba con Héctor y el me decía lo mismo, es que quizás tenía que haber esperado a terminar el proyecto para empezar a trabajar; me hubiese esperado medio añito más y ya lo tendría liquidado. No es que esté descontento, ni que esté cansado de trabajar, además estoy seguro que todo este año que llevo trabajando me ha servido más que la mayor parte de mis años de carrera, pero soy consciente de que es más costoso por dos motivos: dispones de muchísimo menos tiempo para poder dedicarte en cuerpo y alma y el segundo es que cada vez te vuelves más exigente contigo mismo (al menos a mi me pasa). Pero bueno, una vez tomada la decisión será el tiempo quien decida si ha sido acertada o errónea.
A raíz de todo ésto, otra de las ideas que me ronda la cabeza es la de, una vez terminado el proyecto y ahorrado un poquillo, dejar de trabajar para hacer un máster a tiempo completo. El problema radica en que el que a mi me gusta (estoy hablando siempre en el supuesto de que me aceptasen claro está) es en Barcelona, y no me puedo permitir el lujo de irme a Barcelona durante dos años a dedicarme única y exclusivamente a estudiar. Pero bueno, es una idea que tengo en mente aunque no crea que sea factible realizarla, al menos en un futuro más o menos próximo

Cambiando de nuevo de tema, ya tengo los billetes para irme a Bilbao a visitar a Iratxe el 5,6 y 7 de Octubre, aprovechando, claro está, el paso del WCT por tierras vascas. A ver si tengo un poco de suerte y podemos disfrutar de un swell consistente para deleitarnos con los "maquinillas" del top44 (sólo digo lo del swell porque la fiesta está garantizada jejejejejeje).

Después de toda esta ida de pelota voy a ir terminando que debería cenar algo y ducharme por si nos vamos de fiesta al cumple de Amparo.

Hasta pronto!
Un abrazo

lunes, septiembre 03, 2007

De nuevo en Madrid; tras unas semanas en Asturias con mis compañeros del CIDI y una hora y media de retraso en el vuelo de EasyJet ya estoy de nuevo por la capital de España. Si he de ser sincero en esta ocasión el regreso ha sido mucho más duro de lo que esperaba; me ha dado mucha pena marcharme porque estos últimos días han sido muy especiales. Voy a echar mucho de menos todo aquello.

Os preguntareis que habrá sido de mi durante todo este tiempo. Pues la verdad es que he hecho un montón de cosas; aparte de trabajar bastante claró está :) (las buenas costumbres nunca se pierden) he estado de fiesta todo lo que he podido y un poco más, he conocido a gente interesante, he estado mucho tiempo con mi madre y mi hermana que ya las echaba de menos, he visto a amigos con los que hacía mucho tiempo no coincidía. Hacía mucho que no me divertía tanto.

¿Y ahora qué? Pues en el trabajo tengo que terminar una aplicación que me está volviendo cuanto menos loco y me imagino que tendremos que terminar de poner a punto los scripts de producción de Telefónica Móviles además de alguna que otra cosilla que tenemos entre manos por ahí. En el plano personal debería retomar mi fin de carrera con ganas porque toda esta temporada en casa ni siquiera he abierto el Eclipse, espero que a partir de mañana pueda dedicarle más tiempo y esfuerzo (soy consciente que tengo que hacerlo pero últimamente el tiempo y las ganas brillan por su ausencia).

Siguiendo en el plano estrictamente personal tengo un par de viajes planificados; el primero de ellos a Roma junto a Javi, el 14,15 y 16 del mes que nos ocupa. El segundo es una invitación que no puedo rechazar: Iratxe me invitó a pasar un finde en Bilbao así que puede que me vaya por tierras vascas el finde del 5,6 y 7 de Octubre (todo ello amenizado con el Billabong Pro Mundaka cuyo periodo de espera comienza el uno de Octubre :) )

Solamente son unas cuantas pinceladas de todo lo bien que me lo he estado pasando esta última temporada pero la verdad es que tampoco me apetece escribir demasiado que estoy un poquillo triste.

Y para terminar (ya me está entrando el sueño): sé que mi compañero Iván (aunque ya no está con nosotros, en Neo me refiero ;) ) se pasa por aquí de vez en cuando con lo que voy a aprovechar para desearle de todo corazón mi más profunda enhorabuena porque se casa esta misma semana. ¡¡ FELICIDADES IVÁN !!

Hasta pronto!
Un abrazo!