Creando una aplicación de pago para Firefox OS

tamia

2

Este artículo fue originalmente publicado en el blog de Mozilla Hacks. Traducción por Hadeluna y Tamia Ramírez.

A primera vista, el Firefox Marketplace para Firefox OS puede parecer similar a el Apple Store o el Google Play Store, pero hay una diferencia clave: el Firefox Marketplace no te limita a Mozilla o a un dispositivo con Firefox OS. Te permite vender una aplicación web que funcionará en cualquier dispositivo web abierto, esto a través del protocolo de recibo de pago. Esto significa que mercados fuera de Mozilla pueden vender aplicaciones empaquetadas para Firefox OS tan solo implementando este protocolo. De esta forma los usuarios no notarán la diferencia al usar aplicaciones de pago independientemente de la tienda en la que se hayan adquirido.

Cuando otros dispositivos soporten este protocolo, teóricamente los usuarios podrán pagar una sola vez por una app y usarla en cualquier otro dispositivo. El objetivo de Mozilla con este proyecto es validar el concepto de pago descentralizado para luego entrar en un ciclo de mejora continua. Mozilla extiende la invitación a otros desarrolladores para que ayuden a lograr que el protocolo de recibos de pago funcione correctamente y de esta manera lograr que las aplicaciones pagadas sean realmente portables y abiertas como la web.

Para desarrolladores

Es responsabilidad de cada aplicación pagada el validar el estado de su propio recibo de pago. Si eres un desarrollador con intenciones de vender aplicaciones para Firefox OS, este artículo te dará una idea de como implementar el protocolo de validación de recibo. También puede resultar interesante para aquellos que deseen construir un ambiente de ejecución web o una tienda de aplicaciones pagadas compatible con el protocolo de recibos.

El API navigator.mozApps es el encargado de exponer los recibos de pago de un dispositivo a tu aplicación. La manera más simple de validar un recibo es incluir una librería como receipverifier.js del lado del cliente, y utilizar el URL de verificación de proveedor incluido en el recibo. En la documentación de la librería receipverifier.js encontrará más detalle, pero en realidad implementar la validación de recibo de pago es tan fácil como invocar el siguiente código cuando tu aplicación inicia:

mozmarket.receipts.Prompter({
storeURL: "https://marketplace.firefox.com/app/tu-app",
supportHTML: '<a href="mailto:tu@tuapp.com">email tu@tuapp.com</a>',
verify: true
});

¡Listo! Este es un ejemplo de una validación de alto nivel que también despliega un aviso al usuario en su pantalla en caso de que no se encuentre el recibo, o en caso de que sea inválido. Para una validación a un nivel más bajo puedes consultar la documentación de la librería.

En la aplicación Private Yacht puedes encontrar un ejemplo de una validación más compleja que ha sido utilizada para pruebas. Esta aplicación muestra como hacer una validación de recibo de pago desde el lado del cliente usando la librería receiptverifier.js, y cómo hacer una validación del lado del servidor usando la libería Node.js. Adicionalmente tenemos disponible una librería de Python (y otra especialmente para Django) que puede ser usada para hacer validaciones del lado del servidor.

¿Cómo funciona? Cada recibo de pago es realmente un conjunto de elementos en formato JSON. Uno de ellos contiene el enlace a un servicio web de verificación de recibos; este enlace es el que se utiliza para realizar la verificación. También existe la opción de hacer una validación sin conexión, pero para esto es necesario mantener sincronizada información clave sobre el recibo y por el momento algunos detalles como reembolso y renovación no están bien soportados en este caso.

Por defecto, un recibo solo puede ser originado desde un URL que se encuentre registrado en el manifiesto de tu aplicación bajo el parámetro installs_allowed_from. Como desarrollador, deberás coordinar el proceso de pagos directamente con las tiendas de apps, por lo que también vas a querer limitar quién puede vender tu aplicación. Debido a lo abierto que puede resultar JavaScript del lado del cliente, puedes tener mayor control sobre la lista de vendedores al validar recibos del lado del servidor (o sea, en tu propio servidor).

