About Raúl

Raúl Ochoa, a spaniard working for Tuenti in Madrid, Spain. More about me.

Subscribe to the feed

If you want to receive a notification when I update the website, you only have to add the feed to your reader, or submit your email address and I'll let you know.

Twitter

Raúl's Twitter: Non-tweetable RegEx(s) make me cry :'-(. 3 days ago

Categories


Page 4

Zero & Huno

A partir de hoy me acompañarán un par de personajes, Zero y Huno, que iréis conociendo poco a poco. Con ellos intentaré abstraerme de El Mundo Real™ durante unos minutos a la semana, y de paso poder parecer algo más informático y algo menos persona. Por supuesto, y como siempre, no prometo que vaya a durar ni un poquito.

I’m working in my final degree project, an interactive web document commenting system that allows people to annotate comments directly onto document elements like words at paragraphs and images.

My mentor forced me to use Java as the primary language for the project. In these days choosing a J2EE Framework sucks. If you’re a fashion-victim/fancy-boy, you know, you’ll end using a combination of Struts + Spring + Hibernate + AnyFlavourOfYourFavoriteJavaTrendyWebTechnology and obviously a gazillion of XML config files. Do you really need all of this stuff for little projects with just two SQL queries and three templates? It was driving me crazy for about two weeks. I’m not underestimating Structs or Hibernate or whatever, I’m saying it doesn’t fit for small projects.

You must be thinking I’m using a single approach with some Servlets and JSP files, and also you can be wrong. I don’t like how huge struts framework is, but I’m a fan of trendy-best-practices ;-). I love the way Google’s App Engine, Ruby on Rails and Django enforce you to get things done. I’ve been hacking with the Java Reflection API, Tomcat and other stuff for a while, now I can tell you I have a little alpha-baby called Bazooka.

Bazooka is a high-level convention-over-configuration J2EE Web framework that encourages rapid development and clean, pragmatic design. (Is it possible in Java World?)

Currently Bazooka is under development, in its 0.2614972128 version (aka Meissel-Mertens [1]) it features:

  • MVC paradigm
  • RESTful
  • Ehcache support
  • ActiveObjects ORM (à la ActiveRecord). It supports Derby, HSQLDB, SQL Server, MySQL, Oracle and PostgreSQL.
  • Pure Java HTML Forms (with validation…)
  • Templates with layouts (allowing you to include a view into a general layout)
  • Authentication and user-role helpers
  • JUnit and log4j integration
  • A simple app admin console to manage database migrations and cache status.
  • NO XML configuration files!

For now I’m the solo user-developer, but I plan to release it under a free software license. When? I don’t know, but keep checking this blog. In the next blog-post I’ll show you how easy is to develop a simple web application with my little Bazooka baby }:-).

[1] One day I’ll explain how I assign version numbers.

Updated: Memiux asked through the comments about the possibility of publishing an greasemonkey user script, I have just uploaded it too. So you can choose between two flavours.

I’m just releasing my brand-new Firefox plugin that allows you to direct download movie’s torrents from The Internet Movie Database. When you reach a movie page you see a new section under the title and you can choose a torrent to download. Please spread the word. Ouch! I forgot to mention… it’s for free!

Download IMDB Bittorrent Firefox Plugin
v0.100, GNU GPLv3.
Download IMDB Bittorrent Greasemonkey User Script
v0.100, GNU GPLv3.

Hace unos días me aburría, decidí que tener 23 podría ser más divertido que seguir con 22, sobre todo porque hasta los 29 no volveré a disfrutar de un número primo. Sí, hablaba de [cumple]años. Y es que el número 23 es uno de esos números que te cautivan, por ejemplo su representación en binario, 10111, también es un número primo.

Google Open Pizza Night:
También estuve en la Open Pizza Night que brillantemente organizó Google España en sus oficinas de Madrid. Raúl Benito (qué difícil es encontrar su blog!) iba a presentar el nuevo API de Youtube, primero una pequeña introducción seguida de un workshop en el que Raúl presentó su revolucionario método de desarrollo SDD, estamos a la espera del RFC }:-).

Fue una noche de reencuentros, estuve con los Lamb Brothers (que me tienen engañado para hacer una pequeña aplicación), con Javi (está vez acompañado por otro Raúl) y A1berto, todos viejos conocidos de la Campus Party. También coincidí con Miguel que le tuve como compañero en un workshop del GDD del año pasado. Pude estar, por ejemplo, con Manu, de tufuncion.com, al que, por cierto, le debo una disculpa por no haberme pasado a dejar el comentario que le prometí O:-) y con Igor de Txurdi. También charlé con Dani y Rupert de Tuenti. Seguro que me olvido a más de uno, así que… lo siento! 

