Leer datos JSON desde App Inventor


App Inventor tiene un componente llamado Web que le da la funcionalidad de enviar y recuperar datos de un servidor o de un sitio web a través de solicitudes GET y POST   de modo que e ste componente puede decodificar tanto datos formateados en los formatos  JSON y HTML .

Vamos a mostrar  como funciona una aplicación llamada iRead que le pedirá al usuario que escriba el nombre completo o parcial de libros y consulte la base de datos de libros utilizando  el API de Google  Book  API  recuperando la información sobre el libro más relevante.

Para ello vamos a analizar el título y el autor del libro,  obtener la URL de la imagen de la portada del libro, y, finalmente, la dirección URL del libro que puede ser lanzado a través de un navegador.

En MIT App Inventor , lo primero es  construir su interfaz de usuario (UI) en la ventana del diseñador: ahi  se renombran nombres predeterminados de los componentes que  App Inventor proporciona.   Si usted está teniendo dificultades para el diseño de la interfaz de usuario, descargue el archivo de origen (iRead.aia) desde  la pagina de Descargas  y  eche un vistazo.   Lo que importa es que usted tenga todos los componentes esenciales
¿Ha tratado de ejecutar una solicitud de consulta sobre el Books API de google todavía?   Haga clic en el enlace de abajo para ver la respuesta del API.
Esto le dara una respuesta que es similar a esta:
Nuestra preocupación no es la información sobre el libro actual (Con el tiempo puede que no obtenga la misma información sobre el libro usando la misma consulta), nuestras preocupaciones son las fichas que vamos a necesitar para identificar y analizar los datos específicos.   Eche un vistazo a las fichas como  >que termina con una coma y una nueva línea, “autores”:  que termina con],  etc
Ahora vamos a empezar a definir las acciones e interacciones en el editor de bloques.
   Hemos definido tres variables globales
  • googleBookSearchURL – Ahí es donde almacenamos la dirección URL de la API de búsqueda de libros.
  • TempData  – Vamos a usarlo para guardar los datos temporales.
  • bookURL  – Ahí es donde vamos a analizar y almacenar la dirección URL (token “InfoLink”) de la información sobre el libro devuelto por la API.
Cuando un usuario introduce un nombre de libro y pulsa el botón Buscar, llamamos procedimiento GetBookInfo donde simplemente construimos nuestra URL con el texto introducido por el usuario y codificada para su uso como una URL, y, finalmente, alimentamos a la propiedad Url del componente Web.   Queremos conseguir una sola información sobre el libro (API puede devolver muchos);   así que utilizamos maxResults = 1.   Si no usamos la proyección = Lite, nos encontraremos con un montón de otra información que nosotros no vamos a utilizar en esta aplicaciónl.   Al final llamamos Web.get para ejecutar nuestra consulta.
¿Cómo sabemos cuando el servidor devuelve una respuesta a nuestra consulta?   Bueno, usamos bloque GotText del componente Web para esto.   Siempre que nuestra aplicación reciba algo, el bloque GotText se activará automáticamente para nosotros para validar y procesar los datos.   Vamos a analizar la respuesta JSON de la API que recibimos.  
       Sólo podemos proceder si responseCode es 200 lo que significa nuestra consulta no falló en el camino.   Tenemos otro procedimiento llamado ParseBookResult que realmente analiza la respuesta.   En el procedimiento ParseBookResult, dividimos el contenido de la respuesta utilizando la etiqueta inicial y la etiqueta final.   Por ejemplo, para analizar el título del libro, tenemos que saber el principio y los códigos de finalización de un título.   Si usted ha notado en la consulta, devuelve-
     “Title”:  “Harry Potter y la cámara de los secretos”,
   "autores": [ 
       "JK Rowling" 
      ],

Por lo que sabemos, comienza con “title”: y termina con una coma seguida de una nueva línea. Es por eso que hemos utilizado esas etiquetas cuando llamamos ParseBookResult de procedimiento GotText arriba. En nuestro ejemplo de datos en bruto, el valor es “potter Harry y la cámara de los secretos”. Entonces desciframos el valor JSON llamando JsonTextDecode de Web. Y finalmente descifrar los caracteres HTML llamando HtmlTextDecode. Llamamos HtmlTextDecode para reemplazar caracteres HTML ilegibles con caracteres legibles. Por ejemplo el signo “&” si tenemos este , y queremos mostrarlo y en lugar de &.

