Thinking on hiring me?

Please read

Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

Archive for the ‘software’ Category

Jueves, Enero 31st, 2008

Kroonos cumple sus 1.000 usuarios

Hace ya tiempo que es Miguel quien se encarga de dirigir a nivel tecnológico la jefatura del proyecto Kroonos.com y que yo ya no aporto nada a esta aplicación más que a nivel usuario.

Ver hasta dónde están llevando mis antiguos compañeros y socios Jesús y Miguel esta aplicación me llena de orgullo de padre.

Hoy Kroonos ha protagonizado toda una página en el ciberpaís y ahí estamos unos cuantos (yo el tercero por la izquierda), aunque no todos los que fuimos y ni ahora son todos los que están.

Kroonos.com cumple sus 1.000 usuarios

Felicidades Kroonos.

Lunes, Agosto 13th, 2007

El Tronco busca betatesters

El equipo de Constela estamos muy animados trabajando en una aplicación para Internet a la que llamamos “El Tronco”. El Tronco es un experimento de desarrollo de software social. Es una implementación completa de todas las funcionalidades básicas que una aplicación basada en comunidades debe tener.

Ahora mismo nos encontramos en el frágil, delicado y emocionante momento en el que necesitamos a un pequeño núcleo de gente voluntariosa que desee hacernos de betatester.

La función de betatester es muy sencilla. Se trata de entrar en la aplicación y usarla, usarla y usarla, y, cada vez que algo no os funcione bien: nos lo comunicáis, cada vez que veáis algo mejorable: nos lo comunicáis, cada vez que no entendéis algo: nos lo comunicáis, cada vez que os surja una sugerencia: nos lo comunicáis.

La labor del betatester debe resultarle divertida y/o interesante al que la realiza así que no te sientas obligado/a a participar en esta convocatoria si estas tareas no te van a resultar, a tu manera, gratificadoras, ya sea por satisfacer ese cosquilleo de curiosidad o por que te gusta la idea, o por lo que sea.

Hemos creado una especie de versión de nuestra aplicación para meterla en la habitación de pruebas y os la ofrecemos a todas aquellas personas que nos quieran hacer de betatester.

Portada de MiCine.Constela.es

Esta versión de la aplicación la queremos centrar en una temática: “las películas que nos gustan”, una especie de foro social con espacio para que te conviertas en crítico de cine amateur.

La aplicación la tenéis disponible aquí: micine.constela.es.

En esta primera fase de pruebas necesitamos que cada persona que se registre nos lo informe, o ya seremos nosotros/as quienes intenten ponerse en contacto con ella. Es muy necesario tener un núcleo de gente pequeño para no atosigar a la aplicación en esta fase tan embrionaria.

Para empezar con tu labor de betatester debes acceder a la aplicación: micine.constela.es y comenzar a navegar por ella. Seguramente al principio no le encuentres mucho sentido a nada e incluso esas sensaciones de desamparo y dudas también nos gustaría que nos las comentases.

Una vez que ya te has dado una vuelta por la aplicación quizás quieras registrarte y tener tu propio perfil y empezar a introducir comentarios en otros perfiles o incluso atreverte a subir tu propia crítica de película.

Tienes que ser paciente con la aplicación pero a la vez exigente, no debes desanimarte porque algo no ha funcionado bien pero sí tienes que expresarte e informarnos. Tampoco te sientas obligado/a a informarnos de todo lo que surja si eso va a hacerte desfallecer, quizás quieras navegar por la aplicación haciendo caso omiso de todos los errores y sugerencias y esperar a otro momento para empezar a informar.

Una cosa importante a tener en cuenta es que al ser una aplicación en estado de desarrollo no podemos ofrecer ningún tipo de seguridad de que no haya pérdida de datos ni de contenidos, si te vas a sentir mal porque llegas un día y algo de lo que escribiste ha desaparecido mejor no te arriesgues a hacernos de betatester. Aún así intentaremos crear copias de seguridad diarias de los contenidos.

No te esfuerces en extremo en que los contenidos que generes sean de muy buena calidad, lo importante ahora es usar la aplicación. Como ya he dicho antes: cualquier fallo en el sistema puede provocar la pérdida total de contenidos.

Por favor: siéntete libre de hacernos cualquier pregunta o proposición. Recuerda: la Internet 2.0 la haces tú.

Actualizado 14 de Agosto

Hemos creado un grupo en google groups para promover las conversaciones entre los desarrolladores y el grupo de betatester, siéntete libre de solicitarnos una subscripción.

El Grupo El Tronco.

Puedes solicitarnos una suscripción poniendo un comentario en este post o directamente en la página del Grupo El Tronco, o registrándote en la aplicación de pruebas: Registro en MiCine.

