Google Web

4 jun. 2015

Tubular en Java, o sea mi vida no vale nada

Por cierto proyecto que querían usar Tubular, me pidieron ayuda para usarlo con JAVA. Aunque Tubular soporta OData, al parecer en el proyecto no era posible tener servicios OData, solo unos servicios REST en Spring.

Me di a la tarea de ayudarlos y comenzar a programar en JAVA, cosa que no hacía en varios años, y la verdad que recuerdo porque dejo de hacerlo. JAVA es feo. Tarde un rato haciendo esas cosas locas como manejar el POM, configurar el JPA, hacer que Hibernate no se matara y sobre todo que el horrible Eclipse no se colgara cada 5 minutos.

La vida en Visual Studio me volvio más holgazan quizás, o Eclipse es tan horrible que deberían quemarlo con fuego. Aún así logre mi cometido, y deje un ejemplo funcional conectado a MySQL para presentar Tubular. Un éxito. Por si estan interesados en el código (que no forma parte del proyecto) esta en mi cuenta de GitHub como tubular-spring-hibernate.

20 may. 2015

EmbedIO Extras

Estos últimos días he estado trabajando en un proyecto adicional a EmbedIO para extender la funcionalidad del mismo por medio de módulos, unos interesantes y otros solo por el #LOL. Los que si valen la pena revisar, y que ya estan en Nugets son:

EmbedIO Bearer Token Module - Que permite utilizar autentificación por medio de Bearer Tokens directamente en EmbedIO con una plataforma muy similar a la que cuenta en ASP.NET. El Nuget esta disponible como EmbedIO.BearerToken.

EmbedIO Owin integration - Este paquete incluye dos maneras de trabajar la integración con OWIN:


  • Usar EmbedIO directamente como un server de OWIN y por lo tanto recibir todo el pipeline en los Modulos de EmbedIO.
  • Si no quieres cargar con todo OWIN, puedes usar modulos Middleware de OWIN directamente en EmbedIO, registrando el modulo de EmbedIO especializado.


En el sitio web de EmbedIO Extra hay ejemplos, me falta documentarlo un poco mas. El Nuget se llama EmbedIO.OWIN

14 may. 2015

EmbedIO v1.0.5

EmbedIO ha estado en proceso de actualización y se han agregado mejoras (aunque hay muchas todavía en lista de espera), pero por si están interesados en detalles:


  • Se agrego soporte a async Tasks en los métodos de los WebAPI's Controllers. Que no le veo tantísima utilidad pero un fan lo pidio.
  • Se implementaron métodos de extensión para permitir trabajar el WebServer con metodos encadenados (Fluent Interface) para tu sabes:

var server = WebServer
                .CreateWithConsole(url)
                .WithLocalSession()
                .WithStaticFolderAt("c:/web");


Ya pueden encontrar el Nuget actualizado. 

7 may. 2015

Documentando Directivas de AngularJS

Me encontraba en la necesidad de documentar el código de Tubular para que sea visible todos los atributos y hermosos controles que tenemos. Apenas estaba pensando que quizás solo haría un montón de documentos planos y que Pikachu guiara mi camino de dolor a la salvación. Pero me dije, si AngularJS tiene documentación no tan mal, seguramente algo estan haciendo.

Llegue al documento de AngularJS en Github titulado Writing-AngularJS-Documentation que explican, nada claro, como realizar la documentación por medio. Para realizar la documentación necesitas comenzar con escribir en tu código todo lo que necesitas explicar usando ngDoc que es un sabor extendido de jsDoc. Es lo mismo pero solo con unos campos adicionales especificos para AngularJS.

Ya con tus archivos JS llenos de comentarios relevantes y detalles que casi nadie lee. Es momento que comience lo bueno, pues hay que montar un paquete llamado Dgeni (nota: por favor instala el Dgeni-packages porque Dgeni por si mismo hace nada) y comenzar a escribir un Javascript que debera procesar los comentarios jsDoc.

Dgeni soporta muchas formas de exportar el contenido, y en los paquetes trae soporte para nunjunks que es una especie de template engine, no tan cool, que puedes usar para generar unos lindos HTML con todo. La verdad que al principio configurar dgeni es un poco raro, por eso mejor les dejo el siguiente ejemplo que use para comenzar https://github.com/petebacondarwin/dgeni-angular. El archivo "dgeni-conf.js" es donde sucede gran parte de la magía.

Finalmente ya puedes mover tu monton de archivos HTML con links internos, o como yo que los bote para usar un método de AngularJS acoplado a un controller que hice. El resultado se puede ver ya en línea: Tubular Documentation. Falta terminar de detallar, pero ya tenemos API DOC!

4 may. 2015

Novedades Tubular

El desarrollo de Tubular continua  y ahora ya tenemos un nuevo y elegante generador usando la plataforma de Yeoman, que funciona con NodeJS. Las tareas que se pueden hacer con el generator-tubular son:


  • Iniciar un nuevo proyecto Tubular (con AngularJS y Bootstrap) que puede usar tanto Bower como un CDN para cargar las librerías.
  • Crear vistas de ejemplo o desde un archivo JSON.
  • Generar una vista de Grid directamente a tu proyecto actual usando un OData, con opciones para personalizar (similares a las del generador en línea).
  • Generar una vista de Form, igual con un servicio OData.
