martes, mayo 29, 2007

Como os había comentado en alguno de los post anteriores (seguramente en más de uno) esta mañana estuve en el evento Dev2Dev Tech Days organizado por Bea aquí en Madrid; también participó Adobe como invitado (son partners de Bea y supongo habrán puesto dinero en la organización del evento :) ). En mi modesta opinión podríamos calificar el evento como interesante.

El primer interlocutor era de Bea Systems y estuvo hablando acerca de un término que ellos denominan "mashup". Por mucho que pretendan disfrazarlo con ese nombre tan "extraño" no es más que la unión de diferentes orígenes en una sola aplicación de manera que los resultados finales sean mejores. De manera un poco simplona, no es más que conectar distintos Widgets para crear una aplicación. Como no, aquí presentaron sus productos para la creación de este tipo de aplicaciones de manera muy sencilla e intuitiva.

La segunda parte estuvo más entretenida y corrió a cargo de Adobe para presentar sus productos Flex y Apollo. Yo había visto alguna cosilla del primero pero desconocía el segundo y realmente me quedé bastante impresionado. A través de estos productos ofrecen la posibilidad de crear aplicaciones RIA (Rich Internet Applications) y también aplicaciones de escritorio (Apollo). Los resultados obtenidos en la capa de presentación son inmejorables y se pueden construir aplicaciones muy potentes de manera relativamente sencilla. Desde la página de Adobe se puede acceder a varias aplicaciones y manuales que hablan largo y tendido acerca del tema.

En grandes rasgos eso ha sido la Conferencia, todo ello acompañado de zumo,café, bollos además de la documentación del curso y un par de DVD's que todavía no he tenido tiempo a mirar. Y tras terminar el evento de nuevo a la oficina a comer y seguir desarrollando una de las aplicaciones que tenemos entre manos (creo que nos está quedando bastante bien :) ).

Siguiendo con el tema de la oficina, esta misma tarde el jefe me ha hecho la evaluación personal. En líneas generales el resultado creo que es bastante aceptable, vamos que están contentos conmigo :) (también es cierto que yo estoy muy contento de trabajar aquí).

Todavía no me han avisado de la Fnac con la llegada de mi nuevo disco duro así que ....... sigo a la espera. Ya les vale!

Creo que por hoy ha estado bien!
Hasta pronto!

lunes, mayo 28, 2007

Ayer por la tarde acudí al teatro a ver la obra "El sueño de una noche de verano" de Willian Shakespeare. Conocía la historia pero no pensaba que me lo iba a pasar tan bien; realmente me divertí muchísimo. La dirección musical corría a cargo de Antonio Carmona (él mismo ha compuesto algunas de las canciones de la obra); no puedo dar mas señas porque no soy un gran conocedor del teatro (bueno, ni gran ni nada, no tengo ni idea jajajjajaja).

Acabo de llegar del trabajo dado que hoy he estado bastante atareado terminando de escribir el intérprete y retocando algunas pantallas que no nos gustaban demasiado, por lo que me he quedado un rato más. Y así ha transcurrido el día, todo el día cara a la pantalla salvo la media hora que me bajé a comer al "Burry King".

Pocas novedades más: ya tengo el borrador de la declaración y, como era de esperar, me sale a devolver, unos quinientos y pico euros, bienvenidos sean :). También esta misma tarde (como hace cosa de un par de horas o así) me ha llegado un mail de la Fnac diciéndome que por motivos de stockage mi pedido no llegaría en la fecha estimada, que disculpe las molestias, que me avisarán cuanto antes, que blablablabla. Todo esto conlleva a que todavía no puedo disponer de mi nuevo disco duro portátil (no sé si me habrán pasado el cargo ya,tengo que revisarlo). Nunca había comprado a través de Internet en la Fnac pero está claro que ésta es la primera y la última vez que lo hago.

Creo que voy a dejarlo aquí que me duele un poco la cabeza y tengo que terminar de leer unas cosillas que tengo pendientes.

Ah, se me olvidaba, mañana tendré la oportunidad de asistir al Dev2Dev Tech Days organizado por Bea Systems (espero no perderme buscando el hotel donde se celebra el evento jajajajajaja). Prometo un mini-resumen :).

Hasta pronto!
Un abrazo!

domingo, mayo 27, 2007

Ya es domingo por la mañana; el fin de semana ha sido visto y no visto y eso que no he hecho nada en especial, vamos,que he hecho lo mismo que la mayoría de fines de semana, o lo que es lo mismo, nada :).

De una vez por todas me he comprado el disco (si mono, por fin), aunque todavía no puedo disponer de el físicamente dado que me lo compré a traves de la tienda virtual de la Fnac (me ahorré 10€). Supongo que mañana estará en el Fnac de Callao listo para que pueda pasar a recogerlo. He comprado un Lacie HDD 500 GB USB 2 Porsche con lo que a partir de la próxima semana dispondré de medio Tera para continuar con algunas de las chapuzas que tenía entre manos. Mi primera intención era la de "virtualizar" una instalación de Windows pero me temo que las características de mi portátil no satisfacen los requerimientos de Xen :(. Realmente no es que necesite el Windows, que va a ser que no, simplemente era por trastear un poco y poder correr el .NET en casa aprovechando que ahora estoy trabajando con ello (no soy capaz de hacerlo correr bajo Wine, admito sugerencias :) ).