Cuando pulsa a un usuario en el botón Leer, simplemente lanza el navegador con la URL del libro.      Para el lanzamiento de un navegador, utilizamos el componente ActivityStarter . Establecemos primero la acción, establecemos la URL que recuperamos y despues llamamos a la startActivity de componente ActivityStarter para iniciar el navegador con la URL especificada. Si nuestro bookURL no contiene una dirección URL válida, simplemente informa a los usuarios.



Análisis de Resultados Múltiples

¿Qué pasa si usted desea analizar múltiples resultados? Bueno, en ese caso se define un maxResults más alto cuando se consulte Ahi  , definimos maxResults al valor tres lo que significa que queremos tres resultados. Si el API de Google no puede encontrar tres ocurrencias para nuestra consulta de libros, en ese caso no estaríamos recibiendo tres resultados obviamente,p ero si encuentrar tres o más para nuestra consulta, vamos a recibir sólo tres. Para fines de demostración, sólo en esta parte solo vamos a analizar los títulos. Tal vez usted ya lo adivinó, necesitaríamos para cada bloque hacer el trabajo. Hemos creado un procedimiento llamado GetAllTitles que tiene tres argumentos – apiResponse, de inicio, y fin. Como puede ver, pasamos a responseContent, inicio y fin como lo hicimos antes para analizar un solo título. GetAllTitles utiliza una para cada bucle y pasar todos los títulos y lo mismo para el análisis, exactamente como lo hicimos antes. Antes no teníamos un bucle, ya que tenía sólo un título para analizar y ahora tenemos un bucle porque tenemos muchos a analizar. Tenga en cuenta que el procedimiento GetAllTitles almacena el resultado después de analizar cada título a una variable global llamada allTitles y lo devuelve. Se utilizó un componente Label denominado OtherTitlesLabel para mostrar el resultado devuelto por el procedimiento GetAllTitles.

Por ultimo puede descargar el archivo de código fuente de esta aplicación (iRead2.aia)  y la anterior (iRead.aia  )  desde la página de Descargas del autor .
 


Fuente   aqui   
Anuncios

Ejemplo manejo request con App Inventor


Al igual que usted puede acceder a páginas Web desde el teléfono – por ejemplo, para buscar un precio de las acciones – por lo que puede App Inventor. Esta aplicación permite al usuario introducir un símbolo de cotización, luego mira el precio de la acción en Yahoo! Finance y muestra el precio por teléfono.

En este post  se supone que está familiarizado con los conceptos básicos de la aplicación Inventor – utilizando el Diseñador de componentes para construir una interfaz de usuario y utilizando el Editor de bloques para especificar controladores de eventos. Si usted no está familiarizado con los conceptos básicos, intente pasar a través de algunos de los tutoriales básicos antes de continuar.

En primer lugar ,conéctese al sitio Web App Inventor y empezar un nuevo proyecto. Nombre que StockQuotes, y también le da título a “Cotización de Acciones” de la pantalla.Abra el Editor de bloques y conectarlo al teléfono.

Para configurar los componentes,utilice el diseñador de componentes para crear la interfaz de usuario. Cuando haya terminado, debería parecerse a la siguiente imagen. Instrucciones adicionales están por debajo de la imagen.

Hecho esto ,cree los siguientes componentes arrastrándolos desde la paleta en el Visor.

Tipo de componente Grupo de paletas Lo que usted lo nombra Propósito de componentes
TextBox Interfaz de usuario StockSymbolTextBox Cuando el usuario entra en el símbolo de cotización
Botón Interfaz de usuario GetQuoteButton Para solicitar la cotización de bolsa
Etiqueta Interfaz de usuario ValueLabel Para mostrar la cotización de bolsa
Web Conectividad Web1 Solicitar y recibir la cotización de bolsa

