Publicidad:
Terra
La Coctelera

Mis Tags > planet webdev

Hay 2 artículos con el tag planet webdev.

Otros artículos en La Coctelera
clasificados con planet webdev

DashCode al rescate

He aquí un fan absoluto de picar código, con sus ventajas e inconvenientes. Carlos a esto le llama hacer el pollo, todo el día picando. A ratos muertos estoy desarrollando un widget muy sencillito para el dashboard de OS X.
Me habían recomendado widget factor, pero no acababa de pillarle el punto y al final acabé enganchado a mi adorado textmate haciendo el oso.

Dashboard no es ni más ni menos que un servidor web un poquito especial, y los widgets son pequeñísimas aplicaciones que pueden interactuar con el sistema, con la red, con internet o con otras aplicaciones.

No hace falta dedicarle demasiado tiempo a aprender a desarrollar un widget, no es muy novedoso si estás familiarizado con el desarrollo web. Los archivos con extensión wdgt son carpetas que el sistema operativo tiene identificadas. Si en el menú contextual del wdgt eliges 'Mostrar contenido del paquete' puedes explorar todos los archivos que componen el componente.

Blat me envió un enlace a un post que hablaba de Dashcode, una beta que ha lanzado Apple para desarrollar widgets para su dashboard, disponible en Developer Connection. La herramienta es muy visual, pero permite moldear todo el código generado a manita. Tiene una librería de componentes usuales que está bastante bien y se pueden usar arrastrando encima de tu diseño, y un inspector de elementos bastante sencillo para incorporar comportamientos asociados a eventos.

Hasta aquí nada nuevo bajo el sol.

Hasta ahora todo el test del widget se hacía sobre un navegador, por lo que hasta que no tenías bastante adelantado el desarrollo no podías ver qué tal se comportaba en su entorno final. Muchas funciones relacionadas con efectos, cambios de tamaño, o accesos a sistema hacen que javascript se vuelva un poquito loco, que falle y que todo sea un engorro. Por otra parte, en dashboard no tenemos la posibilidad de ver errores de javascript, así que si algo falla podemos tardar un tiempecito.

Dascode provee de una interfaz de depuración muy práctica. De esta manera conforme vamos avanzando en el desarrollo del código podemos probar el widget en un entorno de desarrollo. Un log nos va informando de todos los pasos que va dando la aplicación y de los errores y alertas. También nos permite insertar breakpoints en el código.

Si es la primera vez que vas a ponerte en harina esta herramienta te vendrá de perlas. Te permite combinar la potencia de escribir tu propio código con un editor visual y un entorno de test. Además si no sabes por dónde empezar en el lateral tienes unos 'workflow steps' que varían en función del tipo de aplicación que vayas a crear.

Seguro que tiene aspectos malos, además es una beta y tendrá fallitos que todavía no he detectado. Pero las primeras impresiones son bastante buenas.

Feeds para dummies

Construir un feed de cualquier contenido en rails (a la MVC y sin addons) es una tarea relativamente fácil. El problema muchas veces viene del desconocimiento de las características concretas de los feeds.

El otro día Sergio sacó el tema de feedtools, una gema para tratamiento de feeds (tanto creación como parseo) de la que había oído hablar pero de la que no había hecho uso.

Con feedtools podemos formar documentos RSS, atom o cdf de forma sencilla sin tener que mirar muchas especificaciones. Simplemente conociendo la anatomía básica de un feed nos basta.

El funcionamiento es sencillo, con una consulta obtenemos todos los post/artículos/noticias que nos hacen falta para la construcción. Y ahora de esta forma tan simple formamos el feed.

 feed = FeedTools::Feed.new
 feed.title = "Título del feed"
 feed.author.name = "Si procede"
 feed.link = "aquí el link"
 
 @misresultados.each do |bloque|
   item = FeedTools::FeedItem.new
 
   item.title = bloque.mititlulo
   item.id = bloque.miid
   item.link = bloque.enlace
   item.content = bloque.cuerpodelenlace
   item.updated = bloque.fecha
   item.summary = bloque.resumen
   item.author.name = bloque.autor
   item.author.href = bloque.urldelautor
 
   feed.items << item
 end
 
 xml = feed.build_xml("atom", 1.0)
 

Tengo que reconocer que yo lo compliqué un poquito más, pero llegó Sergio con las 'rebajas del código' y lo dejó en este cachito enano.

Si lo que queremos hacer es crear el feed como estático y no actualizarlo bajo petición existe la posibilidad de hacerlo con feedupdater, y no parece difícil.

Para cualquier dudilla, a la api!