Este fin de semana también han llegado a mis manos un artículo de un antiguo profesor de la facultad en el que habla acerca de la situación de los Ingenieros en Informática de este nuestro pais. Me gustaría que lo leyerais así que, aprovechando las circunstancias, he colocado un Widget en la parte derecha del blog llamado Directorio; no es más que un contenedor en el que intentaré ir dejando cosas que puedan parecer interesantes: artículos, manuales, libros, música,.... De momento sólo yo tengo permisos para escribir en el directorio pero si alguien está interesando en crear alguna nueva carpeta o subir cosillas no tiene más que enviarme un mail a: miguelinas3 at gmail.com y le daré los permisos necesarios.

Y lo dejo aquí que mi intención era la de trabajar un rato en mi proyecto antes de comer.

Hasta pronto!
Un abrazo!

PD: el artículo que mencionaba anteriormente está en la carpeta Artículos del nuevo Widget

jueves, mayo 24, 2007

No hay muchas novedades que contar: en el trabajo sigo bastante atareado con la aplicación que estamos desarrollando, mi proyecto un poco aparcado durante la semana y por casa como casi siempre: Víctor me ha dicho que en Setiembre se cambiaría de casa aunque, salvo retrasos gigantescos, ya estaré en el CIDI de nuevo y habré sido yo el que se haya ido para esas fechas. Miri se ha comprado un coche, un Ford Fiesta azul celeste propiedad de su jefe (mejor dicho ex-propiedad jejejejje). Y en esas estamos.

Esta tarde hemos salido juntos de la oficina Dani y yo y hemos ido charlando camino del metro acerca del trabajo; no de un proyecto en particular sino del trabajo en general. La verdad es que me siento afortunado de tener la oportunidad de trabajar en algo que me gusta, y, aunque en ocasiones te quedas más horas de las habituales, o no te puedes quitar de la cabeza un problema que te ha surgido, la verdad es que las ventajas superan a los inconvenientes. Si ya es duro tener que ir a trabajar todos los días no me imagino tener que hacerlo a un trabajo que aborreces . Bueno que tampoco quiero aburriros demasiado que a veces se me va un poco la pinza.

Y para terminar este post os dejo una pequeña lista con algunos de los discos que han caido en mis manos esta última temporada:
  • Latex Diamond y Sholo Thruth - "Plan B"
  • Afu-Ra - "Life Force Radio"
  • Afu-Ra - "State of The Arts"
  • ZPU-"Hombre de Horo"
  • Puto Largo- Inspiración
  • . . .
Tengo unos cuantos más nuevos, si alguien está interesado que me envíe un mail y le mando una lista con todos los discos que tengo (son casi todos de hip-hop).

Un abrazo!
Hasta pronto!

PD: a ver si este fin de semana me compro el disco duro externo que he visto y termino de escribir algún pequeño tutorial que tengo entre manos.

martes, mayo 22, 2007

El próximo Martes tendré la oportunidad de asistir al seminario "Dev2Dev Tech Days " que la compañía Bea Systems ofrecerá en Madrid. Nunca he estado en un acontecimiento parecido así que la verdad es que me hace bastante ilusión. Prometo un resumen de la experiencia :).

Poco más que contar en estos días; en la oficina sigo dándole al .NET con el objetivo de terminar la aplicación que debemos entregar (cuanto antes mejor :) ). Hoy no he hecho nada de mi proyecto pero la verdad es que no me apetecía mucho; he estado de charla con Víctor y Miri y ahora aquí estoy escribiendo un poco antes de acostarme. También me entretuve un rato hablando con Andre por el messenger (me hace mucha ilusión hablar con ella).

Sigo apuntado a la lista de correo de la facultad (AVISI) y estos últimos días ha surgido la polémica (por llamarlo de algún modo) a raíz de un artículo publicado por el diario El Comercio (leer artículo). Hablan acerca del porcentaje de abandonos,retrasos en la terminación de las carreras, etc (el resto de comentarios podeis leerlos vosotros mismos en el enlace anterior). No estoy de acuerdo con la interpretación que hacen de los datos que se les han facilitado (remarco interpretación porque al fin y al cabo es lo que están haciendo).
Y digo esto porque, al menos en lo que a la Ingeniería en Informática se refiere (seguramente en otras carreras pase exactamente lo mismo pero lo desconozco) un alto porcentaje de alumnos compatibilizan los estudios con el trabajo (con el lógico y consecuente retraso en la terminación de los estudios al no poder dedicarles todo el tiempo que se debiera). A la hora de realizar las estadísticas seguramente no se hayan tenido en cuenta el número de alumnos matriculados que tenían un contrato/beca de trabajo en vigor (a mi al menos eso me parece un dato importante). No quiero decir con esto que en el artículo enlazado anteriormente el diario El Comercio no esté diciéndo la verdad, sino que simplemente no comparto su interpretación de los datos. Y seguro que todos sabeis cuán diferente puede ser la interpretación de los datos. Ejemplo burdo:
  • Asistencia Manifestación según organización 1.000.000 de personas
  • Asistencia Manifestación según fuentes oficiales 100.000 personas