Además, y por fin, pude conocer a Rubén Díaz (aka outime), todo un crack que está desarrollando Jisko, y aunque no me guste explicarlo así, un clon libre de Twitter con funcionalidades extras, me llamó poderosamente la atención lo involucrado que está en el proyecto, este sí que sigue aquello de eating his own dog food, proyecto que, por cierto, pudo presentar durante 10 minutos.

Por lo demás, decir que las pizzas estaban mejor que buenas, la cerveza también, pero nada como las patatas fritas de colores, lo siento, eran mi debilidad, y la de todos mis compañeros de mesa! Ahora dar las gracias a todos l@s chic@s de Google, que una vez más nos trataron fenomenal, y sobre todo a Clara por invitarnos a un evento que espero no sea el último de este tipo. Para enterarte de eventos como este y de todas las novedades de Google no dejes de leer y suscribirte al blog de oficial de Google para desarrolladores en español: Programa con Google.

Yo también tuve 10 minutos para presentar una pequeña prueba de concepto que pretendía mostrar algunas de las nuevas capacidades del API de Youtube. Todo lo había programado en tres tardes y una larga noche, una aplicación a medio camino entre Twitter y Seesmic. Un servicio de microvideoblogging que permite grabar vídeos directamente a través de la página web, y que posteriormente son almacenados en Youtube, en los que se permite, por ejemplo, añadir videorespuestas. Podría dedicarle algo más de tiempo y publicar la aplicación (aunque todavía no tenga modelo de financiación :-P). Aplicación que estaba escrita en Java, por una vez creo que escribir en Java una aplicación web me supuso ahorrar tiempo, ya que pude usar el GData API Client de Java.

Mi Proyecto Fin de Carrera:
La aplicación que presenté en la Open Pizza Night usaba una de las primeras versiones de un pequeño framework J2EE que estoy preparando para mi Proyecto Fin de Carrera. Framework que sigue el patrón MVC con un front controller que procesa todas las peticiones y usa el API de reflexión de Java para cargar clases y llamar a métodos dinámicamente en función de la URL, también usa annotations para, por ejemplo, poder especificar que métodos necesitan autentificación por parte del usuario. Y lo mejor, no hace falta escribir ni una línea de XML! El próximo día hablaré sobre mi PFC, porque lo mejor de Java es que puedes odiarlo, pero nunca lo odiarás tanto como documentar.

Arpia49 (the distroman):
Por otra parte pasé dos días geniales en casa de Adal (aka arpia49), sin el que no hubiese podido aprender a usar mi nueva powerball, y sin el que tampoco podía haber saboreado la primera sandía del mundo que en realidad sabía a melón (priceless).

Optimización de Aplicaciones LAMP:
Ayer estuve en una magnífica charla, impartida por Fernando Arconada, sobre optimización (y un poquito de escalabilidad) de aplicaciones LAMP. La charla estaba enmarcada dentro de las jornadas técnicas que se imparten en mi universidad con motivo de la celebración de la RiojaParty de este año.

Sobre el PyWebDj:
Como casi siempre me termina pasando, una vez más, no tengo tiempo para mantener la aplicación, y menos si quiero que funcione en GNU/Linux, Windows y Mac OS X. Parece que la versión actual ha dejado de funcionar, seguramente hayan cambiado los tokens asociados a los archivos, pero no quiero ni pararme a mirarlo. Además han aparecido varias herramientas similares (seguro que incluso son mejores), so… google for it.

Extra Lap (parafraseando a delarosa):
Seguramente me olvide de contar algunas cosas. Como que me rompí rompieron un ligamento jugando al fútbol y llevo casi dos meses sin jugar. O que el número de cervezas consumidas durante el transcurso de todas estas historias es superior a dos. O todo lo que me gusta el nuevo App Engine de Google, pero de esto ya hablaremos en otro momento. En definitiva, lo que venía a decir es: sigo vivo.

Disculpas:
Siento que este post tenga casi el mismo número de saltos en el tiempo que el peliculón Primer, pero después de tres meses sin escribir casi se me había olvidado. Intentaré que el próximo post se publique antes de mi siguiente cumpleaños primo.
Lo del título del post, no voy a intentar ni explicarlo, si no lo entiendes pasa al siguiente, siguiente, siguiente. Y hasta la vista, Vista.

 