Lunes, Julio 30th, 2007

Descubrimientos curiosos en el mundo del Software Social

Diarios de viajeros

www.wikitravel.com

“Una guía mundial de viajes, gratuita, completa, actualizada y para todos”

Una nueva demostración que la aplicación web 2.0 por excelencia es mediawik. Esta vez se trata de un recopilatorio de experiencias realizado por viajeros anónimos que nos cuentan trucos y detalles sobre un posible objetivo de nuestro próximo viaje.

* nacimiento en julio del 2003
* 16.000 destinos en inglés
* publicado en 17 idiomas

Dormir en aeropuertos

www.sleepinginairports.net

“Para viajeros que realmente andan justos de presupuesto y buscan una manera de ahorrarse unos dólares, ¿por qué no considerar dormir en el aeropuerto?. Muchos aeropuertos son actualmente mejores que la hospedería local […]”

Una de las aplicaciones de Software Social más feas que he visto nunca (se enorgullecen de “Site made with Paintbrush”), también una de las más antiguas, aunque no por ello deja de ser realmente útil. Justamente hace no 10 días que tuve que hacer un transbordo de 6 horas en el aeropuerto de Praga, me habría venido estupendo conocer trucos para agenciarme un hueco cómodo donde esperar agusto.

* nacimiento: hace 11 años
* más de 5.000 experiencias

Reservas en cenas caseras en París

www.meetingthefrench.com

“[…] abre para ti las puertas al íntimo y auténtico París. Encuentra una cama y desayuno, escoge un tour guiado por un vencindario de París, […]”

Una cena íntima ofrecida por un chef aficionado en su propia casa de París. Interesante y curiosa oferta de turismo.

Turismo como un vecino

www.like-a-local.com

“¿Cómo puedo experimentar la vida real en esta ciudad?”

Elige un vecino de la ciudad que se ofrece voluntariosamente a mostrarte sus secretos.

Martes, Julio 17th, 2007

Cuando el modelado de una relación entre 3 tablas se vuelve un ejercicio de arquitectura.

Este va a ser un post muy técnico así que, querido/a amigo/a, si pasabas por aquí en busca de lectura ligera mejor continuas surcando tu blog-roll.

Lo que voy a intentar explicar aquí es una cuestión de diseño de un modelo relacional de base datos aparentemente muy sencillo pero que me está generando enormes dudas existenciales y repetidos re-factors de nuestra implementación.

Supongamos que tenemos en nuestro diseño de clases un bean (pojo o como queramos llamarlo), al que llamaremos Element que contiene un número indeterminado de elementos de otra clase bean que llamaremos SubElement.

Hasta aquí todo bien, para traducir esto a un modelo de base de datos nos basta con un relación 1 a n entre una tabla ELEMENT y otra SUB_ELEMENT.

El problema viene cuando existe otra clase de beans que también, entre sus atributos, se encuentra uno que contiene un número indeterminado de beans de clase SubElement, como se muestra en la figura 1.

figura 1

Es aquí cuando la relación 1 a n se complica pues ya no puedo definir una clave entre la tabla SUB_ELEMENT y la tabla ELEMENT_TYPE_1 pues puede que el registro de la tabla SUB_ELEMENT deba estar relacionado en realidad con registro de la tabla ELEMENT_TYPE_2.

La primera aproximación que se me ocurre es definir dos tablas diferentes para los objectos de clase SubElement. Una tabla (SUB_ELEMENT_TYPE_1) contendrá aquellos registros que se tengan que relacionar con la tabla ELEMENT_TYPE_1 y otra (SUB_ELEMENT_TYPE_2) contendrá los que se tengan que relacionar con la tabla ELEMENT_TYPE_2. Como se muestra en la figura 2.

figura 2

Esta implementación me empezó a disgustar desde el primer momento por el hecho de tener 2 tablas diferentes que en realidad contenían registros del mismo tipo de objeto, sin contar con que si aparece otro tipo de objeto que a su vez contenga también objetos del tipo SubElement habría que sumar otra tabla más con toda la lógica de persistencia que conlleva. Así que seguí buscando.

En un pequeño brainstorming entre mis compañeros se nos ocurrió que podíamos diseñar una tabla para acoger los objetos de tipo SubElement que tuviera una referencias externa a una de las tablas ELEMENT_TYPE_X pero sin definir a cual. Para saber a qué tabla había pertenecía había que hacer uso de un nuevo campo en la tabla SUB_ELEMENT cuyo valor, sacado de un catálogo limitado, nos indicase a qué tabla real pertenecía el ID que hacía las veces de clave externa. Como se muestra en la figura 3.

figura 3

