Archive | diciembre 2012

¿How the Mozilla communities could get closer to web developers? Answer 2

In this third post (the previous one and the other one) I will explain another idea in order to have presence between web developers. The idea is simple: to give information that is worth to know, and I don’t refer to source code.

An ‘experiment’ in Mozilla Peru was to design a Survey about the situation of the web developers in Peru. The idea was inspired by global surveys applied (for example the Eclipse survey among their community). With a set of questions we wanted to know the conditions and knowledge who have the web developers in our country.

The survey was developed with 20 questions: some about personal information or employment, and others about technical knowledge in specific technologies. We tried to balance in order to be not so extensive (we don’t want to bore the intended public) and whose results allow to deduct relevant and useful information.

The 2011 edition was applied between February and March. The announcement was made in Peruvian’s mailing lists of computing and programming languages, We received 219 answers and the results (as raw data and displayed in graphs) were published in our web (in Spanish.)

We planed to reapply the survey the next year, but before that we reviewed the questions and we made some adjustments, like add options -Choose- in order to prevent unattended answers, and we add some new technologies which appeared the last year.

The 2012 edition was applied again in the first quarter of the year but we need to extend the availability because we didn’t have enough answers compared to the first time. Finally we closed with 230 answers and again we processed the answers and we publish the results.

The advantage this time was we can compare some numbers and try to see some trends in salary, ways of work and knowledge of frameworks and languages. Also it was made a presentation with results summarized, with the purpose of make easier the reading and it was spread virally outside the community.

For more details about the survey, I will add the questions as the first comment in this post.

¿How the Mozilla communities could get closer to web developers? Answer 1

In reply to the previous post, the obvious answer is to try to stay where the web developers are: around communities or events where they gather (and it’s probably I share some thoughts about this later). But there is a different answer: organize events for web developers who are not only Mozilla’s fans.

In Mozilla Peru, since 2011, we started to join the organization of Barcamp Lima. A barcamp is an ‘unconference‘ where the topics and speakers are unknow until the same day of the event, and where is expected that the attendants participate actively by showing topics of any level. Barcamp Lima existed since years ago, and in fact the first three editions (between 2008 and 2010) were organized by enthusiast people without a ‘common’ community, just friendship. Even though, the event couldn’t be organized actively by these people and because of that Mozilla Peru decided to involve in the event.

In August 2011 take place Barcamp Lima 4 with the support of some friends from the city. Even though that was our first time involved directly in the event, I think it was a good start. We gather some people who participated in the other editions and even one of them offered a short videoconference.

In April 2012 it was organized Barcamp Lima 5, and in that occasion the main topic was signed from the beginning: WebMarkers: Architects of the Web (at that time was inspired by WebMarkers but was not related to), and we noted that the presentations should be related with web technologies, although it was allowed less technical topics.

Website: Barcamp Lima (currently offline)

Website: Barcamp Lima (currently offline)

After the event we were thinking some ideas for the next time, with the purpose of have more speakers (better if they didn’t spoke before) and more attendants (that don’t be afraid to assist to an event where they need to show something).

Open development for mobile: ¿Is Android SDK the only option?

This is a traslated version of an article written in Spanish.

The computing trend which will define the next years is the massification of the use of mobile devices: not only for geeks, but our parents, brothers and non-technical people. In this way, if we decided to build our first mobile application the first thing to do is choose a platform and a set of tools which help us to develop our application. Although the platform apparently condition the tools to use, there is multiple ways we explore in this article.

Native development and  Android SDK

The obvious answer when we think about development of mobile application is the native development: pointing to build an application exclusively for an operating system. In the case of programmers with preference for Open Source technologies, the obvious option will be to create an application for Android, and that guide us to Android SDK.

Android SDK is composed by a set of libraries and development tools: debugging, testing, documentation, system images, emulators, source code, Google APIs and other utilities. You can get every module of the SDK one by one or together in a pack: the ADT Bundle, that includes Eclipse IDE and a ADT plugin as integrated development environment. A good starting point is https://developer.android.com/sdk/index.html.

Aplicación Descubre PUCP

IMAGE: App ‘Descubre PUCP’. It was a Peruvian application with features of augmented reality for the visitors of the Campus PUCP (a university in Lima, Peru). Source: Google Play.

Multi-platform development: the bet of PhoneGap

But, ¿why limit us to build just for Android when is possible to reach to more users? At last, Android is not the only mobile platform today. It’s here where come up the multiplatform mobile development: build an application once, generate apps for many platforms. There are some tools that help us in this direction, the most popular is PhoneGap.

