Taller de Firefox OS en Panamá

jorge

0

Me invitaron a dar una charla de desarrollo para apps en Firefox OS este fin de semana, en Ciudad de Panamá. El evento fue organizado por CascoStation, un coworking ubicado en un área muy interesante de la ciudad. Harold de CascoStation hizo un trabajo excepcional para asegurarse que todo saliera bien y todos estuviéramos muy cómodos.

El taller fue similar a los que he dado en el pasado, con algunas mejoras gracias a las lecciones aprendidas. La charla introductoria se puede encontrar aquí: Introducción a Firefox OS. Algunas de las páginas no tienen mucho sentido sin la charla, pero los vínculos son útiles para empezar a trabajar con Firefox OS.

La asistencia fue buena, alrededor de 20 personas. Lo más importante es que la mayoría tuvo suficiente interés para jugar un rato con Firefox OS durante el taller. Tomamos una foto grupal, pero ya varios se habían ido.

Foto de grupo al finalTambién nos hicieron una nota en El Espectador de Panamá, donde se puede apreciar un poco el ambiente del taller.

Una sorpresa muy grata es que en CascoStation trabaja un artista 3D muy habilidoso, que además aplica sus talentos para crear impresiones 3D con un nivel de detalle espectacular. Él nos creó una figura de Firefox OS que no podría haber quedado mejor.

Modelo muñeco Firefox OS Muñeco Firefox OSEspero que podamos ver más de estos en el futuro :).

Por último, pude conocer a algunos de los miembros de la nueva comunidad de Mozilla Panamá (y en Facebook). Pudimos hablar sobre los lanzamientos en América Central y los retos que tenemos adelante. Esperamos tener noticias de Costa Rica muy pronto.

La experiencia estuvo excelente, y esperamos ver de nuevo a nuestros amigos panameños en unas semanas para el Encuentro Centroamericano de Software Libre 2014.

Progreso del blog de Labs

jorge

0

Como he mencionado anteriormente, Mozilla Costa Rica es solamente una representación local de Mozilla Hispano, y por extensión de la comunidad global de Mozilla. Por medio de Mozilla Hispano podemos compartir experiencias y material sin tener que lidiar con la barrera del idioma, lo cual es una gran ventaja para todos.

Mi principal rol en Mozilla Hispano el último año ha sido el de editar el blog de Labs. Este es un blog donde se publican artículos sobre proyectos de Mozilla Hispano Labs, traducciones de artículos técnicos interesantes (particularmente del blog de Mozilla Hacks), y cualquier tema técnico que tenga que ver con Mozilla o su misión.

La revitalización del proyecto se inició en el Mozilla Hispano Work Week 2013, y este año volví a participar en la actividad, esta vez reportando sobre su avance.

Artículos publicadosEscribí un artículo en el blog de Labs al respecto: Progreso del blog de Labs. Les recomiendo que lo lean, para que vean el impacto que puede tener un poco de trabajo de voluntario. Espero que más ticos nos puedan ayudar con este tipo de trabajo para seguir llevando Mozilla adelante, especialmente para personas que no saben inglés y realmente necesitan estos recursos. ¡Hay muchas maneras de colaborar, y no duden en preguntarnos!

Nuevo taller de Firefox OS y entrevista con 4Geeks

jorge

4

¡Tenemos un taller más de Firefox OS para este año!

Apps

Aprendé a crear apps para el Firefox OS, el nuevo sistema operativo para dispositivos móviles. En este taller vamos a crear apps abiertas utilizando tecnologías web. Al final del taller podrás mostrar lo que hiciste.

Fecha y hora: Jueves 5 de diciembre, 6pm a 9:00pm.

Lugar: Auditorio de la Universidad Latina, San Pedro.

La asistencia está abierta para todas y todos, y es gratuita. El único requisito es tener un conocimiento básico de desarrollo web (HTML, JavaScript y CSS). Podés confirmar tu asistencia en Meetup o en Facebook.

Siguiendo con el tema de Firefox OS, hace un poco más de una semana conversé con los compañeros del GeekHour de 4Geeks, quienes están formando una comunidad de desarrolladores (por si están interesados en colaborar). Podés ver el video en la página del GeekHour o directamente en YouTube.

Coordinación del blog de Mozilla Hispano Labs

jorge

0

Todos los voluntarios de Mozilla que hablamos español debemos cumplir dos roles: uno con nuestra comunidad local, y otro con Mozilla Hispano. Mozilla Hispano es una comunidad de comunidades, que nos permite compartir muchísimo conocimiento y experiencia en nuestra primera lengua, lo cual es bastante único en la comunidad Mozilla.

Mientras colaboro con eventos locales como los próximos talleres de extensiones y apps en Costa Rica, por otro lado participo en Mozilla Hispano de diversas maneras.