Las aplicaciones de pago en Firefox Marketplace aún no están disponibles, pero muy pronto lo estarán. Si desde ya incluyes en tu aplicación la validación de recibos de pago, vas a estar listo cuando el flujo de registro lo soporte.

Protección contra el fraude

Permitir que las aplicaciones puedan venderse desde cualquier tienda web es crucial en la visión de Mozilla. Sin embargo, descentralizar el protocolo de recibos sin dejar desprotegidos los componentes de las aplicaciones (sin utilizar DRM) resulta un gran reto. Ya existen mecanismos del lado del cliente que le permiten al usuario acceder aplicaciones de pago como un proxy DNS, sin embargo también existen formas de mitigarlo como CSP, CORS y HSTS, solo para mencionar algunos. El estado actual del sistema de pago de aplicaciones de iOS/Android no es muy diferente. Hay un bug pendiente que hará que los sitios de ventas de aplicaciones sean más efectivos, y es Mozilla quien espera evolucionar el sistema cada vez más a medida que desarrolladores y sitios de ventas de apps participen en el proceso. Cambiar a apps firmadas y empaquetadas debería ofrecer una capa más de protección para sus componentes, pero este patrón fue diseñado más para resolver los requerimientos sobre permisos.

Y como siempre, si encuentras algún problema, por favor registra bugs. Si es un problema con la plataforma de aplicaciones, selecciona Core (componente DOM:Apps), o selecciona Marketplace (componente Payments/Refunds).

Mozilla Hispano Work Week 2013

jorge

0

Sacrifiqué un par de días feriados para atender el Mozilla Hispano Work Week en Lima, Perú. Estoy escribiendo esto en el aeropuerto de Lima, a punto de regresar a Costa Rica. Tengo dos vuelos y una gran presa de regreso de la playa en mi camino a casa. First world problems :D .

El Work Week es un nuevo tipo de evento que nació en el último MozCamp LatAm, en Argentina. Mozilla Hispano es una comunidad única que comprende múltiples países y un mismo idioma; tenemos una necesidad de reunirnos regularmente (o una vez al año, a falta de alternativas) para coordinar proyectos y decidir las direcciones a tomar como comunidad. Los MozCamps fueron pensados con un objetivo distinto, así que surgió la necesidad de crear los Work Weeks.

Debo decir que estoy muy satisfecho con los resultados. Fueron tres jornadas intensas de trabajo, donde se avanzó lo que normalmente tomaría meses en lograr de una manera distribuida. Compartimos los proyectos en los que estamos trabajando, e invitamos a todos a contribuir con ellos y llevarlos adelante.

Hubo mucha discusión sobre el próximo lanzamiento del Firefox OS en América Latina y España, y el rol que va a tomar la comunidad en las actividades de promoción. Es una época de cambio y novedades para Mozilla y sus comunidades, y tenemos que prepararnos para lo que viene.
Work Week 2013

Por mi parte, pude hacer una pequeña contribución al sitio de Mozilla Hispano, con una nueva página 404, inspirada (por no decir copiada) de su equivalente en MDN. (El sitio de Mozilla Hispano está en Github y hay mucho por hacer.) También dí una presentación sobre el proyecto Squeaky, una colaboración entre el equipo de complementos y el de soporte de Mozilla. Por último, me ofrecí para coordinar las actividades del blog de MH Labs, el cual ha tenido poca actividad y necesitamos revitalizar.

¿Veremos un evento así alguna vez en Costa Rica? Creo que sí. Costa Rica fue considerada para ser sede , pero finalmente se eligió Perú. Pienso que un factor que va a determinar si somos elegidos en el futuro será qué tantos colaboradores tengamos localmente, dado que hay mucho trabajo de logística que recae en la comunidad. Los compañeros de Perú hicieron un excelente trabajo, y espero que los ticos tengamos pronto la oportunidad de hacer lo mismo en nuestro país.

Corrección de localización es-ES en Firefox 19

jorge

0

La traducción de español de España (es-ES) del Firefox 19 tiene un pequeño error. El atajo de teclado para abrir la barra lateral de marcadores (bookmarks) debería ser Ctrl+B (Cmd+B en Mac OS), pero accidentalmente quedó como Ctrl+D. Ésto no solo confunde a aquellos que utilizaban el atajo anterior, sino que además causa un conflicto con el atajo que se utiliza para abrir el diálogo de crear y editar el marcador de la página actual.