Faltan detalles, pero está luciendo bastante bien. Ya no me da tanto "flojera" programar con NodeJS, no es tan feo después de todo.

29 abr. 2015

Visual Studio CODE

Pongamos un nuevo editor multiplataforma dijeron, y boom Visual Studio Code. Extrañamente explota en mi maquina, y no lo puedo probar. Seguire intentando.

En otras notas, EmbedIO tiene nueva versión con algunas correcciones y mejoras como el EmbedIO CLI para tener un webserver rápido con soporte a WebAPI y WebSockets.

25 abr. 2015

Tubular 0.9.6 con generadores de código

La nueva versión de Tubular ya esta aquí con algunos cambios y mejoras sobre todo en los formularios. Pero lo mejor esta en los nuevos generadores de código tanto para Grids como Forms, que permiten generar a partir de un JSON (arreglo u objeto) o un servicio OData.

El generador interpretara el modelo para presentar un fácil diseñador de columnas o campos con opciones para extender el código AngularJS final. Y lo mejor de todo es que con un simple click se puede mandar al servicio de Plunker todos los archivos necesarios para generar un proyecto.

El generador de código para Grids se encuentra en http://unosquare.github.io/tubular/#/Generator y para Forms en http://unosquare.github.io/tubular/#/FormGenerator. De hecho también actualice la documentación y mejore un poco el diseño del sitio web.

La nueva versión ya esta en Nuget y quizás en unas horas en JsDelivr.

21 abr. 2015

Novedades DEV

Ya termine una herramienta que empece en la raspberry pi, despues de morir al intentar instalar nodejs. Que dificil es tener herramientas de desarrollo actualizadas hoy en día. En fin la herramienta hace un simple backup de las imagenes publicadas en un blog de Ghost. Dado que la supuesta funcionalidad de backup que tiene no te deja bajarlas. El código se encuentra en https://github.com/geoperez/ghost_tools y es la primer herramienta que hago en NodeJS y no estoy orgulloso.

Lo que si esta quedando realmente guapo es el Tubular Web Generator que permite generar todo el markup para un grid de Tubular desde un modelo JSON, hasta te permite exportar todo tu diseño a Plunker para mandarlo a Git o que se yo.

20 abr. 2015

Tubular 0.9.4

Nueva versión de Tubular, detallitos en GitHub. Pendiente actualizar los NuGets, y ver que el jsDeliver actualice solito de nuevo. Entr los cambios:
  • Columns visibility 
  • Cell Templates linked to Columns Definition 
  • Column Selector control in dropdown menu 
  • Basic grouping
El asunto con el grouping esta muy muy beta, pero ya es un inicio hacia la gloria.

18 abr. 2015

GitHub Pages desde Raspberry Pi

El sábado me dio la idea de que podría divertirme un poco en la mañana montando un blog en mi GitHub Pages personal que se supone puede activarse por Jekyll. Hacerlo en la raspberry pi no fue mi idea inicial pero dije porque no? ERROR FATAL.

Jekyll esta hecho en Ruby y según las instrucciones un gem y bundle y estamos listos. Mentiras sucias mentiras. Al menos en la rpi y en Windows. De Windows, que intente también no hablare, pero en el pobre Linux esta triste.

Raspi trabajando como nunca


Inicie mi rpi y vi que si tenía Ruby instalado, versión 1.9, desconozco de sus versiones y la documentación de GitPages dice 1.9.3.  Me dije a mi mismo, pues calale a ver si pega. Mi error. Bundle instalo pero al instalar los bundles, suena ridículo por cierto, todo explotó. Primero que porque no tenía ruby-dev. Que tonterías para que quiero el paquete dev para un simple bundle de un blog. Aparte el bundle en cuestión era un parser de Textile. Dios que tan difícil puede ser.

Me decidí a actualizar con Aptitude mi versión de Ruby, nada... Tenía que correr un script de mil horas que compilara todo rvm y Ruby 2. Agonía. Yo solo quería hacer bundle install y probar Jekyll.
Paso el tiempo y la compilación terminó. Al parecer el script no quito el Ruby 1.9 y a pesar de cargar el rvm el tonto Gem apunta a 1.9. DOLOR. Quite la versión 1.9 y reinstale Bundle que ya Gem tomo bien. 

Muerte lenta en mi televisor

Era el momento de bundle install y la librería de RedCloth,  la misma de Textile a HTML, volvió a fallar. No podía creerlo, solo quería bloggear poquito. OK Gem es tu turno, Bundle es un marica.
Por fin con Gem logre instalar tan ridículo y dependiente librería, por cierto que Textile es old fashion lo de hoy es Markdown, sabe. Volví a darle un bundle install. El miedo se desvanecía conforme avanzaba el proceso. Mil librerias inútiles solo para un sistema de blogging. Ni PHP es tan hediondo que esto.

WOW por el número de dependencias que tiene Jekyll. Fue como dos vidas para que el bundle install terminará. Al final lo logre y dije, ¿y ahora qué? Necesito considerar si muevo este blog de lugar. Quizás lo haga. Blogger es tan de los 90's.