Seguidamente  con las propiedades predeterminadas a excepción de los siguientes cambios:

Componente Acción
StockSymbolTextBox Establezca su propiedad Hint “Introducir un símbolo de cotización”.
GetQuoteButton Establezca su propiedad Text en “Obtener Cotización”.
ValueLabel Desactive su propiedad Text.

El API Finanzas Yahoo!

Muchos de los servicios web ofrecen un interfaz del programador de aplicaciones (API) para los desarrolladores para que sus programas para acceder al servicio. Algunas maneras de descubrir las API son a través de la página web http://programmableweb.com o simplemente haciendo una búsqueda en Internet para el nombre de servicio y el “API”.

La API de Yahoo! Finanzas está documentado en detalles sangrientos en http://www.gummy-stuff.org/Yahoo-data.htm . Los aspectos más destacados son que usted puede conseguir el último precio de la acción con el símbolo “GOOG”, por ejemplo, con la URL http://finance.yahoo.com/d/quotes.csv?f=l1&s=GOOG

.La sección “f = l1” (letra minúscula L, seguido por el número 1) dice nos gustaría que el último precio, y la sección “s = GOOG”, dice nos gustaría información acerca de las acciones cuyo símbolo es “GOOG” . El resultado se devuelve en valores separados por comas (CSV), que usted puede estar familiarizado con las hojas de cálculo. Dado que sólo un valor se devolverá a nuestra consulta, el resultado será un número viejo y simple, como “511.5”, sin ninguna coma. (Las comas se utilizaría si lo solicitamos múltiples piezas de datos de Yahoo!, como el nombre de la empresa y el volumen de comercio diario.)

Añadir comportamientos a los Componentes

Los bloques para hacer la solicitud web se muestran aquí y se detallan a continuación:

Tipo de bloque Cajón Propósito
GetQuoteButton.Click GetQuoteButton Manejar un clic del botón “Get Quote”.
establecer Web1.Url a Web1 Especifique la dirección URL a la solicitud.
unirse Texto Concatenar las partes de la dirección URL.
“” ( http://finance.yahoo.com/d/quotes.csv?f=l1&s =

External Links icon

 )

Texto Especifique la primera parte inmutable de la URL.
StockSymbolTextBox.Text StockSymbolTextBox Obtener el símbolo de la acción en el cuadro de texto.
llamar Web1.Get Web1 Hacer la solicitud Web.

El significado es: Cuando se hace clic en GetQuoteButton:

  1. Construir URL del componente Web concatenando ” http://finance.yahoo.com/d/quotes.csv?f=l1&s =
    External Links icon

     “(que debe copiar y pegar en el bloque de texto) y el símbolo que se introdujo por el usuario (StockSymbolTextBox . Texto).

  2. Solicite la página especificada por el URL. (Esto es como pulsar retorno después de introducir una URL en su navegador web.)

Cuando la respuesta a la solicitud Web llega, el evento Web.GotText se eleva con cuatro parámetros (sólo algunos de los cuales vamos a utilizar en esta aplicación):

  1. url: la URL de la solicitud original (lo cual es útil si las solicitudes se hacen con muchas URLs diferentes).
  2. responseCode: el código de estado HTTP , que indica si la solicitud Web sucedió o cómo falló; por ejemplo, 200 significa que la solicitud se realizó correctamente, 404 que la página no se ha encontrado, etc
  3. responseType: el tipo MIME de la respuesta, como por ejemplo “text / csv” en esta aplicación, “image / jpeg”, etc
  4. responseContent: los datos que se devuelven, como “511.5”.

Aquí hay una imagen y la tabla de los bloques que necesita para crear:

Tipo de bloque Cajón Propósito
Web1.GotText Web1 Especifique qué hacer cuando la respuesta vuelve de la web.
Si, pues, Control Proporcionar un comportamiento diferente dependiendo de si la solicitud se realizó correctamente. Utilice el mutador para agregar una sentencia else.
conseguir responseCode Variables Obtiene el código de respuesta devuelto por la solicitud web, que …
= (Igual) bloque Lógica … Está marcada por la igualdad con …
número (200) Matemáticas … 200, el código para las respuestas de web válidos.
establecer ValueLabel.Text a ValueLabel Mostrar el resultado en la pantalla.
unirse Texto Construir el resultado concatenando …
“” (“Valor actual”) Texto … El texto “Valor actual:” y …
get responseContent Variables Obtiene el valor devuelto por la web.
establecer ValueLabel.Text a ValueLabel Mostrar un mensaje de error.
“” (“Error al obtener Cotización”) Texto El mensaje de error

He aquí una descripción del comportamiento del bloque:

  1. Si el código de respuesta indica que la solicitud Web sucedió (= 200), establece la etiqueta para la concatenación de “valor actual” y los datos devueltos (por ejemplo, 511.5).
  2. De lo contrario, establecer la etiqueta de “Error al obtener cotización de bolsa”.

Si desea trabajar con este ejemplo en App Inventor,pude  descargar el código fuente (External Links icon de su equipo, a continuación, abra la aplicación Inventor, haga clic enProyectos, seleccione Importar proyecto (. aia) de mi computadora … y seleccione el código fuente que acaba de descargar.)

Logger de temperatura con Netduino


Una de las cosas más importantes en la elaboración de cerveza es el control de la temperatura.  No sólo se necesita un control de la temperatura durante el proceso de maceración, también lo necesita durante los procesos de fermentación, lagering y almacenamiento.

Como parte de la construcción de un  Sistema Eléctrico Brew hay que  controlar la temperatura del puré y  programar un perfil dejando un  sistema de notificación de nuevos pasos importantes en el proceso,para lo cual  se necesita  gestionar la temperatura que tiene que vigilar, así que  comenzaron a construir un  controlador 

Primero Jim Lavin – Otaku Brewer   escribieron las cosas simples, como la interfaz y los servicios de control y luego partieron los diversos componentes del control de la automatización en los circuitos independientes que podrían ser construidos y probados por ellos mismos.

Comenzaron   con el circuito de monitorización de la temperatura:el microcontrolador leería el sensor de temperatura e iniciaría sesión en  un archivo en una tarjeta SD que luego podría utilizar para mostrar un gráfico de la temperatura con el tiempo. El proyecto Logger Temperatura DIY Brewery es el resultado de esa primera fase de desarrollo. Es un proyecto Netduino Plus que proporciona un monitor de temperatura basado en la web.

Este proyecto consta de varias partes:

  • CodingSmackdown.ControlInterface – Un sitio web basado en jQuery que se aloja en la tarjeta SD del Netduino Plus ‘y se sirve con el NeonMika.NETMF.Webserver. Proporciona una visión actualización auto de la historia de la temperatura, así como una ficha de configuración que le permite cambiar la configuración del registrador, así como la configuración de red de la Netduino.
  • CodingSmackdown.Services -. AC # biblioteca NETMF que contiene las diversas bibliotecas de roscado para manejar la resolución de nombres NETBIOS, NTP Time Client y registro de temperatura. También incluye clases para manejar el acceso a los diferentes pines GPIO y analógicos en la Netduino y otras varias clases de base y de apoyo utilizados por el proyecto.
  • CodingSmackdown.TemperatureMonitor -. C # Aplicación NETMF que es responsable de la carga de los diferentes servicios en el momento de inicio y ofrece clases que se utilizan por el NeonMika.NETMF.Webserver para procesar las solicitudes de jQuery enviados por el cliente web.
  • JSONLib -. AC # NETMF Biblioteca utiliza para dar formato a las distintas respuestas en formato JSON para su uso por el cliente web. El código original fue escrito por Wouter Huysentruit y se puede encontrar encima en http://code.tinyclr.com
  • NeonMika.NETMF.Webserver -. AC # biblioteca NETMF que proporciona todo el servidor web para el proyecto. El código original fue tomado del proyecto NeonMika.NETMF.Webserver aquí en CodePlex encima en http://neonmikawebserver.codeplex.com Esta versión fue emparejado hacia abajo específicamente para este proyecto y para cumplir con las restricciones de memoria de la plataforma Netduino. Para la última versión, por favor hacer referencia al proyecto original.