Esta propuesta cumple nuestro deseo de agrupar todos los elementos de tipo SubElement en la misma tabla reutilizando también toda la implementación de la capa de persistencia. Nos ahorramos también el tener que crear nuevas tablas para alojar objetos tipo SubElement cada vez que surja una nueva clase tipo ElementTypeX. Pero surge un enorme problema de integredad referencial y es que tenemos que desprendernos de crear una clave externa en la tabla SUB_ELEMENT pues esa clave aveces pertenecerá a la tabla ELEMENT_TYPE_1 y otras a la tabla ELEMENT_TYPE_2, como ya hemos dicho esto depende de campo ELEMENT_TYPE. Esto puede causar que existan registros en la tabla SUB_ELEMENT que estén apuntando a registros en la tablas ELEMENT_TYPE_X que no existan.

Estaba apunto de elegir esta propuesta como definitiva, pues aunque tiene peligro de integridad me resultaba la más fácil de administrar y era un modelo mucho más escalable, cuando apareció este dibujo en mi cuaderno, ver figura 4.

figura 4

A primera vista parece bastante más complicado que los anteriores, y lo es, pero no mucho. Aparecen unas nuevas tablas que hacen de puente entre la tabla SUB_ELEMENT y las tablas ELEMENT_TYPE_X. Estas tablas hay que duplicarlas cada vez que aparezca un nuevo objeto tipo ElementTypeX pero no acogen más que una relación y los objetos reales, los SubElement, se encuentran todos agrupados en la misma tabla.

Esta implementación dificulta las sentencias SQL de inserción, búsqueda y eliminación. Es la única pega que todavía me carcome.

Ruego, paciente lector que has llegado hasta aquí, que si tienes alguna sugerencia o corrección que hacer para llegar a una solución más ágil que ésta, sin que se perjudique la seguridad en la integración, seas tan amable y orgulloso de resumírmela.

Jueves, Abril 19th, 2007

No tengo un trabajo, tengo una profesión.

Un deseo que continuamente demanda y continuamente se autosatisface.

Nunca he vivido la vida como sueños de fin de semana y odiada realidad de lunes.

Nunca he sido ningún forofo de ociosas vaciones. Para mí, mis mejores nocheviejas han sido detrás de una barra.

Durante toda mi época profesional me ha cosquilleado la tripa al acercarse el lunes. Siempre ha habido motivos personales que me motivaran a levantarme y llegar hasta la oficina.

Sufro aveces, me avergüenzo otras y ahora estoy empezando a enorgullecerme por disfrutar de mi oficio. Qué poca compañía tengo en esta sesación.

Existe una gran diferencia entre tener un trabajo y tener una profesión. O por lo menos yo creo que se puede diferenciar. Por un lado tenemos la opción A del trabajo asalariado que no te aporta nada y al cual ofreces parte de tu tiempo por una recompensa económica más o menos agradable.

Yo he elegido la opción B. O mejor dicho: la opción B me ha elegido a mí.

Estaba yo en mi piso compartido, que pagaba con mi sueldo de camarero, tranquilamente reinventando la rueda con una implementación propia e inútil de un motor de persistencia para una aplicación web de la que no me iban a dar un duro y que ni siquiera me importaba. Mis compañeros de piso revoloteaban a mi alrededor y me traían el aire fresco que en el exterior corría. Se preocupaban por mi felicidad hasta que aprendieron y respetaron que tenía una addicción que requería de dosis elevadas y diarias de atención.

Mi adicción son los ejercicios de lógica. Las máquinas que funcionan.

A la vez no se me dan bien las matemáticas y me saca de quicio la variable aleatoriedad cuando intento construir algo.

Encontré desde pequeño en la programación una satisfación suave y agradable a mi problema.

Ese día que me encontraba tecleando infinitas, y atormentadamente problemáticas, líneas de mi motor de persistencia me llamó Jesús para una entrevista de trabajo. A los pocos días conocí a Miguel. En ese momento comenzó la historia de mi profesión.

Ahora disfruto del día a día. De los fines de semana, de los lunes y hasta de los miércoles. Cada día surgen retos que requieren de ingenio y valentía para ser superados. Cada día necesito aprender cosas nuevas que me hacen crecer como profesional y me completan cómo persona. Recivo continuas muestras de respeto y apoyo por mi iguales, mis compañeros, socios y clientes.

Me siento parte de un equipo. Me siento necesario y complementario.

Parte de algo que crece, navegando en el gran mar de internet, bordeado por paradisíacas playas sólo accesibles para los navegantes más intrépidos.

¿A quién le debo agradecer tamaña suerte? Falsas modestiar aparte: a mí, que me lo curro mogollón.

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

Creative Commons License
Fernando Guillen's blog by Fernando Guillen is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.