O no es lo que pasa en todas las manifestaciones jajajajjaja.

Todo ésto, unido a los cambios que se avecinan con el nuevo Tratado de Bolonia (con el que estoy seguro de que los ingenieros en Informática saldremos perdiendo, ojalá me equivoque) me ha hecho hacerme algunas preguntas a las que todavía no he encontrado respuesta (quizás alguno de vosotros me pueda dar alguna).
Si tenemos una de las mejores educaciones universitarias de la Unión Europea, ¿por qué tenemos que ser los primeros en dar el salto? No estamos a la cabeza en nada referido a la Comunidad Europea, ¿por qué cambiar algo que de momento está funcionando de manera notable?

Soy partidario de la educación universitaria; pero no de una Universidad que simplemente pretenda ser una factoría de titulados en el que da lo mismo como se consiga dicho título. Desde mi punto de vista la Universidad no debería ser un mero trámite hacia un papelito que te acredita como un Licenciado/Diplomado/Arquitecto/Ingeniero/.... sino que debería ser un paso más hacia tu futura carrera profesional, un paso muy grande eso sí, en el que deberías aquirir una serie de conocimientos básicos además de, por qué no, formarte como persona. Me gustaría que la Universidad fuese una fábrica de profesionales y personas, no de títulos.

Creo que de este vídeo todos podríamos aprender algo (es un poco largo, aviso :):
Discuros de Steve Jobs (fundador de Apple) en la apertura del curso en Standfor

Siento haberme alargado tanto!

Hasta pronto!
Un abrazo!

lunes, mayo 21, 2007

Hace unos cuantos días que no me pasaba por aquí pero la verdad es que, ni tenía muchas cosas que contar ni muchas ganas de escribir así que en esas estamos :).

Me he dedicado al trabajo (que tengo bastante por cierto), a mi proyecto, a leer algunos libros que tenía pendientes, también he ido al Museo del Prado (habían prolongado la exposición de Tintoretto así que finalmente pudimos verla), algún que otro paseo aprovechando el buen tiempo que hizo durante el fin de semana y un poco de deporte (eso sí, en la tele jajaja): partido de Nadal/Federer en la final de Hamburgo, mundial de motociclismo en LeMans y alguna otra cosilla más que ahora mismo no recuerdo.

Intentaría hacer una crónica de lo que vi en el Prado pero mis conocimientos de arte se reducen a: me gusta, no me gusta; así que mejor me callo la boca :). Decir que la exposición de Tintoretto estaba muy bien (el único pero es que yo me la imaginaba más grande).

Cambiando de tema, esta tarde cuando he llegado a casa y me he conectado a esta televisión con teclas he recibido un correo electrónico que me ha hecho mucha ilusión: era Andres (Dasein en el web, aunque para mi siempre será el ¡MAMAO! jajajja). Hacía tiempo que no hablaba con él y me ha invitado a formar parte de un nuevo proyecto que está preparando: como no, la respuesta era obvia.

Pocas cosas más se me ocurren; tengo pensadas un par de inversiones de mi sueldo (realmente tres aunque me temo que la tercera va a tener que esperarse). El par de cosillas que espero comprarme en breve son un disco duro externo y una camiseta de DADA. Mi tercera compra sería cambiarme el portátil por un MacBook Pro pero me temo que no tengo tanto dinero como para llevar a cabo esta inversión (a ver si encuentro la manera de ganarme un sobresueldo jajajajaj)

Y ya para terminar (se me ha venido ahora mismo a la cabeza) a raíz de uno de los comentarios que me hizo Andrea el otro día: no soy un friki por mucho que Andre se empeñe; simplemente me gusta ésto de la programación y esas cosas y de vez en cuando considero que algún tema puede ser interesante o servir de ayuda y por eso lo posteo. Ahí queda.

Hasta pronto!
Un abrazo!

miércoles, mayo 16, 2007

De nuevo cambios en la oficina :), ahora tengo que ayudar al jefe en un proyecto en el que estaba trabajando así que la tarea en la que hemos estado inmersos a lo largo de estos días la aparcaremos durante un tiempo para ponernos manos a la obra y terminar la aplicación que él estaba desarrollando; toca .NET y C#.

Cambiando de tema, aprovechando que era día de fiesta aquí en Madrid, y que hacía un día muy bueno ayer salí a darme un paseo por el Retiro y por el centro de Madrid: un montón de gente por el parque y en la Plaza Mayor, todo ello acompañado de un sol de justicia :). Ahora que sale el tema del Retiro,pensaba yo erróneamente que por aquí no habría los mismos "pinchinos" en bikini que habitualmente hay por la playa en Xixón: ¡ qué equivocado estaba !. Y ya que estamos con el tema de los pinchinos: vaya vainilla de vecina que tenemos; siempre me cruzo con ella por el portal y cada vez que la veo me parece que está más buena.