Para corregir este problema, se le pidió ayuda a la lista de Mozilla Hispano Labs para crear un complemento que restaure el atajo a su valor correcto. El resultado está aquí: Restaurador de atajo de teclado para marcadores. El nombre está un tanto largo, pero no se pierde en ninguna parte :D .

El complemento solo funciona en Firefox 19. Firefox 20 y adelante tienen ya el atajo corregido. El simple código de este complemento está disponible en Github.

Firefox Crea Juegos Webs y Aplicaciones más Rápidas

Randall Valenciano

0

El nuevo compilador de Javascript en Firefox, IonMonkey, hace que las aplicaciones webs y los juegos se ejecuten hasta un 25% más rápido. Para ver una prueba de como corren en Firefox los juegos o las aplicaciones web, se puede visitar Banana Bread, un juego en 3D basado totalmente en web creado por la red de desarrolladores de Mozilla y creado exclusivamente usando HTML5, WebGL y Javascript.

Firefox también soporta Retina Display de alta resolución para usuarios de Mac, para hacer la experiencia en la Web mejore viendo películas, jugando o navegando en la red.

firefox18-retina-600x431

Firefox para Android también añade nuevas características respecto al phishing y al malware para proteger a los usuarios de sitios maliciosos. Firefox para Android notifica a los usuarios cuando encuentran sitios web que han sido utilizados para malware o phishing para proteger usuarios de sitios maliciosos.

(Traducción Original del artículo del blog oficial de Mozilla)

Reunión comunitaria de enero

jorge

0

Nos reunimos el miércoles pasado para hablar sobre la comunidad, su progreso y futuro. Interesantemente, a esta reunión no pudieron asistir dos de nuestros miembros más regulares, pero sí asistieron varias personas nuevas interesadas en el grupo, que es siempre algo bueno.

Reunión comunitaria enero 2013Gracias a los nuevos asistentes pudimos compartir varios temas nuevos y propuestas. Se mostró interés por hacer charlas técnicas en el TEC, y en la Universidad de Costa Rica, además de charlas de desarrollo de apps para Firefox OS, similar a como se hizo a nivel mundial en los Firefox OS App Days.

Hablamos bastante sobre la Red Costarricense de Software Libre, y cómo podemos conectarnos mejor con ella para promover eventos y enterarnos sobre lo que viene.

Otra idea muy interesante que se propuso es que hagamos reuniones con algún objetivo de desarrollo, como una mini-hackaton. Dado que tenemos muchos desarrolladores en nuestro grupo y seguidores, esta idea me parece excelente y creo que la vamos a aplicar muy pronto. Es posible que también agreguemos un componente remoto, como un Google Hangout, para permitir que otros se nos unan a las reuniones aunque no puedan asistir físicamente.

El próximo paso va a ser proponer algunos proyectos de desarrollo a nuestra lista de correo, para ver cuáles generan más interés, y así elegir el o los temas para la próxima reunión. Si quieren unirse a nuestra lista, solo tienen que escribir a admin arroba mozilla-costarica.org.

Nuestro próximo evento va a ser una pequeña charla en el BarCamp Costa Rica. Tendremos algunos regalos para los asistentes, así que no se la pierdan ;) .

Acerca de Java y el Banco Nacional

jorge

0

Recientemente se publicó un artículo en La Nación acerca de los problemas de seguridad que se han dado con el plugin de Java: Apague Java si usa Internet o podría ser presa de un hacker. El artículo brinda información muy importante, pero creo que hay algunos aspectos de esta situación que hacen falta aclarar.

El problema de seguridad son los applets de Java

Java es una tecnología muy amplia, que se puede utilizar para crear aplicaciones de servidor y de escritorio, entre otras. Una de esas “otras” son los applets, los cuales se pueden utilizar para mostrar contenido especial en una página web. Para hacer esto, los navegadores como el Firefox o el Google Chrome utilizan plugin de Java, de una manera similar que el plugin de Flash se utiliza para mostrar videos en sitios como YouTube.