Este año me ofrecí para ayudar con el blog de Mozilla Hispano Labs, un canal que yo considero muy importante para comunicarnos con los desarrolladores y obtener su colaboración. La idea del blog es publicar regularmente material técnico, traducido y original, que tenga que ver con proyectos de Mozilla y la web abierta en general.

mh-labsTomó tiempo, pero ahora el blog tiene muy buen ritmo de publicaciones. Hasta hace poco estábamos publicando más o menos un artículo por semana, y este mes parece que vamos a tener el doble. Tenemos tres redactores regulares, y ahora hay varios que están empezando y podrían convertirse en regulares.

Por el momento la mayoría de los artículos son traducciones, y el proceso que seguimos es el siguiente:

  1. Se identifica un artículo en inglés que se considere bueno para el blog. De vez en cuando voy al sitio de Mozilla Hacks (altamente recomendado) y escojo los mejores artículos recientes. A veces también aparecen artículos buenos de otras fuentes.
  2. Se crea una tarea de traducción del artículo en el Teambox. Esta es una herramienta interna para darle seguimiento a las tareas. Cualquiera que desee colaborar solo tiene que escribir a la lista de correo para pedir acceso.
  3. Algún colaborador escoge la tarea entre las opciones disponibles y se la asigna.
  4. La traducción se entrega, normalmente usando un Google Doc con la traducción. A los redactores que ya han hecho aportes se les da acceso al WordPress de Mozilla Hispano para que puedan hacer un borrador y ponerlo como pendiente de revisión.
  5. La traducción se revisa (eso normalmente lo hago yo), se le corrigen asuntos cosméticos como imágenes y formatos, y se publica.

Este rol me ha servido mucho porque me mantiene enfocado, dado que siempre hay artículos por revisar, pero al mismo tiempo no requiere mucho tiempo (revisar y publicar un artículo toma alrededor de una hora).

El mayor reto que me he encontrado es tener una alta diversidad de artículos. Hubo un momento donde casi todos estaban dedicados al desarrollo de apps para Firefox OS. No es que sea algo malo, dado que es algo muy nuevo y popular, pero creo que es necesario apuntarle a distintos intereses. También ha sido complicado obtener material original. La mayoría de la gente que se dedica a desarrollar no tiene mucho tiempo para escribir sobre lo que hacen, lo cual es lamentable (me incluyo en la lista). Voy a tratar de hacer más aportes propios; eso tal vez inspire a otros a seguir el ejemplo.

Volviendo a lo local, también ha sido difícil conseguir gente en Costa Rica que quiera colaborar con la comunidad, en cualquier capacidad. Si hay algún interesado en contribuir con el blog de Mozilla Hispano Labs, les recuerdo que solo hay que escribir a la lista de correo, pero también me pueden contactar dejando un comentario aquí, o por Facebook o Twitter.

Próximos eventos: Talleres de desarrollo de apps y de extensiones

jorge

2

Con la ayuda de Roberto Arias de la Universidad Católica, quien ha colaborado con nosotros anteriormente, estamos organizando dos talleres de desarrollo que estamos seguros a muchos les va a interesar. ¡Esperamos que nos puedan acompañar!

Taller de desarrollo de extensiones para Firefox

ComplementosAprendé a crear extensiones para Firefox de manera rápida y sencilla. En este taller vamos a crear extensiones utilizando tecnologías conocidas como XML, JavaScript y CSS.

Al final del taller podrás mostrar lo que hiciste. Premiaremos los mejores demos.

Fecha y hora: Sábado 26 de octubre, 8am a 11:30am.

Lugar: Universidad Católica, Moravia.

La asistencia está abierta para todos y todas, y es gratuita. Sin embargo, el cupo es limitado y es necesario confirmar en esta página. El único requisito es tener un conocimiento básico de desarrollo web (HTML, JavaScript y CSS).

Taller de desarrollo de apps para Firefox OS

AppsAprendé a crear apps para el Firefox OS, el nuevo sistema operativo para dispositivos móviles. En este taller vamos a crear apps abiertas utilizando tecnologías web.

Al final del taller podrás mostrar lo que hiciste. Premiaremos los mejores demos.

Fecha y hora: Sábado 2 de noviembre, 8am a 11:30am.

Lugar: Universidad Católica, Moravia.

La asistencia está abierta para todos y todas, y es gratuita. Sin embargo, el cupo es limitado y es necesario confirmar en esta página. El único requisito es tener un conocimiento básico de desarrollo web (HTML, JavaScript y CSS).

Un vistazo al Firefox OS y ZTE Open

jorge

3

Roberto Arias, miembro de la comunidad, adquirió uno de los dispositivos ZTE con Firefox OS disponibles por eBay, y escribió un review del dispositivo y el sistema operativo. Lo reproducimos aquí con su permiso.