Qué es PyWebDj (versión corta y oficial)
Es un programa sin ánimo de lucro que permite extraer el audio de ficheros alojados en internet por terceros.

Qué es PyWebDj (versión larga también conocida como: qué fumas?)
No lea el siguiente párrafo a no ser que esté muy aburrido (o trabajando)
Es la confirmación de que puedo ser un vago, lo que a su vez demuestra que puedo llegar a ser informático, sí, uno más de esos.
Después de este comienzo tan poco gracioso me explico: aproximadamente hace un mes me preguntaron si podía encontrar (vía eDonkey2000, ares, bittorrent…ponga aquí su protocolo p2p favorito) una canción. Nada, no la encontraba, era algo fuera de lo común y no lo encontraba, pero al preguntar dónde habían escuchado esa canción me dijeron que en un vídeo de YouTube. Así que me puse el mono de trabajo, bajé el vídeo, tiré de ffmpeg y saqué un mp3 con la canción en cuestión, una versión rock del canon de Pachelbel.

Hace unos días me volvieron a pedir algo parecido, así que antes de que esto se convirtiese en el Raúl puedes pasarte a formatear mi ordenador 2.0, decidí que tenía que hacer un programita chorra como regalo de reyes para todo el mundo y además me ahorrase el trabajo. En un principio iba a ser algo en plan: meto la URL, que baje el vídeo a cañón y que le saque el audio. Eso era feo y además lo tendría que seguir haciendo yo, sino podría pasar la de… Consola? Qué Consola? Yo sólo tengo una Play2, me vale esa? (Era un chiste geek, si no te ha hecho gracia, no hace falta que lo entiendas). Así que la siguiente idea fue Java + SWT, pero bueno ya se sabe, lo bonito de Java es que puedes odiarlo. Así que tras tener prácticamente todo lo necesario para bajar y extraer el audio, me puse a pegarme con SWT durante un buen rato (3 minutos), no está hecho para programarlo (sí, SWT se programa, no se diseña :D) a las tantas de la mañana o la tarde de un domingo.

Por qué no usar…dotNet, que te preparas una interfaz en 5 minutos con WinForms? Porque quería que fuese multiplataforma*. De ahí la idea de la aplicación para línea de comandos, y luego Java + SWT.

Entonces…? Python (webpy), SQLite, ffmpeg, XML, Flash, HTML, x cervezas, 500gr de pistachos, dos tardes de ayer salí y una noche un poco larga. Y como resultado una aplicación web con buscador de canciones, gestor de descargas y gestor de biblioteca musical. Probablemente no sea la mejor solución, pero era la más cómoda para mi, y al final la aplicación cumple con su función: bajar música.

*Habrá versión para Mac OS X y Linux es unos días (espero).

Licencia
Aunque todavía no he publicado el código, lo haré espero que pronto, de momento le he colocado una licencia Apache Version 2.0. Si alguien quiere hacer alguna sugerencia sobre la licencia más oportuna para esta aplicación, por favor, como siempre a través de los comentarios.

Sí, no todo es maravilloso
La aplicación es bastante mejorable, muy mejorable. Sé que tiene problemas (y fallos) pero no quería alargarme, más que nada porque durante los próximos días prefiero no dedicarle más tiempo a esto. Pero ya se sabe aquello de Release early, release often, yo de momento voy a cumplir la primera parte.
Por ejemplo, la calidad del audio está condicionada por los archivos de vídeo, así que no esperéis calidades altas. Todavía sólo he preparado la versión para Microsoft Windows. Seguramente en Internet Explorer no funcione (algún día lo hará).

No prometo NADA
Viene un mes un tanto duro para mi, así que no prometo mejoras, ni corregir errores hasta que al menos llegue el 15 de febrero, más o menos.

Sugerencias, quejas y dudas
Como siempre a través de los comentarios. Se bonificarán ;-).

Sobre lo legal, lo ilegal y lo alegal
Yo sólo pongo la cama, y creo que es cómoda. Nada más que decir.

Download PyWebDj for Windows
v0.100, Apache License, Version 2.0.

P.D.:
Podría haberme extendido más, pero estoy con el portátil en la cama y me estoy quedando sin batería. Así que perdonadme las faltas y que no haya hablado de cositas como Adobe AIR (entre otras). Y si probáis la aplicación se agradecería un comentario.