Es importante reiterar que los applets son una parte muy pequeña de lo que es Java, y sin embargo son la principal razón de sus problemas de seguridad. Basta con visitar un sitio controlado por un hacker que tenga un applet de Java malicioso, y el hacker podrá obtener control total sobre el sistema del visitante. Es un peligro muy grande, especialmente considerando que Java está instalado en la mayoría de los sistemas.

También es importante resaltar que los applets ahora son una rareza en la web, y son contados los sitios que requieren tener el plugin de Java instalado. Desafortunadamente el sitio del Banco Nacional de Costa Rica es uno de ellos.

Java no es lo mismo que JavaScript

A pesar de sus similares nombres, Java y JavaScript son dos tecnologías completamente distintas.

Como mencioné anteriormente, la utilización de Java en la web es mínima. El JavaScript, por otro lado, está presente en prácticamente todas las páginas web. Debido a esto, desactivar el JavaScript en cualquier navegador hace que leer hasta la más simple de las páginas se convierta en una tarea muy difícil o incluso imposible.

El JavaScript no tiene los mismos problemas de seguridad que Java, así que es innecesario desactivarlo por completo.

Los usuarios de Firefox ya están protegidos contra la vulnerabilidad de Java

En Mozilla se toma la seguridad muy en serio. Al conocer sobre la vulnerabilidades en el plugin de Java, el equipo de seguridad de Mozilla reaccionó de inmediato y decidió desactivar el plugin de Java en las versiones modernas del Firefox. Ésto se hizo automáticamente, así que todos los que tengan el Firefox actualizado están protegidos.

La manera en que se desactiva es la siguiente. Si se visita un sitio que usa un applet de Java, como el del Banco Nacional, en vez del applet se muestra un mensaje que indica que el plugin no está activo. Esto es lo que aparece después de ingresar el número de cédula en sitio del BN:

Bloqueo de plugin de JavaComo se ve en la imagen, el applet no se ha ejecutado, y yo quedo en control si deseo tomar el riesgo o no. En el caso del Banco Nacional, no hay problema y se puede activar, siempre y cuando se haya ingresado al sitio escribiendo la dirección manualmente (https://www.bnonline.fi.cr), o utilizando un marcador. Recuerde nunca ingresar a un sitio bancario haciendo click en un vínculo de un correo electrónico o una página web.

¿Deberíamos remover Java completamente?

Si no utiliza Java para ninguna página web u otra aplicación, es lo más recomendable que sí.

Los que dependemos de sitios como el del Banco Nacional tendremos que mantenerlo habilitado. Ya que el Firefox protege a sus usuarios al no activar los applets automáticamente, lo único que hay que hacer para mantenerse protegido es solo activar applets cuando sea indispensable y mantener el Firefox actualizado.

El Banco Nacional utiliza applets de Java de una manera segura, con el fin de dar mayor seguridad a usuarios a la hora de ingresar al sitio. Aún así, debido a los problemas que tiene – y posiblemente seguirá teniendo – el plugin de Java, éste es un buen momento para que los encargados del sitio bancario busquen alternativas.

Próxima reunión de Mozilla Costa Rica

jorge

0

El próximo miércoles 23 de enero tendremos nuestra primera reunión del año. Esperamos poder hablar con nuestros nuevos miembros y hacer planes para el resto del año. Los temas a tocar incluyen los Firefox OS App Days, el BarCamp Costa Rica, y cualquier otro que contribuyan los asistentes.

La reunión está abierta para cualquier participante, y la tendremos a las 7pm en Quizno’s de Plaza Antares. Si tenés Facebook, el evento lo tenemos aquí: Reunión Comunitaria – Mozilla Costa Rica.

Te esperamos!

Herramientas de Desarrollo Web de Firefox

jorge

0

Como habíamos mencionado anteriormente aquí les tenemos el video de herramientas de desarrollo web de Firefox:

Les recomiendo verlo en modo de pantalla completa, o en una versión más grande disponible en YouTube.

El material de la presentación original está disponible aquí. Tiene varias referencias y temas adicionales que les puede interesar.

Espero que les sea útil!

Las dificultades de hacer un screencast

jorge

0

He estado trabajando en un screencast (video) que cubre los temas de la charla de herramientas de desarrollo web que dí hace unas semanas. Es la primera vez que hago algo así, y ha sido una experiencia interesante. Lo comparto para que otros aprendan de la experiencia que tuve.

Primero investigué que opciones tenía disponibles en Mac OS. Resultó que lo más sencillo era utilizar el QuickTime para grabar el video, y luego el iMovie para editarlo y agregar voz. Ambas herramientas hacen el trabajo bien, pero tienen limitaciones importantes.

El QuickTime no ofrece ayuda en cuanto a las dimensiones del área que se graba. Como podía escoger cualquier tamaño para el video, no supe cuáles eran las dimensiones apropiadas para hacerlo. Con la ayuda de la vista de diseño adaptable del Firefox, escogí unas dimensiones adecuadas para un video en proporción 4:3.

El iMovie es sencillo de usar y muy flexible, pero me tomó varias horas aprender a utilizar las distintas herramientas. También toma mucho tiempo importar los clips, y luego generar el video final. Las opciones para exportar el video son confusas, y requiere bastante experimentación encontrar el formato adecuado para exportar.

Otras recomendaciones que puedo dar basadas en mi experiencia son las siguientes:

  • Planear el video desde un principio para una proporción de alta definición 16:9. La opciones de exportación del iMovie (y seguramente otras aplicaciones) solo permiten videos grandes que utilicen esa proporción.
  • Ponerle especial atención al texto de la interfaz gráfica. El texto es el que más pierde calidad en la conversión, así que hay que verificar que sea legible en el producto final.
  • Evitar iterar mucho sobre el producto final. En mi caso, iterar sobre el video ha tomado días. Una nueva versión requiere modificar el video (minutos), exportarlo de nuevo (~1 hora), subirlo a un lugar para compartirlo (~1 hora), y luego esperar para escuchar las opiniones de otros.
  • Escribir un guión para la voz, y grabar el video utilizando el ritmo de la voz. Cometí el error de grabar el video sin pensar mucho en la voz, y en varias partes el video es lento y tuve que hablar muy pausadamente. A la hora de grabar la voz, tener el guión es indispensable.

El video está casi listo. Espero que lo publiquemos la próxima semana. La experiencia de grabarlo ha sido complicada, pero buena, y he aprendido mucho al respecto. Creo que el video final salió bastante bien, y creo que es un buena guía para los desarrolladores web.

Tenemos sitio web!

jorge

0

Al fin, luego de una espera larga, tenemos nuestro propio dominio, mozilla-costarica.org! La razón por la que esto tomó tanto tiempo es que Mozilla tiene un proceso propio para crear sus dominios comunitarios, que evita gastos para la comunidad y además asegura que el dominio es controlado por la comunidad y no algún individuo en particular.

mozilla-costarica.orgEn este sitio tendremos ante todo nuestro blog, que seguirá siendo publicado también en Mozilla Hispano para asegurar toda la cobertura posible. También vamos a agregar algunas páginas que explican cómo involucrarse en nuestra comunidad en detalle.

Ésta es la versión corta:

  • Mozilla Costa Rica es parte de la comunidad Mozilla Hispano, la cual coordina todo el trabajo comunitario en América Latina y España.
  • Para colaborar con Mozilla Hispano y Mozilla Costa Rica, la página de Colabora es el mejor lugar para empezar.
  • Tenemos una lista de correos para colaboradores de Mozilla Costa Rica. Si quieren ser parte de esta lista, envíen un correo a admin arroba mozilla-costarica.org.
  • Cualquier duda igual se puede aclarar en admin arroba mozilla-costarica.org.

Igualmente nos pueden seguir o contactar a través de nuestro Facebook o Twitter.

Nuestro próximo evento es la charla de Herramientas de Desarrollo Web de Firefox, mañana lunes 22 de octubre a las 7pm en Torre Mercedes. Tenemos varios planes para la comunidad, para los cuales esperamos contar con la ayuda de todos. Si quieren ayudarnos, o quieren nuestra ayuda, ya saben dónde buscarnos :)