The outset is very simple: you build a mobile web application using HTML, CSS and JavaScript. Then, with PhoneGap and the SDK of every target platform you can create applications for specific platforms. In case you require access to native components in a device, PhoneGap provides a JavaScript API that you can interact with components like camera, accelerometer, GPS, etc.

Something you need to know is that PhoneGap now is a ‘distribution’ of Apache Cordova. This project incubated in Apache Foundation came up from the base code of PhoneGap, free of ambigue de ambiguities of trademarks. Nowadays there is no difference between  PhoneGap y Cordova, but if in any moment Adobe (the owner of PhoneGap) decides to include proprietary extensions, the base in Cordova will be still open.

IMAGE: UPC, app for students of the Universidad Peruana de Ciencias Aplicadas (a Peruvian university).  The app is available in four mobile platforms. Source: Google Play.

Not all is white and black: a third alternative

These two options, the native development and the multiplatform development have the objective of create applications for specific platformss: Android, iOS, or whatever you want. But there is a third way: the web development of always, just updated for smartphones and tablets.

¿Why we would consider to build web applications? There is many reasons: the users of mobile operating systems are used to surt the Internet with their browsers (specially the users of iOS), the web developers will use technologies that they already know and the current browsers include by default in mobile operating systems have good support of modern web technologies. About the last point you could know more at http://mobilehtml5.org/.

¿How you could start in the mobile web development? Even though you can use classic libraries for web interfaces like jQuery and Dojo, a more specific tool (and also useful) is jQuery Mobile. It is designed to bring a closer user experience in many mobile devices and allows the developer to accelerate the development of interfaces, focusing the efforts in the application’s logic.

IMAGE: Británico Web Móvil, site of a Peruvian institute specialized in the teaching of English as a second language. The website was built with jQuery Mobile. Source: Screenshot in Firefox Aurora.

In conclusion, there is at least three ways of building a mobile app: native development, multiplatform development and mobile web development. Personally, I will choose a mobile web application, but even if you want to build an app for Android, you can choose an intermediate point: a mobile web app, built rapidly with jQuery Mobile and packed with PhoneGap.

Desarrollo abierto para móviles: ¿Android SDK es la única opción?

Este es un artículo escrito para la revista eGNUX 4, donde además se publicó un artículo de introducción a jQuery Mobile.

La tendencia informática que marcará los próximos años es la masificación del uso de dispositivos móviles: no sólo para geeks, sino para nuestros padres, hermanos y el público en general. Siendo así, si decidimos construir nuestra primera aplicación móvil lo primero será seleccionar una plataforma y un conjunto de herramientas con las cuales desarrollaremos nuestra aplicación. Aunque la plataforma aparentemente condiciona las herramientas a usar, hay múltiples caminos que exploraremos en este artículo.

Desarrollo nativo y el caso de Android SDK

La primera respuesta que se nos viene a la mente al pensar en desarrollo de aplicaciones para móviles es el desarrollo nativo: apuntar a construir una aplicación exclusivamente para un sistema operativo. En el caso de programadores con predilección por tecnologías Open Source, la opción obvia será crear una aplicación para Android, y eso nos llevará a usar el Android SDK.

Android SDK está compuesto por una serie de librerías y herramientas de desarrollo: depuración, pruebas, documentación, imágenes del sistema, emuladores, código fuente, APIs para integración con servicios de Google y otras utilidades. Puedes conseguir cada uno de los módulos del SDK por separado o en un pack, el ADT Bundle, que incluye Eclipse IDE y un ADT plugin como entorno integrado de desarrollo. Un buen punto de inicio es https://developer.android.com/sdk/index.html.

Aplicación Descubre PUCP

IMAGEN: Aplicación Descubre PUCP, desarrollada para Android y que ofrece características de realidad aumentada para los visitantes del Campus PUCP. Fuente: Google Play.

Desarrollo multiplataforma: la apuesta de PhoneGap

Pero, ¿porqué limitarnos a construir sólo para Android cuando es posible llegar a más usuarios? A fin de cuentas, Android no es la única plataforma hoy en día. Es allí donde entra en juego el desarrollo móvil multiplataforma: construir una sola vez, generar aplicaciones para varias plataformas. Aunque hay múltiples herramientas que nos ayudan en este propósito, la más popular de ellas es PhoneGap.

El principio de PhoneGap es muy simple: construyes una aplicación web móvil usando tecnologías HTML, CSS y JavaScript. Luego, con ayuda de PhoneGap y los SDK de cada plataforma que desees puedes generar aplicaciones para plataformas específicas. En caso requieras acceso a componentes nativos de un dispositivo, PhoneGap proporciona una API en JavaScript con la cual es posible interactuar con componentes como la cámara, acelerómetro, geolocalización, etcétera.