Tengo poco mas de una semana de estar probando un ZTE Open, esos que se vendieron en eBay por $80 hace unos días. Este viene con la versión 1.0.1 de Firefox OS.

Caja del ZTE OpenPara los que no sepan Firefox OS es un sistema operativo para móviles que quiere hacerle competencia a Android, iOS y Windows Phone.  A diferencia de éstos, Firefox OS está basado en tecnología HTML5, CSS3 y JavaScript. Esto me recuerda mucho a Web OS para mí el mejor OS móvil en su momento, pero que HP mató por el mal manejo que dio al tema, aunque eso es punto y aparte.

El uso de estas tecnologías va a facilitar por un lado la creación de apps. Firefox OS está basado en Gecko, motor de renderizado de Firefox, y trabaja con el mismo kernel linux que usa Android.

Durante este tiempo usando el Firefox OS he leído muchos blogs, algunos hablando que este nuevo OS para móviles es la ultima chupada del mango, así como otros que afirman que Firefox OS no tiene futuro y por tanto no vale la pena ni pensar en el como una opción. En mi opinión ninguna de las dos posturas tiene razón.

De primera entrada el teléfono sorprende porque es bastante rápido (1 núcleo a 1Ghz) para iniciar y cargar la pantalla inicial, el manejo del teléfono recuerda un poco al iPhone porque tiene todas sus apps en la pantalla y solo tiene un botón. Antes de la pantalla de apps, tiene 2 más: una para búsquedas y la otra para la hora, el dock de aplicaciones soporta varias, así que no es como el iphone y Android que puedes poner solo 4.

Caja ZTE Open, abiertaRealmente tener el teléfono trabajando con tus contactos, calendario y mail toma muy pocos minutos. Para los contactos, como yo los tenía en Gmail, necesité una app que se puede encontrar en el marketplace llamada “Importer”, por defecto importa del sim o de facebook. Con la del calendario tuve algo de problemas porque parece que no se lleva con la doble autenticación de Google.

El teléfono es bastante fluido aunque a veces la pantalla no responde muy bien al toque, especialmente en el teclado, y para desbloquearlo solo se puede usar el botón de encendido y esto por lo menos en mi caso a sido algo difícil de acostumbrar, ¿para qué tiene un botón home y de sonido?

Me sorprendió ver que se puede compartir Internet con un hotspot que trae integrado, aunque navegar en un campo de texto es algo que todavía no se puede hacer muy bien, incluso no hay copy/paste.

Sobre el tema de notificaciones si estás acostumbrado a que tu móvil te avise cuando un mail nuevo llegó, en Firefox OS esta opción aun no esta activa, y creo que ninguna app por el momento la tiene fuera de las llamadas y los SMS.

Trae una aplicación para controlar el uso de Internet que me gustó mucho.

Contenidos caja ZTE OpenAlgo que sí me extrañó bastante es la falta de Firefox Sync, para importar los marcadores y el poder agregar navegadores a Firefox Sync. Creo que Mozilla debe  trabajar rápido con esto ya que es el medio perfecto para tener nuestros datos en la nube, incluso esperaría que Persona y  Firefox Sync se unieran en una sola cuenta, para poder tener un software de sincronización tipo AirDroid desde cualquier navegador Firefox, pero bueno ya eso es pedir mucho.

Firefox OS esta muy tierno, por lo cual le faltan muchas cosas, incluso creo que Mozilla debe trabajar mas en las APIs que tiene para ellas ya que HTML5 no está maduro aun y le faltan sus años para ser el estándar que todos esperamos (hasta finales del 2014 sera una recomendación por W3C), por lo mismo que esta muy tierno no se puede puede decir que tenga o no futuro, claro si lo comparas con Android o iOS está muy quedado.

Pero un OS para móviles no se puede juzgar tan temprano y menos compararlo con algunos tan desarrollados,  Mozilla tiene planeado lanzar updates cada 3 meses, con lo que esperamos que pronto lo ponga a punto.

En mi caso particular creo que si vale la pena un teléfono Firefox, especialmente para aquellos que tienen poco presupuesto.

Para más reviews de hardware interesante, podés visitar el blog de Roberto en betto.me.

Día de la Libertad del Software 2013

jorge

0

Para celebrar el Día de la Libertad del Software estamos hoy en la Sede Interuniversitaria de Alajuela. El evento fue organizado por la Red Costarricense de Software Libre.

Acabamos de salir del taller de Desarrollo de Apps para Firefox OS, el cual tuvo excelente asistencia (se llenó, alrededor de 20 participantes). Debido a la buena respuesta, vamos a dar un taller adicional a las 4pm. Obsequiaremos una camiseta de Firefox OS al que nos muestre la mejor aplicación al final del taller.