A continuación se presentan imágenes de la interfaz de usuario y los esquemas del circuito del sensor de temperatura, por lo que pueden construir por sí mismo.

La página principal recuperado navegando a http://netduinoplus/index.html

TempLogger_Index_Page

La pestaña Configuración que se puede utilizar para cambiar el comportamiento y la configuración de red del registrador de temperatura

TempLogger_Settings

El diseño de tablero del circuito del sensor de temperatura

TempLogger_breadboard

El esquema del circuito sensor de temperatura

TempLogger_schematic

Imágenes del prototipo Netduino Shield que mantiene el circuito del sensor de temperatura

TempLogger_Shield1

 

TempLogger_shield2

Usted puede encontrar el código fuente y las actualizaciones del proyecto en http://diybrewerytemplogger.codeplex.com/

 

 

Fuente aqui

Porqué actualizar a windows 8.1


Desde hoy ya esta disponible para su descarga gratuita desde la tienda online Windows Store la actualización de cualquiera de las versiones de Windows 8 a Windows 8.1.

No es habitual que Microsoft  ofrezca un SP gratuito a sus usuarios incluyendo un numero importante de novedades integradas , la explicación tal vez se deba a que Microsoft pretende estar presente en un mayor número de dispositivos en el mundo empresarial, así como incrementar la adopción por parte de los profesionales.

No es raro  estar algo  dudoso acerca de la actualización a la siguiente versión de un sistema operativo en el día de la liberación(tradicionalmente algunas actualizaciones utilizadas han estado lleno de problemas y riesgos potenciales que podrían hacer perfectamente una buena máquina perfectamente inútil, todo en nombre de tener la siguiente mejor cosa)  pero afortunadamente, ese no es el caso de Windows 8.1  pues según Microsoft, Windows 8.1  es muy digno de la instalación si ya esta  ejecutando Windows 8 .

windows-8.1-skype

Si usted está buscando algunas buenas razones para actualizar a Windows 8.1 , los tenemos para usted aquí.

Windows 8 tutoriales

Vamos a empezar con el mayor fracaso de Win 8, y cómo Microsoft entrega en una manera enorme con Windows 8.1. La primera vez que inicia un equipo Windows 8 se obtiene una gran pantalla con un fondo que está cambiando constantemente colores con las declaraciones calmantes sobre cómo su equipo está casi listo para su uso. Tossed con eso es una rápida propaganda sobre cómo funciona el nuevo menú de inicio, pero eso es todo lo que obtienes. Este fue un gran problema para los usuarios de Windows que han pasado de una interfaz de usuario que ha existido por más de una década para una nueva configuración “interfaz de usuario moderna”. Había muy poca explicación, y en un ordenador portátil o de escritorio que podría tomar un tiempo para que el usuario pueda averiguarlo por su cuenta. La frustración fue alta en los primeros días de Windows 8.

Los usuarios de Windows 8.1 son recibidos con flechas gigantes interactivas que explican cómo muchas de las funciones de trabajo. Usted consigue uno para el botón de inicio y una breve explicador del funcionamiento de la página de inicio. Usted recibe una para el bar y el encanto de una breve explicador de por qué lo que existe, y se obtiene una para la función de multitarea en Modern UI, que es un gran problema para algunos. Usted no consigue uno para el cierre de aplicaciones en Windows 8.1, perotenemos todo cubierto .

multi-ventanas

Mejora de la interfaz de usuario moderna multitarea

Una de las características interesantes que vienen en la nueva interfaz de usuario moderna fue la posibilidad de configurar las aplicaciones en un modo de pantalla dividida. Por ejemplo se podría tener una interfaz de usuario moderna de una aplicación abierta en un tercio de la pantalla y todo lo demás  desde un navegador en el escritorio abierto en los otros dos tercios. Esto resultó ser una característica muy fresca para una gran cantidad de usuarios, especialmente aquellos que utilizan aplicaciones como Twitter o correo electrónico y querían mantenerlos abiertos sin dejar que se tomen sobre el resto del sistema. Por desgracia, en Windows 8 sólo se podía dividir la pantalla en tercios.