No tengo muchas más cosas que contar: sigo a la espera de que se reanuden los cuartos de Tehauppo (en una hora y pico tienen previsto relanzar las mangas de cuartos), últimamente estoy bastante concentrado en mi proyecto, quizás este finde me vaya de compras a fundir algún que otro eurillo y nada más que voy a ver la final de la Copa de la UEFA con Víctor (no es que me haga demasiada ilusión ver el partido pero así paso un rato con él ya que apenas coincidimos).

Bueno muchachos, mucha suerte a los que tengais exámenes/entregar prácticas, etc ....: Vicio,Andre,Le,Mono,Camino, .... Mucha suerte y ánimo para todos!

Para el próximo post puede que tenga preparado otro pequeño manual del estilo de los anteriores!

Hasta pronto!
Un abrazo!

martes, mayo 15, 2007

Como bien sabreis una gran parte de los desarrolladores Java utilizan el Eclipse. Pero como no sólo de Java vive el hombre :) también es posible utilizar dicho IDE para construir aplicaciones C++ y así aprovecharnos del fantástico entorno de desarrollo y demás opciones que Eclipse nos brinda. A través de este pequeño tutorial intentaré explicar como instalar el plugin correspondiente y crear un pequeño y sencillo proyecto demostración. Manos a la obra:

En primer lugar tenemos que instalar el plugin CDT. Para ello nos vamos a la ventana Help->Software Updates->Find and Install como muestra la siguiente imagen:



En la pantalla que nos aparece seleccionamos la opción: Search for new features to install. A continuación añadimos el sitio remoto desde donde descargaremos el plugin CDT: la siguiente imagen ilustra como configurar el sitio remoto.



Una vez seleccionado el plugin no tenemos más que darle a siguiente y esperar que el proceso finalize.

Estamos listos para crear nuestro primero proyecto C++ en Eclipse. Para ello nos vamos al menu File->New->Project y obtendremos una lista de todos los tipo de proyectos que podemos crear (entre ellos los de C++).



Nos aparecen dos tipos de proyectos: Managed Make and Standard Make. En el primero de ellos te ayuda a crear los makefile mientras que en el segundo tenemos que escribir el makefile nosotros mismos (personalmente prefiero la segunda opción).
Seleccionamos la opción que mejor se adapte a nuestras necesidades y tendremos un nuevo proyecto C++ listo para empezar. A partir de ahora tenemos disponibles muchas de las facilidades que nos ofrece eclipse: depurador, compleción de código,una vista similar a la de tareas Ant donde podremos añadir los diferentes targets de nuestro makefile, conexión a subversion de manera sencilla (ver plugins Subclipse o Subversive), . . . . . . . . . . . . . .

Una vez instalado el plugin y creado el nuevo proyecto podremos configurar todas las opciones en la ventana de preferencias del proyecto:



No explicaré todas las opciones porque podría tirarme aquí el resto de la mañana y , aun así, no serviría de mucho. Son bastante intuitivas y muy fáciles de configurar: selección del parser que nos genera los ejecutables,compilador a utilizar, declaración de variables de entorno, ......

Espero que os sirva de ayuda.

Hasta pronto!
Un abrazo!

lunes, mayo 14, 2007

El finde se resume en dos palabras; portátil y sofá. Me he dedicado a la lectura de unos manuales que tenía pendientes para continuar con mi proyecto,terminar de configurar mi nuevo Ubuntu, ver la tele,dormir, y, la verdad que pocas cosas más.

El viernes retomamos la sana costumbre de salir a cenar por ahí para continuar con nuestro objetivo de elaborar una guía de restaurantes y garitos ( en esta ocasión únicamente nos fuimos a cenar). Aprovechando que he sacado el tema os dejo una pequeña lista con algunos de los sitios en los que he estado (junto con alguna pequeña recomendación):

  1. El olvido. El último en el que he estado; buen servicio,una buena relación calidad-precio (unos 30€ por cabeza). El atún a la plancha con fideos de arroz y salsa XXX (no me acuerdo del nombre de la salsa :) ) está muy bueno.
  2. El recuerdo. Pertenece a la misma cadena que el anterior. Ofrece precios parecidos en ambos restaurantes. El precio del plato principal incluye un entrante (al igual que en El Olvido). En los dos admiten cheques restaurant.
  3. La Gloria de Montera. Excelente relación calidad-precio. Situado en la calle Montera. No admiten reservas y casi siempre está hasta los topes. La comida está muy buena: me gusta mucho las milojas de solomillo y, tenemos que destacar, como no, el Chocolatísimo (hay que probarlo, no se puede describir). No sé si admiten cheques.
  4. Per Bacco. Restaurante de comida italiana. La comida no está mal pero me parece demasiado caro para lo que ofrecen. No admiten cheques.
  5. A dos Velas. Me gustó mucho. Está en la zona de la parada de metro de Tribunal. Buena relación calidad-precio. Muy rico el "Mañanamepongoadieta". No tengo ni idea si admiten cheques.
  6. Pizza Jardín. Comida italiana.Es una cadena que tiene varios restaurantes de diversos tipos. Muy buena la Lasaña (no sé si se escribe así en castellano :) ). Precios asequibles.
  7. Pinnocio. También comida italiana. Prefiero el anterior. No se me ocurre nada destacable.
  8. Orale Compadre. Restaurante Mexicano. Lo tenemos enfrente de casa, siempre está lleno. La comida está muy buena y ofrece unos precios bastante asequibles.
  9. La Mordida. Uno de los restaurantes Mexicanos de Joaquín Sabina. Admiten tickets restaurant. Muy buena la comida y una buena relación calidad-precio. Están muy buenas las cervezas.