Algo que debes saber es que PhoneGap ahora es una ‘distribución’ de Apache Cordova. Éste proyecto incubado en la Apache Foundation nació con el código base de PhoneGap, liberado de ambigüedades de marcas registradas. Actualmente no hay diferencias entre PhoneGap y Cordova, pero si en algún momento Adobe (actual dueña de PhoneGap) decidiese incluir extensiones propietarias, la base en Cordova seguirá abierta.

IMAGEN: UPC, aplicación para los estudiantes de la Universidad Peruana de Ciencias Aplicadas, y que está disponible en cuatro plataformas móviles. Fuente: Google Play.

IMAGEN: UPC, aplicación para los estudiantes de la Universidad Peruana de Ciencias Aplicadas, y que está disponible en cuatro plataformas móviles. Fuente: Google Play.

No todo es blanco y negro: una tercera alternativa

Estas dos opciones: el desarrollo nativo y el desarrollo multiplataforma tienen por objeto generar aplicaciones para plataformas específicas: Android, iOS, o la que prefieras. Pero hay un tercera vía: el desarrollo web de siempre, sólo que actualizado para smartphones y tablets.

¿Porqué construir aplicaciones web? Hay varias razones: los usuarios de sistemas operativos móviles están familiarizados con el uso cotidiano de sus navegadores (especialmente los de iOS), los desarrolladores web utilizarían tecnologías con las cuales ya están familiarizados, y los navegadores incluidos por defecto en los sistemas operativos móviles actuales tienen buen soporte de tecnologías web modernas. Sobre el último punto puedes revisar más al respecto en http://mobilehtml5.org/.

¿Cómo empezar en el desarrollo web móvil? Aunque puedes usar librerías clásicas de interfaces web como jQuery y Dojo, una herramienta más específica y útil es jQuery Mobile. Está diseñada para brindar una experiencia de usuario similar en distintos móviles, y permite al desarrollador agilizar el desarrollo de interfaces, con lo cual puede centrar su atención en la lógica de la aplicación.

IMAGEN: Británico Web Móvil, sitio de una institución peruana de enseñanza del idioma inglés, construida con jQuery Mobile. Fuente: Captura generada en Firefox Aurora.

IMAGEN: Británico Web Móvil, sitio de una institución peruana de enseñanza del idioma inglés, construida con jQuery Mobile. Fuente: Captura generada en Firefox Aurora.

En conclusión, hay al menos tres formas de construir una aplicación móvil: desarrollo nativo, desarrollo multiplataforma y desarrollo web móvil. Personalmente elegiría una aplicación web móvil, pero aún cuando desees crear una aplicación específica para Android puedes optar por un punto intermedio: una aplicación web móvil, construída rápidamente con jQuery Mobile y empaquetada con PhoneGap.

Mumble y Mumblr: Voz sobre IP para trabajo en equipo

Continuando con el artículo anterior sobre Etherpad, en esta ocasión me referiré a otra herramienta de apoyo a equipos distribuidos y que empezó con un propósito mas bien trivial.

Mumble es parte de un proyecto para facilitar conversaciones de audio entre personas conectadas a una misma sala en un servidor . El programa que instalan los usuarios recibe el nombre de Mumble, pero para ser utilizado depende de un servidor remoto denominado Mumblr (o mumble-server).

Captura de pantalla de Mumble
Captura de pantalla de Mumble

Una ventaja crucial

La principal ventaja de esta aplicación es que han sido optimizados para consumir poco ancho de banda. Esto se consigue con una configuración especial de cada usuario para que determine el rango de sonidos que transmitirá y el ruido que deberá eliminarse.

Una vez configurado Mumble, permite conectarse a cualquier servidor Mumblr. En algunos casos necesitarás una clave de acceso (que deberá ser proporcionada por el administrador del servicio). Una vez que te conectes a una sala podrás conversar con los demás vía audio, crear nuevas salas e inclusive grabar la conversación para una revisión posterior.

¿Para que me puede servir?

  • Mumble comenzó siendo usado por equipos en juegos multiusuario, para coordinar sus acciones en los juegos.
  • En la misma línea, Mumble se puede usar para coordinar reuniones de equipos distribuídos en varias partes del globo, en lugar de esperar tenerlos a todos en un mismo salón.
  • Otro uso posible es enseñanza: un profesor puede hablarle a sus alumnos vía una asesoría en Mumble en lugar de tener que tipear todo lo que diría en una sesión de chat.

¿Cómo lo pruebo?

Existen algunos proveedores gratuitos y de pago de servidores Mumblr. También puedes descargar Mumblr para desplegar tu propio servidor.