De Windows 8.1 ha aumentado la funcionalidad de la pantalla dividida, lo que permite un par de aplicaciones para dividir la pantalla. La aplicación anterior era buena para aplicaciones más pequeñas, pero ahora se puede dividir casi cualquier aplicación y compartirlo con cualquier otra cosa en su sistema. Esto es particularmente útil para los juegos de Xbox o Xbox Vidrio inteligente si va a compartir con el escritorio o Skype . Este es un gran sistema para la multitarea, una vez que haya ajustado a usarlo, aunque los nuevos usuarios lo encontrarán extraño al principio porque las aplicaciones de interfaz de usuario modernos se comportan de manera diferente que las aplicaciones de escritorio tradicionales.
66bad7cc-AADC-4735-8672-957e14d56df0_18

Página de inicio mejorada

Muchos usuarios se han entusiasmado  con el regreso del botón Inicio y, aunque eso tiene sentido en el espacio de escritorio, hay un cambio mucho más grande que implica la página de inicio que usted debe estar entusiasmado. La página de inicio en Windows 8 es esencialmente una cinta grande de las aplicaciones  y la organización de esta tomamucho tiempo,pues cuantas más aplicaciones instalaste, más llegaron la cinta. De Windows 8.1 comienza con una configuración muy básica con muy pocos iconos en él y una flecha que lleva a todas las aplicaciones y la configuración siguiente. Esta configuración le permite mucha más flexibilidad y mucho menos trabajo. Además, ahora se puede personalizar el fondo de pantalla en la página de inicio con cualquier diseño que te guste.

Los propios cuadros consiguieron una actualización, así, lo que  permite la posibilidad de establecer tres tamaños diferentes para las cuadros que están en la página de inicio. Este ajuste hace no solo que sean  cuadros más pequeños ,sino que le permite encajar mucho más en un solo espacio de la red, si eso es lo que quieres hacer. Esta es también la misma configuración que Windows Phonetiene en su página de inicio, y probablemente será la forma en la Xbox Uno funcione tan bien.

Arranque de escritorio

Tal vez todas las nuevas funciones de la Página de inicio simplemente no son suficientes para que usted se preocupe por la interfaz de usuario moderna. lo. Con iOS y Android alrededor, Microsoft tiene un largo camino por recorrer para que esta experiencia sea muy grande, y si le pegan un ratón y un teclado a toda la interfaz de usuario aún puede sentirse un poco incómodo. Por eso la interfaz de usuario moderna puede  que no sea lo mas facila de modo que  ahora cualquier pueda comenzar directamente en el escritorio de Windows 8.1.

Desde el escritorio, haga clic derecho en cualquier parte de la barra de tareas de Windows 8.1. Coge Propiedades en la lista que aparece y haga clic en la pestaña de navegación. Marque la casilla “Vaya al escritorio en lugar de inicio cuando inicio sesión”, que se puede encontrar en las opciones de la pantalla de inicio.Después de esto se comprueba, al iniciar sesión en Windows 8.1 lo trasladarán directamente al escritorio.

De Windows 8.1

Microsoft Remote Desktop App

Si alguna vez has querido o necesitado acceder a su PC, usted puede sacar de la nueva aplicación de escritorio remoto para Android. Es una aplicación gratuita, y le permite saltar en su PC. Lo que hace que este servicio especial es la forma en que le permite mantener los gestos táctiles, por lo que es que te sientas como si estuvieras sosteniendo una tableta de Windows 8.1 cuando se está usando. Esto resulta especialmente útil cuando quieres tomar algo que dejó accidentalmente en el escritorio, y es muy fácil de configurar y utilizar.

Por desgracia, esto requiere de Windows 8.1 Pro ser instalado. Si no dispone de esta versión particular de 8,1, usted tendrá que pagar por la actualización para utilizar esta función. Si usted tiene la versión correcta, sólo tiene que instalar la aplicación en tu tableta y siga las instrucciones.

¿Todavía alberga dudas para instalar windows 8.1?

Fuente aqui