He estado en unos cuantos más pero ahora mismo no recuerdo los nombres, rebuscaré entre las tarjetas que tengo en la habitación y continuaré la lista en otro post. Prometo también hacer una lista de todos los garitos de copas que conozco :)

Cambiando de tema, el tour WCT sigue su curso (hace tiempo que no escribo nada sobre el circuito). Este año la cosa está que arde, Fanning y Parko están rindiendo a un nivel altísimo. Este año promete grandes emociones.
Ahora mismo se está disputando la prueba de Tehauppo (Tahiti) con los siguientes emparejamientos de cuartos:
  • Parko vs Andy Irons
  • Damien Hoobgood vs Jeremy Flores (se cargó a Slater en la ronda cuatro)
  • Fanning vs Stedman
  • Cory Lopez vs Kai Otton
La ronda de Parko y Andy promete espectáculo. Seguiré atento.

Bueno, que ya ha estado bien por hoy; a ver si como algo y trabajo un poco que mañana no toca ir a la "office" porque es fiesta(San Isidro).

Hasta pronto!
Un abrazo!

jueves, mayo 10, 2007

Está demostrado que no puedo pararme ni a echar un vistazo. Esta tarde a la salida del trabajo decidí darme una vuelta por el Foot Locker del centro comercial donde tenemos las oficinas y ojear algunas zapatillas y ....... ¡zas!: ya me he comprado unas; si es que cuando una cosa me entra por el ojo jajaajja. Además, todo esto sigue una sencilla ecuación matemática: Zapatillas Nuevas = 125€ menos en la cuenta :).

No tengo mucho tiempo a escribir (ni tampoco muchas cosas que conta) porque todavía tengo que ducharme e ir hasta Callao donde hemos quedado unos cuantos compañeros de la oficina. Intentaré regresar a casa antes de que cierre el metro.

Os dejo unos cuantos vídeos de surf que me han gustado bastante:

1. Olas en Mentawai y Mundaka.



2. Taj Burrow en Passion Pop






3. Taj Burrow en Waves of Refraction




4. Taj Burrow en Lineup




5. Fanning en Lineup




Hasta pronto!
Un abrazo!

miércoles, mayo 09, 2007

Últimamente el trabajo nos está llevando bastantes horas así que apenas he tenido tiempo de escribir aunque, sinceramente, creo que tampoco tengo muchas cosas que contar. He terminado ahora mismo de cenar, ¿a que no adivinais el qué jajaajaja?, y mi intención era dedicarle un rato a mi proyecto pero primero voy a escribir este post y después ya veremos ;).

