<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>El blog tardío</title><description>Porque siempre llego tarde... y hasta el blog debió nacer en 2008!!</description><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><pubDate>Thu, 19 Sep 2024 17:41:18 +0200</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">15</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://elblogtardio.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Porque siempre llego tarde... y hasta el blog debió nacer en 2008!!</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>Aprendiendo Ruby on Rails en dos días</title><link>http://elblogtardio.blogspot.com/2013/09/aprendiendo-ruby-on-rails-en-dos-dias.html</link><category>desarrollo</category><category>rails</category><category>recursos</category><category>ror</category><category>ruby</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Wed, 4 Sep 2013 12:36:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-4083603046144277149</guid><description>Tras largos meses ausente, hola de nuevo a tod@s!&lt;br /&gt;
&lt;br /&gt;
He vuelto porque tengo algo nuevo que contar sobre temas de desarrollo. Y es que, por motivos que quizá comente en futuros posts, he tenido que aprender Ruby on Rails y hacer un pequeño ejercicio en 2 días. Usaré este posts para documentar brevemente este proceso y recopilar los materiales interesantes que he recopilado.&lt;br /&gt;
&lt;br /&gt;
En primer lugar, hace varios meses realicé un &lt;a href="http://techfest.uc3m.es/?event=ruby-on-rails"&gt;taller de introducción a Ruby on Rails&lt;/a&gt; (RoR por brevedad) en la feria técnica T3chFest que tuvo lugar en febrero en la Universidad Carlos III de Madrid. Seguimos este estupendo &lt;a href="http://curriculum.railsbridge.org/curriculum/curriculum"&gt;tutorial&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://farm9.staticflickr.com/8251/8475915962_b11547b2d2_c.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="266" src="http://farm9.staticflickr.com/8251/8475915962_b11547b2d2_c.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Taller de introducción a Ruby on Rails en el t3chFest-uc3m&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Hasta aquí todo bien. Seguí el tutorial y entendí un poco por encima los aspectos básicos de rails, porque ruby lo conocía un poco de este &lt;a href="http://tryruby.org/"&gt;curso introductorio&lt;/a&gt; en codeschool. Había intentado entender los principios básicos en el &lt;a href="https://www.edx.org/course/uc-berkeley/cs-169-1x/software-service/993"&gt;curso de SaaS de BerkeleyX&lt;/a&gt;&amp;nbsp;pero durante el curso no hice mucho más que ver los videos.&lt;br /&gt;
&lt;br /&gt;
Pero esta semana he tenido que aprender a marchas forzadas, y el primer recurso que tenía en mente para comenzar era el &lt;a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book"&gt;famoso tutorial de rails&lt;/a&gt;&amp;nbsp;de Michael Hartl. La aproximación del tutorial es que, a parte de enseñarte los fundamentos de rails, te enseña buenas prácticas de desarrollo como usar un sistema de control de versiones (git con github), deployear a producción en heroku y, lo que más me interesaba, hacer desarrollo dirigido por tests (TDD), en concreto una forma específica de hacerlo que es BDD (Behavior Driven Development) donde lo que prima es el comportamiento de nuestro aplicativo. Estuve siguiendo el tutorial hasta los 5 primeros capítulos, saltándome el 2 ya que no me interesaba la generación automática de código (scaffolding, que no se usa en el "mundo real"). Como iba orientado a realizar un ejercicio concreto con esta información tuve bastante, complementándolo con un &lt;a href="http://net.tutsplus.com/tutorials/ruby/the-intro-to-rails-screencast-i-wish-i-had/"&gt;videotutorial de nettuts&lt;/a&gt; orientado a aprender lo más básico y lo más de verdad útil. Una vez entendí bien cómo funcionan las rutas y ciertas convenciones de nombrado, pude ponerme más en serio con el ejercicio que tenía que realizar ya que el patrón básico de rails, MVC, lo conocía desde hace tiempo de mis trabajos con J2EE.&lt;br /&gt;
&lt;br /&gt;
Para la última parte del desarrollo me fueron bastate útiles las &lt;a href="http://www.ruby-doc.org/"&gt;referencias de código&lt;/a&gt; de ruby, para revisar la documentación de los objetos, principalmente string, array y hash. Además, para los test de integración fue muy útil el uso de la &lt;a href="http://rubydoc.info/github/jnicklas/capybara/master/Capybara"&gt;documentación de capybara&lt;/a&gt;, que no fue tan fácil de encontrar como pensaba. Todo esto, con alguna ayudita de omnipresente StackOverflow te puedan ayudar a aprender RoR en dos días!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Tecnologías a explorar tras el codemotion</title><link>http://elblogtardio.blogspot.com/2012/03/tecnologias-explorar-tras-el-codemotion.html</link><category>codemotion</category><category>javascript</category><category>programación</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Thu, 29 Mar 2012 21:55:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-9212335988381735460</guid><description>Tras el &lt;a href="http://codemotion.es/"&gt;codemotion&lt;/a&gt; del sábado pasado tengo un montón de nuevas ideas en la cabeza, y eso hay que dejarlo reflejado en algún sitio... que si no se olvidan!. Voy a hacer un breve recorrido por las charlas a las que asistí (apretada &lt;a href="http://codemotion.es/agenda"&gt;agenda&lt;/a&gt; con 7 tracks en paralelo, muchas veces la elección fue complicada) y las tecnologías que quisiera explorar en ratos libres, o directamente en proyectos actuales.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;En primer lugar, asistí a una abarrotada &lt;a href="http://www.slideshare.net/iloire/building-web-apps-with-nodejs-socketio-knockoutjs-and-zombiejs-codemotion-2012"&gt;charla&lt;/a&gt; &lt;a href="https://github.com/iloire"&gt;Iván Loire&lt;/a&gt;, en la que introdujo el uso de node con express (hasta aquí todo conocido), pero introdujo un par de herramientas que no conocía: &lt;a href="https://github.com/assaf/zombie"&gt;zombie&lt;/a&gt;&amp;nbsp;(navegador sin UI para testing unitario) y &lt;a href="http://knockoutjs.com/"&gt;knockout&lt;/a&gt;&amp;nbsp;(que permite hacer bindings entre el modelo de datos y los componentes de la UI, de forma que si se actualizan los datos se reflejará automágicamente en la UI). En este bloque, oí muy buenos comentarios de la charla de metaprogramación en ruby.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;A continuación le tocó el turno a &lt;a href="https://github.com/borillo"&gt;Ricardo Borillo&lt;/a&gt; y la firma digital con el DNIe en java. Buena charla técnica de aspectos de seguridad, pero java me empieza a cansar bastante... Al final me quedé con las ganas de la charla de DevOps.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Después de un descanso en el que no pude llegar ni siquiera a la cafetería debido a la aglomeración de gente en el único pasillo de acceso (mitad ocupado por stands de patrocinadores), asistí a la chala de &lt;a href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt; ya que estoy trabajando en un proyecto que a la larga requerirá infraestructuras de BigData (según contaron, cuando tienes tantos datos que en sí mismo constituye un problema). Primera parte de charla muy buena, pero cuando se hicieron demos de las herramientas de Microsoft pasó a ser un poco más aburrido. Otro proyecto Apache relacionado que tengo que explorar es &lt;a href="http://mahout.apache.org/"&gt;Mahout&lt;/a&gt;, que facilita la minería de los datos y el machine learning, permitiendo hacer por ejemplo collaborative filtering y recomendaciones. Respecto al resto de charlas, me hubiese gustado pasarme por &lt;a href="http://eamodeorubio.github.com/be_nice_to_your_web_designer/#/cover"&gt;la de Enrique Amodeo&lt;/a&gt; de OOCSS, cuya presentación hizo con &lt;a href="http://bartaz.github.com/impress.js/#/bored"&gt;impress&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Antes de comer tocaba charla de SPA (Single Page Application) con &lt;a href="http://documentcloud.github.com/backbone/"&gt;backbone&lt;/a&gt;&amp;nbsp;de la gente de medianet software. Bastante ejemplos de código de cómo usar backbone para implementar MVC en cliente en aplicaciones de tamaño medio-grande. Para mi classON creo que tiraré de knockout, ya que no necesita tanta complejidad. En este bloque me perdí la charla de webscrapping que me contaron como muy buena.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihh4g58gZIVxSKAdmBl7aivObVY8eqDVyBjyDY9WlqtP2pFQeSzaBQcQc0fVbsAYyndIS97hM3TrRE69wDKxZQaNs5UEU3y6pxiA2BvziLFmlOnAeV5OyanRvCa6PT69qhP-wfIvS9PTvS/s1600/IMG_0948.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihh4g58gZIVxSKAdmBl7aivObVY8eqDVyBjyDY9WlqtP2pFQeSzaBQcQc0fVbsAYyndIS97hM3TrRE69wDKxZQaNs5UEU3y6pxiA2BvziLFmlOnAeV5OyanRvCa6PT69qhP-wfIvS9PTvS/s320/IMG_0948.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;La charla de backbone petada de gente&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;La comida (y resto del día) pude compartirlo con &lt;a href="http://asanzdiego.blogspot.com.es/"&gt;Adolfo&lt;/a&gt; y &lt;a href="http://twitter.com/mgdelacroix"&gt;Miguel&lt;/a&gt;, y a ratos con &lt;a href="http://javaguirre.net/"&gt;Javi&lt;/a&gt; (que como tenía su propia charla estaba con los VIPs :P). Tuvimos una interesante charla sobre software y recursos libres y preparando el "upcoming"&lt;a href="https://groups.google.com/forum/#!forum/gejs-uc3m"&gt; grupo de estudio de javascript&lt;/a&gt;. También pude toparme con gente de &lt;a href="http://betabeers.com/"&gt;betabeers&lt;/a&gt; después de la cena del día anterior.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
Después de comer tocó ver cómo iba la estandarización de las comunicaciones en tiempo real en HTML5, y fuimos a la charla de Javier Cerviño sobre &lt;a href="http://www.webrtc.org/"&gt;webRTC&lt;/a&gt;. La cosa de momento está muy verde, pero esperemos que durante lo que queda de año se estabilice el API y podamos usarlo el año que viene en el curso de Aplicaciones Multimedia de la Uni (de momento disponible en la beta de Chrome 18 y en Chrome Canary). &amp;nbsp;Aquí, me quedé con ganas de &lt;a href="http://anavallasuiza.com/share/presentations/popcorn/"&gt;palomitas&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Next slot, &lt;a href="http://www.slideshare.net/amischol/automatizacin-unit-testing-javascript"&gt;unit testing&lt;/a&gt; a gran escala en javascript de Tomás Corral. Buena ponencia, a veces un poco rollete (bueno, es testing!), pero algunos truquillos buenos ganados con la experiencia. Me quedo con &lt;a href="http://sinonjs.org/"&gt;sinon&lt;/a&gt; como tecnología a explorar. Del aula de al lado, salían enormes carcajadas: nos enteramos luego que era la charla de &lt;a href="http://www.slideshare.net/supercoco9/apis-rest-usables-con-hypermedia-por-javier-ramirez-para-codemotion"&gt;APIs REST usables&lt;/a&gt; de Javier Ramírez, aclamada por bastante gente como una de las mejores.&lt;br /&gt;
&lt;br /&gt;
Después del último coffee break, tocaba la recta final: en el primer slot no tenía muy claro qué hacer, así que seguí la recomendación de Javi y fui a la charla de &lt;a href="http://twitter.com/jjmerelo"&gt;jjmerelo&lt;/a&gt; sobre &lt;a href="https://www.dropbox.com/sh/e7hepc3975n3sft/XANYuovypx/couchdb-codemotion.pdf"&gt;computación voluntaria&lt;/a&gt;. No me arrepentí. A parte del contenido técnico de la misma, con referencias a &lt;a href="http://www.slideshare.net/gootyfer/mongodb-at-gul"&gt;mongoDB&lt;/a&gt; que estoy mirando últimamente, el tipo es un crack. Charla muy divertido, en la que, en palabras del mismo Merelo, repasamos un conjunto de tecnologías que bien podríamos encontrar en un pasillo de IKEA: &lt;a href="http://couchdb.apache.org/"&gt;couchDB&lt;/a&gt;&amp;nbsp;(BD NoSQL, pero no sólo eso), futon (administración web de la BD), &lt;a href="https://github.com/cloudhead/cradle"&gt;cradle&lt;/a&gt; (driver para node), etc. y cómo usar todo esto para que otra gente "voluntariamente" haga parte del trabajo computacional de los algoritmos genéticos con los que trabaja.&lt;br /&gt;
&lt;br /&gt;
Terminamos el día con &lt;a href="http://www.mozilla-hispano.org/archivos/docs/b2g/"&gt;boot2gecko&lt;/a&gt;,&amp;nbsp;el chromeOS de la gente de mozilla. Nada espectacular, pero veremos cómo se las arregla este consorcio con varios UIs (&lt;a href="https://github.com/andreasgal/gaia"&gt;gaia&lt;/a&gt;) sobre la misma plataforma móvil, y &lt;a href="http://openwebdevice.com/"&gt;Telefónica&lt;/a&gt; metida por de por medio. En este slot, la gran afluencia se la llevó David Bonilla (parece que Adolfo &lt;a href="https://twitter.com/#!/asanzdiego/status/185315246318161920"&gt;siente algo especial por él&lt;/a&gt; :P) y su &lt;a href="http://dl.dropbox.com/u/3320460/codemotion12_bonilista.pdf"&gt;ecosistema para los desarrolladores&lt;/a&gt;. Había mucha gente con ganas de irse a ver canguros, me temo ;)&lt;br /&gt;
&lt;br /&gt;
En conclusión, mereció bastante la pena. La organización bastante bien, a parte de algún problemilla con los micros y el pasillo abarrotado de gente. Y no puedo terminar sin agradecer a la gente de &lt;a href="http://www.meetup.com/madridjs/"&gt;MadridJS&lt;/a&gt; por la haberme conseguido una entrada a última hora; la próxima vez, si quiero asistir tendré que prevenir ;)&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihh4g58gZIVxSKAdmBl7aivObVY8eqDVyBjyDY9WlqtP2pFQeSzaBQcQc0fVbsAYyndIS97hM3TrRE69wDKxZQaNs5UEU3y6pxiA2BvziLFmlOnAeV5OyanRvCa6PT69qhP-wfIvS9PTvS/s72-c/IMG_0948.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><enclosure length="-1" type="application/json" url="https://www.dropbox.com/sh/e7hepc3975n3sft/XANYuovypx/couchdb-codemotion.pdf"/><itunes:explicit/><itunes:subtitle>Tras el codemotion del sábado pasado tengo un montón de nuevas ideas en la cabeza, y eso hay que dejarlo reflejado en algún sitio... que si no se olvidan!. Voy a hacer un breve recorrido por las charlas a las que asistí (apretada agenda con 7 tracks en paralelo, muchas veces la elección fue complicada) y las tecnologías que quisiera explorar en ratos libres, o directamente en proyectos actuales. En primer lugar, asistí a una abarrotada charla Iván Loire, en la que introdujo el uso de node con express (hasta aquí todo conocido), pero introdujo un par de herramientas que no conocía: zombie&amp;nbsp;(navegador sin UI para testing unitario) y knockout&amp;nbsp;(que permite hacer bindings entre el modelo de datos y los componentes de la UI, de forma que si se actualizan los datos se reflejará automágicamente en la UI). En este bloque, oí muy buenos comentarios de la charla de metaprogramación en ruby. A continuación le tocó el turno a Ricardo Borillo y la firma digital con el DNIe en java. Buena charla técnica de aspectos de seguridad, pero java me empieza a cansar bastante... Al final me quedé con las ganas de la charla de DevOps. Después de un descanso en el que no pude llegar ni siquiera a la cafetería debido a la aglomeración de gente en el único pasillo de acceso (mitad ocupado por stands de patrocinadores), asistí a la chala de Hadoop ya que estoy trabajando en un proyecto que a la larga requerirá infraestructuras de BigData (según contaron, cuando tienes tantos datos que en sí mismo constituye un problema). Primera parte de charla muy buena, pero cuando se hicieron demos de las herramientas de Microsoft pasó a ser un poco más aburrido. Otro proyecto Apache relacionado que tengo que explorar es Mahout, que facilita la minería de los datos y el machine learning, permitiendo hacer por ejemplo collaborative filtering y recomendaciones. Respecto al resto de charlas, me hubiese gustado pasarme por la de Enrique Amodeo de OOCSS, cuya presentación hizo con impress. Antes de comer tocaba charla de SPA (Single Page Application) con backbone&amp;nbsp;de la gente de medianet software. Bastante ejemplos de código de cómo usar backbone para implementar MVC en cliente en aplicaciones de tamaño medio-grande. Para mi classON creo que tiraré de knockout, ya que no necesita tanta complejidad. En este bloque me perdí la charla de webscrapping que me contaron como muy buena. La charla de backbone petada de gente La comida (y resto del día) pude compartirlo con Adolfo y Miguel, y a ratos con Javi (que como tenía su propia charla estaba con los VIPs :P). Tuvimos una interesante charla sobre software y recursos libres y preparando el "upcoming" grupo de estudio de javascript. También pude toparme con gente de betabeers después de la cena del día anterior. Después de comer tocó ver cómo iba la estandarización de las comunicaciones en tiempo real en HTML5, y fuimos a la charla de Javier Cerviño sobre webRTC. La cosa de momento está muy verde, pero esperemos que durante lo que queda de año se estabilice el API y podamos usarlo el año que viene en el curso de Aplicaciones Multimedia de la Uni (de momento disponible en la beta de Chrome 18 y en Chrome Canary). &amp;nbsp;Aquí, me quedé con ganas de palomitas. Next slot, unit testing a gran escala en javascript de Tomás Corral. Buena ponencia, a veces un poco rollete (bueno, es testing!), pero algunos truquillos buenos ganados con la experiencia. Me quedo con sinon como tecnología a explorar. Del aula de al lado, salían enormes carcajadas: nos enteramos luego que era la charla de APIs REST usables de Javier Ramírez, aclamada por bastante gente como una de las mejores. Después del último coffee break, tocaba la recta final: en el primer slot no tenía muy claro qué hacer, así que seguí la recomendación de Javi y fui a la charla de jjmerelo sobre computación voluntaria. No me arrepentí. A parte del contenido técnico de la misma, con referencias a mongoDB que estoy mirando últimamente, el tipo es un crack. Charla muy divertido, en la que, en palabras del mismo Merelo, repasamos un conjunto de tecnologías que bien podríamos encontrar en un pasillo de IKEA: couchDB&amp;nbsp;(BD NoSQL, pero no sólo eso), futon (administración web de la BD), cradle (driver para node), etc. y cómo usar todo esto para que otra gente "voluntariamente" haga parte del trabajo computacional de los algoritmos genéticos con los que trabaja. Terminamos el día con boot2gecko,&amp;nbsp;el chromeOS de la gente de mozilla. Nada espectacular, pero veremos cómo se las arregla este consorcio con varios UIs (gaia) sobre la misma plataforma móvil, y Telefónica metida por de por medio. En este slot, la gran afluencia se la llevó David Bonilla (parece que Adolfo siente algo especial por él :P) y su ecosistema para los desarrolladores. Había mucha gente con ganas de irse a ver canguros, me temo ;) En conclusión, mereció bastante la pena. La organización bastante bien, a parte de algún problemilla con los micros y el pasillo abarrotado de gente. Y no puedo terminar sin agradecer a la gente de MadridJS por la haberme conseguido una entrada a última hora; la próxima vez, si quiero asistir tendré que prevenir ;)</itunes:subtitle><itunes:author>noreply@blogger.com (Anonymous)</itunes:author><itunes:summary>Tras el codemotion del sábado pasado tengo un montón de nuevas ideas en la cabeza, y eso hay que dejarlo reflejado en algún sitio... que si no se olvidan!. Voy a hacer un breve recorrido por las charlas a las que asistí (apretada agenda con 7 tracks en paralelo, muchas veces la elección fue complicada) y las tecnologías que quisiera explorar en ratos libres, o directamente en proyectos actuales. En primer lugar, asistí a una abarrotada charla Iván Loire, en la que introdujo el uso de node con express (hasta aquí todo conocido), pero introdujo un par de herramientas que no conocía: zombie&amp;nbsp;(navegador sin UI para testing unitario) y knockout&amp;nbsp;(que permite hacer bindings entre el modelo de datos y los componentes de la UI, de forma que si se actualizan los datos se reflejará automágicamente en la UI). En este bloque, oí muy buenos comentarios de la charla de metaprogramación en ruby. A continuación le tocó el turno a Ricardo Borillo y la firma digital con el DNIe en java. Buena charla técnica de aspectos de seguridad, pero java me empieza a cansar bastante... Al final me quedé con las ganas de la charla de DevOps. Después de un descanso en el que no pude llegar ni siquiera a la cafetería debido a la aglomeración de gente en el único pasillo de acceso (mitad ocupado por stands de patrocinadores), asistí a la chala de Hadoop ya que estoy trabajando en un proyecto que a la larga requerirá infraestructuras de BigData (según contaron, cuando tienes tantos datos que en sí mismo constituye un problema). Primera parte de charla muy buena, pero cuando se hicieron demos de las herramientas de Microsoft pasó a ser un poco más aburrido. Otro proyecto Apache relacionado que tengo que explorar es Mahout, que facilita la minería de los datos y el machine learning, permitiendo hacer por ejemplo collaborative filtering y recomendaciones. Respecto al resto de charlas, me hubiese gustado pasarme por la de Enrique Amodeo de OOCSS, cuya presentación hizo con impress. Antes de comer tocaba charla de SPA (Single Page Application) con backbone&amp;nbsp;de la gente de medianet software. Bastante ejemplos de código de cómo usar backbone para implementar MVC en cliente en aplicaciones de tamaño medio-grande. Para mi classON creo que tiraré de knockout, ya que no necesita tanta complejidad. En este bloque me perdí la charla de webscrapping que me contaron como muy buena. La charla de backbone petada de gente La comida (y resto del día) pude compartirlo con Adolfo y Miguel, y a ratos con Javi (que como tenía su propia charla estaba con los VIPs :P). Tuvimos una interesante charla sobre software y recursos libres y preparando el "upcoming" grupo de estudio de javascript. También pude toparme con gente de betabeers después de la cena del día anterior. Después de comer tocó ver cómo iba la estandarización de las comunicaciones en tiempo real en HTML5, y fuimos a la charla de Javier Cerviño sobre webRTC. La cosa de momento está muy verde, pero esperemos que durante lo que queda de año se estabilice el API y podamos usarlo el año que viene en el curso de Aplicaciones Multimedia de la Uni (de momento disponible en la beta de Chrome 18 y en Chrome Canary). &amp;nbsp;Aquí, me quedé con ganas de palomitas. Next slot, unit testing a gran escala en javascript de Tomás Corral. Buena ponencia, a veces un poco rollete (bueno, es testing!), pero algunos truquillos buenos ganados con la experiencia. Me quedo con sinon como tecnología a explorar. Del aula de al lado, salían enormes carcajadas: nos enteramos luego que era la charla de APIs REST usables de Javier Ramírez, aclamada por bastante gente como una de las mejores. Después del último coffee break, tocaba la recta final: en el primer slot no tenía muy claro qué hacer, así que seguí la recomendación de Javi y fui a la charla de jjmerelo sobre computación voluntaria. No me arrepentí. A parte del contenido técnico de la misma, con referencias a mongoDB que estoy mirando últimamente, el tipo es un crack. Charla muy divertido, en la que, en palabras del mismo Merelo, repasamos un conjunto de tecnologías que bien podríamos encontrar en un pasillo de IKEA: couchDB&amp;nbsp;(BD NoSQL, pero no sólo eso), futon (administración web de la BD), cradle (driver para node), etc. y cómo usar todo esto para que otra gente "voluntariamente" haga parte del trabajo computacional de los algoritmos genéticos con los que trabaja. Terminamos el día con boot2gecko,&amp;nbsp;el chromeOS de la gente de mozilla. Nada espectacular, pero veremos cómo se las arregla este consorcio con varios UIs (gaia) sobre la misma plataforma móvil, y Telefónica metida por de por medio. En este slot, la gran afluencia se la llevó David Bonilla (parece que Adolfo siente algo especial por él :P) y su ecosistema para los desarrolladores. Había mucha gente con ganas de irse a ver canguros, me temo ;) En conclusión, mereció bastante la pena. La organización bastante bien, a parte de algún problemilla con los micros y el pasillo abarrotado de gente. Y no puedo terminar sin agradecer a la gente de MadridJS por la haberme conseguido una entrada a última hora; la próxima vez, si quiero asistir tendré que prevenir ;)</itunes:summary><itunes:keywords>codemotion, javascript, programación</itunes:keywords></item><item><title>Tips de JS</title><link>http://elblogtardio.blogspot.com/2011/03/tips-de-js.html</link><category>javascript</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Mon, 21 Mar 2011 18:26:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-6456241558629457997</guid><description>Simple entrada para recordar un tip muy útil de JS: el uso de los tres iguales.&lt;br /&gt;
&lt;br /&gt;
Puede utilizarse la expresión &lt;code&gt;===&lt;/code&gt; en una comparación en Javascript para comparar, además del resultados de dos expresiones, el tipo de las mismas (por eso del tipado dinámico de JS). &lt;br /&gt;
&lt;br /&gt;
Por ejemplo, &lt;code&gt;0==false&lt;/code&gt; sería cierto pero &lt;code&gt;0===false&lt;/code&gt; sería falso ya que el tipo de ambas expresiones es diferente (uno es un número y el otro una expresión booleana).&lt;br /&gt;
&lt;br /&gt;
Y esto ha sido todo por hoy. A más ver!</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Lo que he aprendido hoy (20101027)</title><link>http://elblogtardio.blogspot.com/2010/10/lo-que-he-aprendido-hoy-20101027.html</link><author>noreply@blogger.com (Anonymous)</author><pubDate>Wed, 27 Oct 2010 18:50:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-1000632846180974449</guid><description>Buenas amiguitos,&lt;br /&gt;&lt;br /&gt;Hace muuucho, pero que muucho que no escribo en el blog. Pero hoy he llegado a la conclusión de que puedo usarlo para ir apuntando cosas útiles y no olvidarlas... uso raro y quizá inapropiado, pero veremos qué tal se da.&lt;br /&gt;&lt;br /&gt;Hoy he estado bastante tiempo liado mirando cómo incrustar mis publicaciones en la página de la universidad desde &lt;a href="http://www.mendeley.com/"&gt;Mendeley&lt;/a&gt;. ¿Para qué? os preguntaréis... pues para no tener que estar actualizando publicaciones en: la web de la universidad, Mendeley, la página del grupo, etc etc etc. Sí... además de tardío soy vago :)&lt;br /&gt;&lt;br /&gt;En primer lugar he tratado de buscar alguna forma fácil de embeberlas, estilo "embed this code in your site", pero de ese estilo sólo he encontrado añadir el logo que veis en el primer "widget" a la derecha del blog con un link a mi perfil. Después he averiguado que hasta hace poco podían embeberse los artículos de colecciones públicas... pero han capado la opción desde la actualización de colecciones a grupos públicos. De todas formas, me he creado una nueva colección pública con mis publicaciones (a esto se le llama cacofonía xD) y copiando la forma en que lo han hecho en otro blog, he conseguido que se embeban en un iframe a través de una URL como ésta: http://www.mendeley.com/groups/617591/publications/embed/4486C7/ , con el id del grupo y otro id del estilo (si se borra el último id de la URL cambia el estilo, por eso lo sé). Así que quedaría algo de este estilo:&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://www.mendeley.com/groups/617591/publications/embed/4486C7/"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Pero de esta forma podemos adecuarlo al formato que queramos (la web de la universidad tiene unos estilos definidos) y además perdemos flexibilidad (ej., ordenar por año de publicación). Así que me he decidido a echar un ojo al &lt;a href="http://dev.mendeley.com/"&gt;API REST de Mendeley&lt;/a&gt;, a ver cómo se podía implementar. Para testear el API he estado usando &lt;a href="http://code.google.com/p/chrome-poster/"&gt;Poster&lt;/a&gt;, muy útil para interfaces REST, pero no conseguía de ninguna forma que me devolviese datos en los métodos donde no es necesaria autenticación. Peeeero, me he dado cuenta de que es necesario registrar una aplicación en dev.mendeley para obtener un consumer_key que pasar como parámetro para que no esté todo el rato devolviendo errores 401. Siguiente paso conseguido!&lt;br /&gt;&lt;br /&gt;Ahora que podía acceder a las publicaciones de mi nuevo grupo público, tocaba meterlo en una web para probar... peeeero me he topado de frente con un viejo conocido al tratar de implementar todo en Javascript: los problemas de cross-domain, es decir, que no podemos hacer con un objeto XMLHttpRequest peticiones a servidores distintos del que esta alojada la página. ¿Tendría que seguir usando truculentos IFrames ocultos para hacer las peticiones y pasar los datos a la página principal no-recuerdo-de-qué-forma? Y así he encontrado la referencia a un tipo de implementación que no había escuchado antes &lt;a href="http://en.wikipedia.org/wiki/JSON#JSONP"&gt;JSONP&lt;/a&gt;. Como se puede leer en la página de Wikipedia, es hacer llamadas REST a un servidor que responde con JSON, pero indicándole qué método debe llamar en el callback. Por tanto, cargando la llamada como una librería javascript se ejecutaría la función de callback que quisiéramos. Pero claro, para esto tendríamos que tener acceso al servidor para implementar esta funcionalidad... Mi gozo en un pozo!&lt;br /&gt;&lt;br /&gt;Así que seguí buceando Google y descubrí que algunos servicios que ofrecían API lo implementaban, como GMaps (al menos en la v2), ¿por qué mendeley iba a no hacerlo? Intenté hacer la llamada a ciegas usando el parámetro "callback" y no funcionó, y demás leí en el grupo de google para desarrolladores del API y decían la funcionalidad había existido pero que la habían capado al terminar la beta (oooooh!) pero prometían activarla pronto. Así que por casualidad me puse a probar la llamada con el nombre de parámetro del artículo de la wikipedia (jsonp) y... tachán! el poster me ha devuelto lo que yo quería. No quepo en mí de gozo :)&lt;br /&gt;&lt;br /&gt;El ejemplo de llamada es la siguiente: &lt;br /&gt;&lt;code&gt;http://www.mendeley.com/oapi/documents/groups/617591/docs/?details=true&amp;consumer_key=KEYc&amp;jsonp=createPubs&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Pues ale, ya tengo tarea para mañana: realizar la implementación con JSONP e incrustarlo en mi página web. Veremos si encuentro tiempo...&lt;br /&gt;&lt;br /&gt;Hasta mañana leyentes!&lt;br /&gt;&lt;br /&gt;PD: Sé que la implementación la pude hacer desde un principio usando un proxy para acceder a los servicios del API, pero no tenía ganas de ponerme a PHPear... y que lo de los proxies no me mola! Ójala quiten de una vez la restricción de X-domain de XMLHttpRequest porque para mí es una tontería (quien quiere se la salta).</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Discurso de motivación de Steve Jobs</title><link>http://elblogtardio.blogspot.com/2009/01/discurso-de-motivacion-de-steve-jobs.html</link><category>apple</category><category>motivación</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Wed, 28 Jan 2009 23:19:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-2169791261817875140</guid><description>Me gustó mucho este video de motivación de Jobs en la Universidad. Es largo pero merece la pena.&lt;br /&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=3014637678488153340&amp;amp;hl=es&amp;amp;fs=true" style="width: 400px; height: 326px;" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Notas sobre Wonderland</title><link>http://elblogtardio.blogspot.com/2009/01/notas-sobre-wonderland.html</link><category>GIMI</category><category>wonderland</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Wed, 28 Jan 2009 19:43:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-2974111003628587606</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.archive.org/download/Wonderland_32/Wonderland_20090203_20.56.mov"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 188px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdOogIdw9gnn3JcvlrYcsZQpxf0STnAzjdQ01uD1RyCJWWN34AywRrlHAO686jNVJiN6JqriZ3qoN9TnG3sEKUbFwadP8DAR30sfrCoPz1_kxLsW1apM5dzHY-q-2zyYI93sWkzpSeRADi/s400/wonderland.png" alt="" id="BLOGGER_PHOTO_ID_5298919915460525794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hemos estado probando Wonderland en clase. Cosas que hemos descubierto:&lt;br /&gt;- Cambiar la ruta del fichero de configuración de art a localart/art&lt;br /&gt;- Para mostar el pdf hay que pegarlo en la raíz del mundo (&lt;a href="http://wiki.java.net/bin/view/Javadesktop/ProjectWonderlandPDFViewerAdmin"&gt;ejemplo&lt;/a&gt;)&lt;br /&gt;- Para que el pdf se inicie por defecto poner la propiedad slideShow=true&lt;br /&gt;- Las aplicaciones X11 sólo las pueden ejecutar los clientes con Linux/Unix (ni Windows ni Mac OS X)&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="504"&gt;  &lt;param name="movie" value="http://www.archive.org/flow/flowplayer.commercial-3.0.3.swf" /&gt;  &lt;param name="allowfullscreen" value="true" /&gt;  &lt;param name="flashvars" value='config={"key":"#$b6eb72a0f2f1e29f3d4","autoBuffering":true,"playlist":[{"url":"http://www.archive.org/download/Wonderland_32/Wonderland_20090203_20.56_512kb.mp4","autoPlay":false,"accelerated":true,"scaling":"fit"}],"clip":{"autoPlay":false,"accelerated":true,"scaling":"fit"},"plugins":{"audio":{"url":"http://www.archive.org/flow/flowplayer.audio-3.0.3-dev.swf"},"controls":{"playlist":false,"fullscreen":true,"gloss":"high","backgroundColor":"0x000000","backgroundGradient":"medium","sliderColor":"0x777777","progressColor":"0x777777","timeColor":"0xeeeeee","durationColor":"0x01DAFF","buttonColor":"0x333333","buttonOverColor":"0x505050"}}}' /&gt;&lt;embed type="application/x-shockwave-flash" width="640"  height="504"  allowfullscreen="true"  src="http://www.archive.org/flow/flowplayer.commercial-3.0.3.swf"  flashvars='config={"key":"#$b6eb72a0f2f1e29f3d4","autoBuffering":true,"playlist":[{"url":"http://www.archive.org/download/Wonderland_32/Wonderland_20090203_20.56_512kb.mp4","autoPlay":false,"accelerated":true,"scaling":"fit"}],"clip":{"autoPlay":false,"accelerated":true,"scaling":"fit"},"plugins":{"audio":{"url":"http://www.archive.org/flow/flowplayer.audio-3.0.3-dev.swf"},"controls":{"playlist":false,"fullscreen":true,"gloss":"high","backgroundColor":"0x000000","backgroundGradient":"medium","sliderColor":"0x777777","progressColor":"0x777777","timeColor":"0xeeeeee","durationColor":"0x01DAFF","buttonColor":"0x333333","buttonOverColor":"0x505050"}}}'&gt;&lt;/embed&gt;&lt;/object&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdOogIdw9gnn3JcvlrYcsZQpxf0STnAzjdQ01uD1RyCJWWN34AywRrlHAO686jNVJiN6JqriZ3qoN9TnG3sEKUbFwadP8DAR30sfrCoPz1_kxLsW1apM5dzHY-q-2zyYI93sWkzpSeRADi/s72-c/wonderland.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure length="14876958" type="video/quicktime" url="http://www.archive.org/download/Wonderland_32/Wonderland_20090203_20.56.mov"/><itunes:explicit/><itunes:subtitle>Hemos estado probando Wonderland en clase. Cosas que hemos descubierto: - Cambiar la ruta del fichero de configuración de art a localart/art - Para mostar el pdf hay que pegarlo en la raíz del mundo (ejemplo) - Para que el pdf se inicie por defecto poner la propiedad slideShow=true - Las aplicaciones X11 sólo las pueden ejecutar los clientes con Linux/Unix (ni Windows ni Mac OS X)</itunes:subtitle><itunes:author>noreply@blogger.com (Anonymous)</itunes:author><itunes:summary>Hemos estado probando Wonderland en clase. Cosas que hemos descubierto: - Cambiar la ruta del fichero de configuración de art a localart/art - Para mostar el pdf hay que pegarlo en la raíz del mundo (ejemplo) - Para que el pdf se inicie por defecto poner la propiedad slideShow=true - Las aplicaciones X11 sólo las pueden ejecutar los clientes con Linux/Unix (ni Windows ni Mac OS X)</itunes:summary><itunes:keywords>GIMI, wonderland</itunes:keywords></item><item><title>El blog tardío, el blog inmaduro</title><link>http://elblogtardio.blogspot.com/2009/01/el-blog-tardio-el-blog-inmaduro.html</link><category>blog</category><category>tardío</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Tue, 27 Jan 2009 15:07:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-3475410651327101560</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2268/2042196012_82b4e7e20e.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 456px; height: 500px;" src="http://farm3.static.flickr.com/2268/2042196012_82b4e7e20e.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Acabo de ver &lt;a href="http://www.que.es/ultimas-noticias/sociedad/200901261712-tardon-senal-inmadurez.html"&gt;esta noticia que me ha mandado un amigo del periódico Qué!&lt;/a&gt; y no sé cómo tomármelo:&lt;br /&gt;¿llegaré siempre tarde por inmadurez :O, narcisismo :OO o fobia social :OOO?</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://farm3.static.flickr.com/2268/2042196012_82b4e7e20e_t.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Tras la Season Premiere de Lost</title><link>http://elblogtardio.blogspot.com/2009/01/tras-la-season-premiere-de-lost.html</link><category>lost</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 23 Jan 2009 14:31:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-4091429257934134750</guid><description>Por fin llego la esperada Season Premiere de la quinta temporada de Lost!!&lt;br /&gt;Enorme el primero de los dos capítulo y la supuesta estructura de capítulos que este supone para el resto de la temporada. No quiero espoilear nada más ;)&lt;br /&gt;Para todos aquellos que la hayáis visto y os preguntáis de qué os suena la señora que aparece al final del segundo capítulo pongo este video.&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/arFqJzbbtd4&amp;hl=es&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/arFqJzbbtd4&amp;hl=es&amp;fs=1&amp;color1=0x5d1719&amp;color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Sobre WordNet y la búsqueda de contexto</title><link>http://elblogtardio.blogspot.com/2009/01/sobre-wordnet-y-la-bsqueda-de-contexto.html</link><category>master</category><category>semanticWeb</category><category>TFM</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sat, 17 Jan 2009 03:42:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-5102934260435705604</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.w3.org/2001/sw/BestPractices/WNET/wordnet-sw-20040713-fig01.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 576px; height: 384px;" src="http://www.w3.org/2001/sw/BestPractices/WNET/wordnet-sw-20040713-fig01.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;He estado dándole muchas vueltas a los temas del TFM y finalmente he elegido el primero: búsqueda de contexto en resultados. Así que voy a resumiros la investigación que he hecho sobre él.&lt;br /&gt;&lt;br /&gt;En primer lugar he estado investigando sobre WordNet en &lt;a href="http://en.wikipedia.org/wiki/WordNet"&gt;su página de la Wikipedia&lt;/a&gt; y me he instalado el diccionario de synsets. Además he encontrado un API para acceso desde Java (&lt;a href="http://projects.csail.mit.edu/jwi/"&gt;JWI&lt;/a&gt;) y he creado un proyecto de test en Eclipse para probar la búsqueda de sinónimos e &lt;a href="http://es.wikipedia.org/wiki/Hiper%C3%B3nimo"&gt;hiperónimos&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Por otro lado, he estado buscando en la web herramientas similares a la que voy a desarrollar y he encontrado cosas curiosas como:&lt;br /&gt;- &lt;a href="http://developer.yahoo.com/search/boss/"&gt;BOSS&lt;/a&gt;: API a los resultados de búsqueda de Yahoo que te permite consultas ilimitadas al servicio. Podría ser usado para implementar la funcionalidad requerida pero habría que pensar en la experiencia de uso que queremos desde el navegador (quizá también sería útil usar &lt;a href="http://es.wikipedia.org/wiki/Greasemonkey"&gt;Grasemonkey&lt;/a&gt;).&lt;br /&gt;- &lt;a href="http://www.popgist.com/"&gt;PopGist&lt;/a&gt;: un buscador que utiliza BOSS y añade a los resultados de búsqueda una serie de enlaces relacionados con el concepto buscado pero en otros sitios.&lt;br /&gt;-&lt;a href="http://www9.org/w9cdrom/173/173.html"&gt;SearchPad&lt;/a&gt;: herramienta de pago que va conformando el contexto de una búsqueda almacenando los términos usados en ella, de forma que cuando se hayan hecho varias búsquedas sobre el mismo tema e indicado la bondad de los resultados, las resultados obtenidos serán mejores.&lt;br /&gt;&lt;br /&gt;Finalmente no he encontrado nada similar a lo que quiere hacerse (o no he sabido buscarlo bien :P) pero tengo una idea general de cómo hacerlo.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Vote for me by Rudy</title><link>http://elblogtardio.blogspot.com/2009/01/vote-for-me-by-rudy.html</link><category>basket</category><category>humor</category><category>nba</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Thu, 15 Jan 2009 00:56:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-879765036529882511</guid><description>No he podido evitar postearlo porque me ha hecho mucha gracia :D&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/57llfhV1l_s&amp;hl=es&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/57llfhV1l_s&amp;hl=es&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Video de un cuadro del Met</title><link>http://elblogtardio.blogspot.com/2009/01/video-de-un-cauadro-del-met.html</link><category>GIMI</category><category>master</category><category>Met</category><category>vlog</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Tue, 13 Jan 2009 23:14:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-8739166072199547703</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.archive.org/download/MetPicture/MOV01136_512kb.mp4"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 198px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigYDcPIaIVMQPBG9OKJQ0plo0AIz2wCgrdtR6c8xyYlI276OAIEblvonJQZk8ZglEyAnY_07PKrEifnuObyMd-16gDH_oqSJ-x7VoDabkltkshQ2oygEJV4j4oQMvDyWBMv70o-cUo7U7j/s200/preview.jpg" alt="" id="BLOGGER_PHOTO_ID_5290905497583694930" border="0" /&gt;&lt;/a&gt;Mirad cómo me acerco a un cuadro del &lt;a href="http://www.metmuseum.org/"&gt;Met&lt;/a&gt; y se ven los puntitos de la pintura!!&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.archive.org/download/MetPicture/MOV01136_512kb.mp4"&gt;&lt;/a&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigYDcPIaIVMQPBG9OKJQ0plo0AIz2wCgrdtR6c8xyYlI276OAIEblvonJQZk8ZglEyAnY_07PKrEifnuObyMd-16gDH_oqSJ-x7VoDabkltkshQ2oygEJV4j4oQMvDyWBMv70o-cUo7U7j/s72-c/preview.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure length="1451241" type="video/mp4" url="http://www.archive.org/download/MetPicture/MOV01136_512kb.mp4"/><itunes:explicit/><itunes:subtitle>Mirad cómo me acerco a un cuadro del Met y se ven los puntitos de la pintura!!</itunes:subtitle><itunes:author>noreply@blogger.com (Anonymous)</itunes:author><itunes:summary>Mirad cómo me acerco a un cuadro del Met y se ven los puntitos de la pintura!!</itunes:summary><itunes:keywords>GIMI, master, Met, vlog</itunes:keywords></item><item><title>TFM sobre web semántica</title><link>http://elblogtardio.blogspot.com/2009/01/tfm-sobre-web-semntica.html</link><category>master</category><category>semanticWeb</category><category>TFM</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Thu, 8 Jan 2009 19:44:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-4577052622533397343</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://gridinoc.name/b.noise/2007/10/16/sw-rubik.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 291px; height: 300px;" src="http://gridinoc.name/b.noise/2007/10/16/sw-rubik.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Pues iba a ponerme a investigar un poco para el Trabajo Fin de Máster (TFM) y he pensado: "Qué mejor que contar en el blog los posibles trabajos que puedo hacer y que la gente me aconseje"; y a eso me dispongo :)&lt;br /&gt;&lt;br /&gt;Me propusieron cuatro posibles trabajos sobre web semántica de los cuales rechacé uno porque me parecía un infierno y ahora tengo que investigar sobre los otros tres para decidir cuál haré finalmente. Los trabajos son:&lt;br /&gt;&lt;br /&gt;1. Buscador de contexto en resultados de búsqueda. En los resultados de búsqueda de un buscador (i.e. Google) localizar la parte del documento que más tiene que ver con los criterios de búsqueda para acceder a ella directamente. Se aconseja usar un diccionario de sinónimos en inglés como &lt;a href="http://wordnet.princeton.edu/"&gt;WordNet&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. Filtro de correo. Filtrar los mensajes de correo según distintos criterios (i.e. tema) sin necesidad de crear filtros por parte del usuario. Por ejemplo, pueden utilizarse criterios como el asunto, contexto del cuerpo del mensaje, destinatarios, etc... Se utilizarán herramientas como &lt;a href="http://gate.ac.uk/"&gt;GATE&lt;/a&gt; y el resultado podría ser una extensión de un cliente de correo (i.e. Thunderbird).&lt;br /&gt;&lt;br /&gt;3. Optimización del ranking en búsquedas por palabra clave. &lt;a href="http://lucene.apache.org/"&gt;Apache Lucene&lt;/a&gt; utiliza el criterio TFxIDF para "rankear" los resultados de una búsqueda por palabra clave (keyword). Se propone &lt;a href="http://en.wikipedia.org/wiki/Wikipedia_database"&gt;descargar una copia de la Wikipedia&lt;/a&gt; a local y añadir anotaciones que nos permitan mejorar el ranking de los resultados respecto al rankeo de Lucene. Por ejemplo, hay que testear si es mejor tener en cuanta los enlaces del artículo de la Wikipedia o el tema, etc...&lt;br /&gt;&lt;br /&gt;Bueno mientras investigo qué puede ser factible hacer para septiembre'09, ¿qué os parece a vosotros?</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>FonHome y el hogar inteligente</title><link>http://elblogtardio.blogspot.com/2009/01/fonhome-y-el-hogar-inteligente.html</link><category>fon</category><category>hogarDigital</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sat, 3 Jan 2009 13:48:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-641497216846225872</guid><description>&lt;span style="font-family: verdana;"&gt;Pues otra de las cosas interesantes que he encontrado ha sido un proyecto del la UPC relacionado con el hogar digital: &lt;a href="http://www.fonhome.com/"&gt;FonHome&lt;/a&gt;. Se trata de un proyecto en el que usan la Fonera 2.0 para controlar (mediante un Domotic Controller) las luces del hogar via WiFi desde un iPod/iPhone.&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7FpLUgxexhw&amp;hl=es&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/7FpLUgxexhw&amp;hl=es&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Me ha parecido un proyecto bastante curioso y muy útil a largo plazo; por ejemplo, yo que soy un despistao por naturaleza y puedo dejarme fácilmente la calefacción de casa encendida cuando me voy un fin de semana al pueblo me resultaría muy útil poder comprobar el estado de la misma desde el iPod y poder encenderla/apagarla.&lt;br /&gt;&lt;br /&gt;Por tanto el primer paso que pediría al proyecto es el de ser capaz de mostrar el estado de aparato electrónico (en este caso las luces) y después el de poder acceder a la Fonera desde Internet con las implicaciones de seguridad que eso conlleva.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Reconocimiento de caras en Picasa</title><link>http://elblogtardio.blogspot.com/2009/01/reconocimiento-de-caras-en-picasa.html</link><category>blog</category><category>picasa</category><category>tagging</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Sat, 3 Jan 2009 12:34:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-3903816047610662556</guid><description>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;Ayer volví a coger el ordenador después de todas las Navidades evitándolo (necesitaba descansar mis ojos :P) y encontré un par de cosillas interesantes navegando por La Red. Una de ellas fue una utilidad en la &lt;a href="http://picasaweb.google.es/"&gt;web de Picasa&lt;/a&gt; para reconocer automáticamente caras similares en un album de fotos.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZMB0kSpRAqc2m3iKsQv2CCGc5wR_H5_7XVL-ZEL-gKGox7nGQJzi5FN5MLhV2Thy6h6G1v8oznH0wJyMt-HK_5rzBEbwz8odF2MT4BzisN7yj4SdmvI_0_w2vjUFS6sj109KFCPP0If6f/s1600-h/picasa.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 155px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZMB0kSpRAqc2m3iKsQv2CCGc5wR_H5_7XVL-ZEL-gKGox7nGQJzi5FN5MLhV2Thy6h6G1v8oznH0wJyMt-HK_5rzBEbwz8odF2MT4BzisN7yj4SdmvI_0_w2vjUFS6sj109KFCPP0If6f/s320/picasa.png" alt="" id="BLOGGER_PHOTO_ID_5287043329865414130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Para explicarme mejor os pondré un ejemplo de lo que hace: es como etiquetar las caras de las fotos del Facebook pero automáticamente. La aplicación se decica a buscar patrones de caras por todas las fotos que tenemos subidas en Picasa, después identifica las que corresponden a la misma persona y finalmente las va mostrando al usuario para que decida si va a taguear a esa persona y para validar que el reconocimiento se ha hecho correctamente.&lt;br /&gt;&lt;br /&gt;Si tenéis una cuenta de Google y algunas fotos subidas a la web de Picasa os animo a que lo probéis porque impresiona lo bien que funciona esta nueva característica.&lt;br /&gt;&lt;/span&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZMB0kSpRAqc2m3iKsQv2CCGc5wR_H5_7XVL-ZEL-gKGox7nGQJzi5FN5MLhV2Thy6h6G1v8oznH0wJyMt-HK_5rzBEbwz8odF2MT4BzisN7yj4SdmvI_0_w2vjUFS6sj109KFCPP0If6f/s72-c/picasa.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Primera prueba tardía</title><link>http://elblogtardio.blogspot.com/2009/01/primera-prueba-tarda.html</link><category>blog</category><category>GIMI</category><category>tardío</category><category>test</category><author>noreply@blogger.com (Anonymous)</author><pubDate>Fri, 2 Jan 2009 23:27:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7697086302164166039.post-3081272986750688973</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihrqP4xS0eRBOddzRKsbSHOQWAArC-dtkl5gco4ZnoPoAGJBcMahHFmKJ1bghJNUwXUJd9b9EvLSTA-_xi8YT0EsoDv-Q51vqNaOykEmc9_HW72fb8QW2e41_16Bb5Udqlu9KNNw7cQ9lG/s1600-h/DSC00250.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihrqP4xS0eRBOddzRKsbSHOQWAArC-dtkl5gco4ZnoPoAGJBcMahHFmKJ1bghJNUwXUJd9b9EvLSTA-_xi8YT0EsoDv-Q51vqNaOykEmc9_HW72fb8QW2e41_16Bb5Udqlu9KNNw7cQ9lG/s320/DSC00250.JPG" alt="" id="BLOGGER_PHOTO_ID_5286856960256011874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Primera pruebecilla del blog... como siempre un poco más tarde de los esperado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Y es que apurar es lo mio ;)&lt;br /&gt;&lt;br /&gt;Vamos a probar a meter una imagen a la izquierda.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y ahora un link a &lt;a href="http://muchachadanui.rtve.es/"&gt;Muchachada Nui&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihrqP4xS0eRBOddzRKsbSHOQWAArC-dtkl5gco4ZnoPoAGJBcMahHFmKJ1bghJNUwXUJd9b9EvLSTA-_xi8YT0EsoDv-Q51vqNaOykEmc9_HW72fb8QW2e41_16Bb5Udqlu9KNNw7cQ9lG/s72-c/DSC00250.JPG" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>