Logo Firefox OSEl taller consiste en un vistazo rápido del Simulador de Firefox OS y una aplicación sencilla de cronómetro. No hay presentación, sino una simple guía donde tenemos un resumen de cómo crear aplicaciones, y vínculos a ejemplos y referencias. Luego dejamos a los estudiantes para que apliquen su creatividad a la aplicación ejemplo, o hagan una propia.

Taller Firefox OSEstán todos invitados al taller en la tarde. Sino esperamos organizar más actividades en lo que queda del año. Estén pendientes de nuestros anuncios en las redes sociales.

Cómo hacer una extensión para Android en 4 pasos

jorge

0

Como muchos ya saben, Mozilla tiene en este momento una competencia de desarrollo de complementos llamada Amp Your Firefox. Los que trabajamos en el equipo de complementos estamos muy emocionados con la competencia, y hay varias categorías en las que se puede competir. Sin embargo, estamos especialmente interesados en las categorías de extensiones para móvil. Queremos aumentar nuestra colección de complementos para Android, para que los usuarios de Android puedan disfrutar de lleno la experiencia completa de personalización que es Firefox.

He estado trabajando en hacer que varios de mis complementos sean compatibles con Android (claro, no puedo competir porque soy un empleado, además de juez de la competencia). Así que quería dar un vistazo general sobre lo fácil que es convertir un complemento o crear uno nuevo con soporte para Android, desde la perspectiva de alguien que ya ha trabajado en complementos para Firefox de escritorio.

  1. Agregar soporte para Android en el manifest. Esto significa agregar soporte para <em:id>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</em:id> en la lista de aplicaciones, y agregar <em:bootstrap>true</em:bootstrap> para que no requiera un reinicio.
  2. Montar el script bootstrap.js. Este script reemplaza la mayoría de lo que hace el overlay en una extensión convencional. Es responsable de crear y luego limpiar cualquier elemento que la interfaz que agregue la extensión, además de ejecutar cualquier código de inicio que sea necesario. El chrome.manifest se carga normalmente, así que todo el XUL, CSS y archivos de localización adicionales se pueden utilizar. Es importante tener en mente que la interfaz en Android está limitada al área de contenido web (por el momento), pero igual se pueden cargar archivos XUL usando URLs chrome o about. El XPCOM y JS Modules funcionan igual que siempre.
  3. Montar el script bootstrap.js, pero esta vez en serio. En la mayoría de los casos se va a querer que el mismo complemento funcione en Android y también en el escritorio, así que el bootstrap debe saber manejar bien múltiples ventanas y limpiar cualquier cambio que haga inicialmente. Mossop escribió un muy buen artículo con ejemplos que se pueden reutilizar para asegurarse que están cubiertos los casos de instalación, desinstalación, apertura y cierre de ventanas.
  4. ¡Leer la documentación! ¿Debería ser el primer paso? … tal vez, yo qué sé. Todo se puede encontrar aquí: Extensions for Android. De especial interés es el objeto NativeWindow, para los aspectos de la interfaz que son específicos para Android, y el objeto BrowserApp, que es una especie de reemplazo del objeto gBrowser / el elemento <tabbrowser>.

Me sorprendió lo sencillo que fue crear complementos para Android, y portar algunos de los que ya había creado. Los complementos de tipo userscript funcionan muy bien porque en general no requieren interfaz gráfica fuera del área de contenido, así que portar mi AMO Admin Assistant fue prácticamente trivial. Extensiones con una interfaz más compleja, como Remote XUL Manager y Click-to-Play Manager requirieron un poco más de pensamiento. Ambas abren una ventana XUL, que terminé convirtiendo en una página about para la versión móvil. También creé el Mobile Installer exclusivamente para Android, que fue una muestra que hice para una presentación, pero utiliza un poco de los APIs específicos para Android que ofre el NativeWindow. Es también una herramienta útil para instalar más fácilmente los archivos de complemento una vez que se copian al dispositivo.

Todos los vínculos del párrafo anterior apuntan a Github, en caso que les interese ver el código y reutilizar algo para sus propios complementos. Espero que esto los motive darle una oportunidad a los complementos para Android, y que tomen el reto de Amp Your Firefox. Solo necesitan inscribirse en la competencia y recibir aprobación del complemento en AMO para ganar una genial camiseta, así que no sé qué tanta motivación adicional se necesita ;).

Nueva página de colaboración

jorge

0

Puede ser difícil saber dónde empezar a la hora de colaborar con una comunidad, así que tratamos de hacerlo un poco más sencillo con la nueva página de Cómo Colaborar (formulario cortesía de Mozilla Hispano). Hay un vínculo permanente en la columna lateral de esta página, que esperemos sea suficiente para atraer más contribuciones ticas a los esfuerzos de Mozilla.

Les agradecemos a todos que le den un vistazo y llenen el formulario o nos envíen un correo si están interesados.

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).