Aquí en Madrid las cosas siguen como siempre, tirando (que no es poco) como diría alguien que yo conozco. En el trabajo sigo muy a gusto y la verdad que entre semana no es que haga demasiadas cosas (y mientras el mono dándose baños por la mañana :( ;¡¡¡ que lo disfrutes mucho moniquí !!!. Puede que mañana salga un rato de fiesta con algunos compañeros de la oficina; vamos a despedir a Javi que próximamente partirá hacia su nuevo destino: México (irá a hacer compañía a mi buen amigo Alberto).

En otro orden de cosas, finalmente hemos decidido disolver (por unanimidad) la peña de loterías que habíamos fundado en la facultad. No es que nos hayamos hecho ricos (bueno, realmente tampoco es que hayamos ganado demasiado dinero), pero las risas que nos hemos pasado cada vez que nos juntábamos para derrochar el codiciado botín no tienen precio. Espero que, a pesar de que la peña haya sido disuelta, podamos quedar (aunque sea de Pascua en Ramos) para rememorar viejos tiempos.

Sé que lo he dicho muchas veces pero lo repito: a ver si alguien se anima a hacerme una visitilla y conocer Madrid (el que ya lo conozca puede venirse igual: le descubriremos cosas nuevas). Requisito indispensable: ganas de fiesta y de pasárselo bien.

Va siendo hora de cerrar este post que mis intenciones eran las de trabajar un poquito.

Hasta pronto!
Un abrazo!

domingo, mayo 06, 2007

No he podido resistirme; mirad el vídeo que acaba de llegar a mis manos. Hay gente que nunca dejará de sorprenderme:

Quicksilver dynamite surfing viral






Que tengais buena semana!
Casi se ha terminado el fin de semana;ha sido visto y no visto. El viernes salí de fiesta así que el sábado me dediqué a vegetar durante todo el día: estuve trabajando un poco en el ordenador y después me puse a ver Apocalipto (no sé si lo he escrito correctamente). La peli, sinceramente, me gustó, a pesar de tener que leer los subtítulos; os la recomiendo. Esta mañana me he levantado más o menos temprano y ha tocado realizar tareas domésticas: lavadora, limpiar el baño,la habitación y el salón y alguna cosilla más. No sé que voy a hacer el resto de la tarde: me imagino que trabajaré un poco en mi proyecto y después quizás salga a darme un paseo aprovechando el magnífico día que ha amanecido.

No tengo mucho más que contar así que vamos a ir terminando que tengo que pensar que voy a comer hoy jajajjaja.

Antes de terminar este post me gustaría retomar la sección de vídeos de surf. Aquí os dejo un par ; espero que os gusten







Hasta pronto!
Un abrazo!

viernes, mayo 04, 2007

Trabajando en mi nuevo proyecto he tenido la oportunidad de retomar el trabajo con mi lenguaje de programación favorito (alguna chapuzilla tengo hecha pero en plan personal) y de poder aplicar mis escasos conocimientos en el desarrollo del mismo.

Aunque el párrafo anterior no era precisamente lo que tenía pensado contaros aunque me viene perfecto para introducir el "problema" que pretendía ilustrar:

Muchas veces cuando estamos desarrollando nuestras aplicaciones utilizamos asertos o similares para determinar errores. El problema de estas soluciones radica en que la mayoría de ellas son en tiempo de ejecución (dejar constancia que yo también lo hacía así :D). Un buen "chequeo estático" y mensajes de error configurables y explicativos son necesarios, sobre todo desde que la programación genérica se lleva cada vez más en el lenguaje C++. A continuación os propongo una pequeña utilidad para detectar errores en tiempo de compilación (con los consiguientes beneficios que ello conlleva).

Como bien os estareis imaginando la idea no es mía.(sinceramente ahora mismo no recuerdo si la idea original la leí en un artículo o en un libro de Alexandrescu). Vamos allá:

En primer lugar definamos una plantilla de clase del siguiente modo:

template struct Checker{
Checker(...);
};


A continuación hagamos una especialización parcial de la plantilla anterior:

template <> struct Checker { };

Vamos a aprovecharnos del preprocesador para construir mensajes de error configurables

#define CHECKING_ESTATICO(expresion, mensaje) \
{\
class ERROR_##mensaje{};\
(void)sizeof(Checker<(expresion)!= 0>((ERROR_##mensaje()))); \
}

¡OJO! No dejar espacios entre el nombre de la macro y los paréntesis

Vamos a darle utilidad a este chequeo en tiempo de compilación construyendo una versión "segura" de reinterpret_cast. Imaginaos que nuestro código realiza un reinterpret_cast de un tipo A a un tipo B y que estamos desarrollando nuestro proyecto en una máquina Z (nosotros sabemos que en nuestra máquina de desarrollo el tamaño del tipo A es menor o igual que el tamaño del tipo B). Ahora imaginaros que llevamos nuestro código a una máquina Y en la que no sabemos si el tamaño del tipo A es menor o igual que el tamaño del tipo B ....... ¿que ocurrirá?

Para ello desarrollemos, baśandonos en nuestra construcción anterior, una versión segura de reinterpret_cast que nos de un error en TIEMPO DE COMPILACIÓN en caso de que el tipo de destino del casting presente un tamaño menor que el origen. Actuaríamos del siguiente modo:

templateHacia, typename Desde>
Hacia reinterpret_cast_modo_seguro(Desde d){

CHECKING_ESTATICO(
sizeof(Desde) <= sizeof(Hacia),
Destino_Demasiado_Pequenio
);
return reinterpret_cast(d);
}

Podríamos utilizar esta función del mismo modo en que usamos reinterpret_cast.

Como podeis ver esto no es más que una ligera idea de como podemos usar los templates y el preprocesador para detectar errores en tiempo de compilación y enviar mensajes más o menos descriptivos. Podríamos construir, con poco trabajo, más funciones similares a la anterior que nos pueden resultar útiles (con la ayuda de la macro CHECKER).

Creo que esto es mucho más difícil explicarlo que entenderlo jejejje. Espero que os sirva de algo (posiblemente no pero así al menos he pasado la tarde que no me apetecía trabajar en mi fin de carrera).

Hasta pronto!
Un abrazo!

PD: creo que como mejor se entiende la macro CHECKER es mirando el código que genera el preprocesador. Suponiendo que tenemos el código fuente en el fichero tricks.cc, si queremos ver que código se genera una vez preprocesada la directiva #define no tenemos más que ejecutar la siguiente orden:

$> gcc -E -o tricks.i tricks.cc

La orden anterior crea el fichero tricks.i con el código generado por el preprocesador.

jueves, mayo 03, 2007

Ya casi estamos a viernes :). La verdad es que con este "puente" la semana se me ha hecho bastante amena. Como bien os podreis imaginar las cosas por aquí siguen sin demasiados cambios; en el trabajo me lo paso muy bien con este nuevo proyecto (ya sé que suena raro pero es así, que le vamos a hacer), y el día transcurre bastante rápido. Por las noches intento continuar poquito a poco con mi proyecto fin de carrera (como ahora) y hacer alguna que otra cosilla (aunque si bien es cierto que este par de semanas atrás no he tenido demasiado tiempo). Esperemos que este finde la climatología acompañe y pueda salir a gastar algo de dinero que ya tengo ganas :D.

Esta tarde,me había olvidado el móvil en casa, para no variar, me ha llamado mi madre para decirme que me ha tocado como suplente de presidente en una mesa electoral; todo un chollazo vamos. No tenía pensado subir a votar (pretendía hacerlo por correo),así que a ver si logro escaquearme de algún modo. Ya veremos en que termina todo ésto; os seguiré contando.

Cambiando de tema, ayer le escribí un mail a Alberto para preguntarle que tal marchaba su periplo por tierras mexicanas y, la verdad, parece que las cosas están bastante bien. Es un tío genial y se lo merece, me alegro mucho por él. Sabé que si puedo le haré una visita; que mejor oportunidad para cruzar "el charco" que ir a visitar a un amigo. Tendré que estar atento a los viajes.

No sé me ocurren muchas cosas más que contaros (mi idea inicial era dejar un post en mi nueva sección relacionado con las Typelist, pero me parece que no tengo la cabeza para muchas ideas, lo dejaremos para otro día).

Ya que estoy aprovecho para deciros que, aunque ya sé que estado por ahí hasta hace bien poco dando la lata, me acuerdo mucho de tod@s. Llamaros a tod@s me sale por un ojo de la cara así que no seais ratas y llamadme vosotros a mi de vez en cuando jajajajajjajajajaja, es broma.

Mono!, prometo que el próximo post pongo otro poco de código a ver si aprendes algo jajajajaj (Andre no te preocupes que seguro que tu también puedes aprender algo mujer!).

Bueno, sed buenos y hasta mañana!
Un abrazo!

PD: no he logrado engañar a nadie para que me acompañe al Festival Cultura Urbana 2007. Yo lo dejo caer . . . . . . . .

miércoles, mayo 02, 2007

2 de Mayo, día de la Comunidad de Madrid y aquí estoy sentado en el sofá leyendo unos manuales y trabajando un poco en mi proyecto fin de carrera. Sigo solo en casa ya que Víctor y Miri siguen en León y Javi ha tenido que ir a trabajar.

Ayer finalmente me acerqué hasta el Prado y, mi gozo en un pozo, estaba cerrado. Tanto internet, tanta informática y tanta leche y no se me ocurre mirar en la web del museo cuales eran los días que permanecía cerrado. Si ya me lo dice mi madre, de donde no lo hay no se puede sacar jajajajaja. A pesar del fiasco que supuso encontrar el museo cerrado decidí aprovechar la tarde y darme un paseo por Madrid ( un paseo de unas tres horas, la verdad que no estuvo nada mal). Retomando el tema del museo :) ;hoy la entrada es gratuita pero ha amanecido lloviendo y ahora mismo no tengo muchas ganas; si por la tarde mejora un poco el tiempo quizás me de un paseo por allí.

Estos días de puente han sido conflictivos y se han producido altercados entre las fuerzas policiales y grupos de jóvenes con motivo de la celebración de botellones en la conocida zona de Malasaña. Sinceramente no estoy muy al corriente de todos los detalles, simplemente lo que he podido leer y ver en el periódico. Aquí os dejo el enlace a la noticia publicada en la edición digital de El Pais: disturbios en Malasaña.

¿Y lo que resta de día? Seguiré trabajando en mi fin de carrera y, como os decía antes, si la climatología acompaña quizás me acerque de nuevo hasta el museo del Prado.

Cambiando un poco de tema, los días 11 y 12 de Mayo se celebra aquí en Madrid el Festival Cultura Urbana. Nunca he estado y me gustaría acudir, aunque sea solo (me temo que sera así porque no parece que el hip hop sea una música que cale demasiado hondo entre toda la gente que conozco por aquí :) ). El cartel, al menos para mi, es inmejorable: el viernes actuarán, entre otros muchos, Doble V,El Meswy,Arma Blanca,Jota Mayúscula & Friends,Mitsuruggy,Tote King, el Chojín,Cut Killer, DJ NetiK, ...... Y dado que el sábado no podía ser menos que el día anterior se presentan grupos de la talla de SFDK,Jesuly,La Mala Rodríguez,Juaninacka,Dj Destro 187 + El Cerebro,Nas,A3Bandas y muchos más. Además de los espectáculos musicales se organizan otra serie de eventos como batallas de gallos, zona de BMX, proyección de videos, graffiti,....... . Mejor lo veis vosotros mismos: Cultura Urbana.
El abono para los dos días cuesta 45€ y entrar un solo día 27€. A ver si engaño a alguien para que se venga conmigo.

Hasta pronto!

martes, mayo 01, 2007

Primero de mayo, es increible lo rápido que se me pasa el tiempo últimamente; no sé si será que me estoy haciendo viejo a marchar forzadas o que últimamente tengo bastantes cosas entre manos. Esperemos que sea lo segundo jejejeje.

Este finde no he hecho gran cosa, el sábado a la tarde estuve trabajando un rato en mi proyecto y por la tarde salí de compras (aunque no me compré nada ya tengo ojeadas unas zapatillas y alguna que otra cosilla) y el domingo me fui a Salamanca a pasar el día.

No tengo muchas cosas que contaros así que voy a aprovechar para comenzar una nueva sección en el blog: el mundo de la programación. Simplemente se trata de algunos ejemplos sencillos basados en mis escasos conocimientos y mi corta experiencia de algunos temas que me gustan o de los que me gustaría aprender. Espero que os guste y/o os pueda servir de ayuda. Vamos allá . . . . . .

Vamos a comenzar con un post dedicado a los patrones de diseño y el lenguaje de programación C++. Os propongo una implementación del patrón de diseño Singleton (uno de los patrones de diseño más simples aunque creo que muchas veces lo utilizamos de forma no demasiado apropiada).

El patrón anterior nos garantiza que, desde el momento en que instanciamos un objeto de dicha clase, será esa la única instancia que exista de dicho objeto. Existen multitud de libros acerca de patrones de diseño y con multitud de aplicaciones de los mismos. Yo desde aquí nada más pretendo dejaros mi experiencia y el uso que yo le he dado en mis aplicaciones. Por ejemplo, este patrón lo he utilizado en el desarrollo de un compilador para representar los builtin type. Manos a la obra:

En primer lugar definimos la clase singletonPattern y el método que nos permitira obtener una referencia al mismo (hacemos que el constructor sea privado para que no se puedan crear objetos de ese tipo):

class singletonPattern{
private:
/// unique instance of the object
static singletonPattern * instance;
/// Default Constructor
singletonPattern(){}

public:
/*!
Returns the reference
to the unique instance of the object

(if it's the first time create de reference)
*/
static singletonPattern * getInstance(){
if(instance == NULL)
instance = new singletonPattern();
return instance;
}
};

// init the static member
singletonPattern * singletonPattern :: instance = NULL;

El código anterior no estaría completo dado que nos queremos asegurar de que nuestra instancia sea única por lo que tendremos que implementar el constructor de copia y el operador de asignación (no tiene sentido el operador de asignación en el singleton) como privados dentro de nuestra clase singletonPattern. Algo como lo que sigue:

/// Copy Constructor
singletonPattern(const singletonPattern & sp){}

/// Assignement Operator
singletonPattern & operator=(singletonPattern & sp){
return *this;
}

Si quisieramos utilizar esta clase en uno de nuestros programas no tendríamos más que declarar un objeto tal y como a continuación se muestra:
singletonPattern * singleton = singletonPattern::getInstance();

Y listo. Con esto tendremos nuestro patrón de diseño Singleton listo para disponer de el cuando deseemos.

Desde el siguiente enlace podeis descargaros el código fuente completo junto con un makefile: singletonPatternC++.

El código disponible en el enlace anterior es una primera aproximación. Intentemos añadirle algunas mejoras:

Un primer cambio a realizar sería el de retornar una referencia en lugar de un puntero en el método getInstance(); de este modo evitaríamos que el usuario que obtiene una referencia del objeto intentase aplicarle el operador delete. El prototipo del nuevo método podría ser algo parecido a lo siguiente:

static singletonPattern & getInstance();


Pensemos ahora en que ocurre cuando se destruye el singleton.Realmente no se trata un memory leak tradicional sino un resource leak. El singleton podría haber adquirido diversos recursos del operativo como un socket,un semáforo,...... Con el objetivo de solucionar este problema, Scott Meyers facilitó una solución sencilla (y muy elegante): en lugar de almacenar un puntero a un objeto de tipo Singleton su solución instancia una variable local estática del siguiente modo:

singletonPattern & getInstance(){
static singletonPattern instance;
return instance;

}
El fragmento anterior se conoce como el singleton de Meyers y se basa en, tal y como describe Alexandrecu en su libro Modern C++ Desing:Generic Programming and Patterns Applied, "some compiler magic": un objeto estático de una función es inicializado, en tiempo de ejecución, en el momento de la primera pasada de la definición.

Este par de soluciones son, aparentemente sencillas, y pueden ayudarnos a construir un Singleton mucho más robusto.

En el libro de Alexandrescu mencionado anteriormente plantea otros problemas tales como las referencias muertas (a las cuales aplica soluciones elegantes e ingeniosas) o los problemas derivados de la interacción de los hilos y los singleton. En futuros post puede que ahondemos un poco en estas cuestiones.

Hasta pronto!
Un abrazo!