PhoneGap vs Xamarin vs Titanium

HTTPie: una herramienta cURL-like para humanos!!!

HTTPie (aitch-tee-tee-pie) es un cliente HTTP de línea de commandos sustituto del curl.

Su objetivo principal es hacer las interacciones con Servicios HTTP más sencillas, para esto soporta JSON, highlighting, descargas wget-like, extensiones,…

Httpie es una aplicación Python, por lo que una vez instalado Python (soporta Python 2.6, aunque recomiendan Python 3.X) puedo instalarla con:

pip install –upgrade httpie

Una vez instalado podéis ejecutar el “Hello World”:

$ http httpie.org

$ http https://api.github.com/repos/stedolan/jq/commits?per_page=5

Su sintaxis es:

$ http [flags] [METHOD] URL [ITEM [ITEM]]

En su web podéis ver todas sus características: https://github.com/jkbrzt/httpie

Os puede interesar este proyecto:

HTTPie + prompt_toolkit = an interactive command-line HTTP client featuring autocomplete and syntax highlighting

https://github.com/eliangcs/http-prompt

Mi primera aplicación con StrongLoop LoopBack

LoopBack es un framework open-source (licencia MIT) para Node.js que permite crear aplicaciones de forma sencilla:

· Creación de APIS REST con un wizard CLI

· Creación de modelos

· API Explorer

· Configuración de la autenticación y autorización

· Conexión con diversos Data Stores: MySQL, Oracle, MongoDB, Postgresql, …

· SDK para Android, Java, iOS y Javascript

· Addons, por ejemplo para soportar notificaciones Push, login social,…

· StrongLoop Arc que es una UI para construir, desplegar, gestionar y monitorizar aplicaciones LoopBack

…veamos un ejemplo de cómo se usa:

1. Si aún no tenemos instalado Node.js lo primero que haremos será instalarlo (http://nodejs.org/download/ ) y comprobar que está en el PATH con:

2. Una vez tengamos Node.js podemos instalar LoopBack a través de NPM:

npm install -g strongloop

(el –g indica que que el paquete estará disponible como paquete global)

3. Una vez instalado puedo crear una aplicación LoopBak a través del interfaz de comandos (a algunos os recordará a Spring Roo :)).

Me iré a un directorio y lanzaré el comando

slc loopback

Me pedirá un nombre para mi aplicación, elegiré Api-Beers (me creará este directorio sobre el directorio actual) y:

Al acabar me aparecerá:

Y este código:

4. Tras esto me iré al directorio y configuraré un DataSource para conectar con Mongo:

slc loopback:datasource

Al acabar el comando puedo ir al fichero server/datasources.json y revisar la configuración:

5. Ahora crearé mi modelo con:

slc loopback:model

En common/models/beer.json podemos ver la definición del modelo:

6. Y sin más ya puedo ejecutar la aplicación:

slc run

En http://localhost:3000/explorer puedo acceder al API REST:

¿Qué es Jaggery?

Jaggery es un framework con licencia Apache 2.0 para escribir aplicaciones y servicios Web completas:Front-end, comunicación, lógica en Servidor y persistencia, todo ello en Javascript.

Las aplicaciones Jaggery se despliegan sobre el Jaggery Server (un Servidor Java construido sobre WSO2 Carbon Runtime), y ofrece una consola que permite desplegar y gestionar aplicaciones Jaggery:

También ofrece una CLI para desplegar apps vía línea de comandos.

Entre sus herramientas tenemos un Editor para IntelliJ y un Debugger sobre Rhino Javascript Debugger: http://jaggeryjs.org/tools.jag

Para probarlo lo mejor es echar un ojo a sus demos.

¿Qué es PAC4J?

http://www.pac4j.org/authenticatewithfacebooktwittergooglein5minutes.html

pac4j es un motor de Seguridad Java con licencia Apache 2 para autenticar, autorizar, obtener profile,… en cualquier aplicación web Java.

Pac4J está disponible para un gran número de frameworks: J2E, Spring Web MVC / Spring Boot, Play 2.x,Vertx, Spark, Java, Ratpack, Undertow, Jooby, Apache Shiro, Spring Security, CAS servery Knox (Hadoop)

Y soporta casi cualquier mecanismo de autorización/autenticación que se os ocurra:

De hecho pac4j ofrece unas guías para integrarlo con tu framework en sus guidelines.

Los conceptos principales de pac4j son:

1) Un client que representa un mecanismo de autenticación. Realiza el login y devuelve un profile. Hay clientes indirectos para autenticación UI y clientes directos para autenticación Web Service.

2) Un authorizer que realiza las autorizaciones sobre el profile del usuario o en el contexto web actual.is meant to check authorizations on the authenticated user profile or on the current web context

3) El "security filter" (u otro mecanismo para interceptar peticiones HTTP) que protege una URL comprobando si el usuario está autenticado y tiene permisos.

4) El "callback controller" que finaliza el proceso de autenticación para un cliente indirecto.

En este tutorial nos explican cómo autenticar con Facebook, Twitter o Google con pac4j de forma muy sencilla: http://www.pac4j.org/authenticatewithfacebooktwittergooglein5minutes.html

¿Qué es Kanbanik?

Kanbanik es un tablón Kanban gratuito y open-source adecuado para uso personal y para gestionar pequeños equipos.

Kanbanik es una aplicación Web Scala con un frontend GWT. Ofrece un runtime para Windows y Linux que incluye un Jetty, un MongoDB y scripts para ejecutar la aplicación sin configuración: bajar aquí.

Para ver lo que ofrece se puede probar su aplicación de demo en: http://kanbanikdemo-jelkosz.rhcloud.com/ (test/test)

Entres sus capacidades tenemos:

· Soporte para flujos complejos (subestados verticales/horizontales

· Edición de tareas Rich

· Movimiento de tareas Drag&Drop

· API JSON completa

· Asignación de tareas a usuarios

· Soporte para autorización simple

· Funciona en móviles

¿Qué es Zeppelin? (el Notebook BigData)

Apache Zeppelin es una implementación del concepto de web notebook, centrado en la analítica de datos interactivo mediante lenguajes y tecnologías como Shell, Spark, SparkSQL, Hive, Elasticsearch, R,…

Apache Zeppelin (incubating)

El concepto de “notebook” fue introducido por iPython, que permitía trabajar sobre un interfaz web en lugar de sobre una shell

El notebook permite compartir tus procesos con otros, de modo que estos puedan entenderlos, modificarlos y adaptarlos a sus necesidades.

Siguiendo con iPython, IPython 3 fue rearquitecturado y se creó Jupyter que ofrece una gran cantidad de lenguajes (Scala, R, Python, Spark, F#,…)

Pero, ¿y entonces por qué Zeppelin?

Zeppelin ofrece varias ventajas:

· Simplicidad: hasta un auténtico cenutrio en esto de manipular los datos es capaz vía Hive o SparkSQL de construir aplicaciones de datos

· Agnóstico del lenguaje: con una arquitectura de plugins (interpretes)..

· Permite crear notes en varios lenguajes

· Interfaz sobre Bootstrap y AngularJS

· (esta sólo para mí?) Java e integrado a la perfección con Hadoop y Spark por ejemplo

Por el contrario Zeppelin está aún en un estado más embrionario que Jupyter, aunque la comunidad lo está respaldando fuertemente….

Una forma muy sencilla de empezar con Zeppelin es instalarlo sobre una VM Hadoop (HDP o CDH), los pasos son mínimos:

Instalar Zeppelin en HDP

Instalar Zeppelin en CDH

En un próximo post haremos un ejemplo completo….

A %d blogueros les gusta esto: