Playing well with others

web, english

My previous post about WhatsApp Web Client generated a lot of feedback and polarizing opinions. From all the comments I’ve received since then there was a point of view expressed by a minority that worried me a lot: some people seem to believe that releasing something only for Google Chrome is the correct thing to do and that is one of the topics I plan to address with this post.

Many who were not web designers or web heavy users during the 90s don’t recall the horrible experiences that were common back them. Stuff such as designed for Internet Explorer and best viewed in 800x600 in Internet Explorer, on a Sunday, in the northern hemisphere, while closing one eye and wearing a funny hat (well this last one was not that common).

Lots of websites back then were designed exclusively for a single browser and made use of non-standard technologies such as ActiveX and others. It was like the wild west but with cities not communicating with one another.

It was not until Mozilla decided to fight monoculture that standards started gaining more importance but thats another tale. The tale today is about monocultures and the horrors that spawn from it.

WhatsApp doesn’t understand the web

web, english

Today WhatsApp launched their web client in a way that is sure to upset and disappoint a lot of people. WhatsApp is a very popular instant message solution competing on the same market as LINE, Telegram and others. Here in Brazil WhatsApp is basically ubiquitous since its cheaper to send IM messages than to send SMS.

Unfortunately while other companies embrace the web and third party clients such as Telegram which has a list of official and unofficial clients and a public API, WhatsApp is actively waging war against third-party developers and their users. Last year they issued DMCA takedowns to all popular Github repositories hosting third-party clients and/or libraries interfacing with their API.

WhatsApp provides clients for many platforms but not for all platforms. Users of webOS, Firefox OS, Maemo, Sailfish, Ubuntu Touch had to use third-party libraries and also users of other platforms where there is an official client preferred using a third-party client because of many reasons.

After the takedowns, WhatsApp started banning users that connected to their network using third-party client, a move so evil that deserves a post in its own and the reason I stopped using their service. Since the takedowns and the banishments people waited for the release of a web client that would enable other platforms to use their service thru the beautiful of the world wide web.

Well, they finally launched their web offerring but its such a poor offerring that one wonders if anyone at WhatsApp actually understand the power behind the web. Lets analyse some parts of their launch post from their company blog:

To connect your web browser to your WhatsApp client, simply open https://web.whatsapp.com in your Google Chrome browser. You will see a QR code — scan the code inside of WhatsApp, and you’re ready to go. You have now paired WhatsApp on your phone with the WhatsApp web client. Your phone needs to stay connected to the internet for our web client to work, and please make sure to install the latest version of WhatsApp on your phone. Unfortunately for now, we will not be able to provide web client to our iOS users due to Apple platform limitations.

I added some emphasis to the quote above. Lets count their mistakes:

The web will be televised

Introduction

The past few days we’ve seen lots of news regarding the current trends in SmartTV platforms. CES coverage is bringing in a lot of new tendencies and I’d like to talk a bit about the current convergence I see happening in the market.

It all starts with LG webOS

webOS TV

webOS TV

LG rocked the world when it shipped webOS on SmartTVs. With the objective of making TVs simple again without reducing features or restricting potential. The LG webOS SmartTVs are a joy to use both as an end user and as a developer.

webOS has a rich history and legacy. It influenced the current mobile operating systems much more than people usually give credit for. This legacy of shaping the industry can be felt again in the SmartTV ecosystem. webOS pioneered the idea that mobile apps could be built using web technologies and while SmartTVs are a bit less mobile than smartphones they still share the foundation technologies with its older siblings from HP webOS and Palm webOS.

Enyo

Enyo

Apps for webOS TVs are built using the webOS SDK and web applications are a first class citizen in the system. The apps are built with good old Apache Cordova. The most impressive part of the SDK is the EnyoJS Framework which is able to build cross-platform apps that goes from Smartphones to SmartTVs with ease. The moonstone UI library for Enyo was created specifically for SmartTVs and the spotlight library allows easy navigation and input using different types of TV remote. It becomes much easier to deploy apps on TVs once you have a ready to use UI and input library.

LG with the killer combo of webOS + Enyo based apps raised the bar for the competing platforms. Finally building applications for a SmartTV was as easy as developing web pages.

Beanbird

Beanbird

Then it becomes open with Firefox OS

Blaze your own path

Blaze your own path

The new mobile operating system by Mozilla brought a refreshing openness and power to the mobile operating system ecosystem. Smartphones with Firefox OS have been released in 29 countries are able to run in devices with specs as low as 128 MB of RAM. The new system is the only mobile operating system in the world that is developed in the open. And before you start shouting Android remember that even though most of the Android versions had their source released at some point in time, some did not. Also Android is not developed in the open, you can’t go to a roadmap or issue tracker and start contributing to the next release (or help shape it by adding new features).

Firefox OS is developed in plain sight. Anyone can fetch the source tree and help make the system what they want it to be. All the roadmap and all the source for all the system, built-in apps and backend services are published. Contribution is encouraged and lots of partners already jumped in. The promise of an open operating system with no strings attached and full source code is very appealing to hardware developers.

Creating EnyoJS apps with Yeoman

js, english
EnyoJS Logo

EnyoJS Logo

What is Enyo JS

Enyo JS is a framework for building native-quality HTML5 apps that run everywhere! It begun its life in HP webOS (my favorite system ever) and was released as an open source project in the aftermath of the fiasco.

What is known as Enyo 1.0 is tied closely to webOS (a.k.a. a webkit based system). The Enyo team decided that with the open source release they should rewrite Enyo from the scratch to be compatible with other systems thus Enyo 2.x was born.

The current release is Enyo JS 2.4.0 and it is a gorgeous release sporting bindings, mvc, components, and more.

I will write more about Enyo JS as soon as I can but lets try to give you readers a glimpse of what it is all about.

Enyo is about components. Its about building reusable/shareable code into self contained components that may contain other components. Your app is a collection of these components structured in a elegant way.

I could go on for hours on why Enyo is a very elegant system but let me just give you one reason: Enyo JS core libraries and components are built in Enyo JS so if you know how to use the framework you can debug it, also if you read the framework source code you become a better Enyo coder.

You can check A Tour of Enyo to get a quick look at its features

There is a quick tutorial available at github wiki for enyojs/enyo and its very easy to follow.

A Free Agent at MozFest 2014

mozilla, mozfest, english
MozFest

MozFest

It has been some days since I’ve been back from the amazing Mozilla Festival and its time to post about all the amazing things I’ve seen and done over there. This event was probably the most engaging “tech” event I’ve ever been. The whole mindset of sessions and facilitators is something that we should replicate all around the globe. In my humble opinion this event represents the best of the Mozilla mission and spirit and in these brief words I will try to explain a bit of my wonderful experience over there.

A Free Agent (or being a bit lost)

I am a Mozilla Rep and love working on Web related stuff. I’ve been to many events around the globe but this was my first MozFest. This event is very different than all other events I’ve been to and part of my experience was shapped by how I got there.

MozReps making their scary face

MozReps making their scary face

There was an application form for Mozilla Reps that were interested in going to the event. I’ve filled it. There was also a public call for sessions and I’ve submit my proposal about teching how to run Mozilla Appmaker on a Raspberry Pi. My session was reject but my trip was approved. So in essence, I was going but I had no idea what I was going to do there.

A new FirefoxOS book about Game Development

![Book Cover](/img/old//images/gsoc/book_cover.jpg)

A new book focused on Game Development

I am almost reaching the point where I can almost release the book. My idea is to release it as an early unfinished preview and allow readers to send feedback and enjoy it while I am still building it.

The Google Summer of Code is all about open source creations and its my belief that open source should also be open development so by releasing this book in early form I am able to invite you all to contribute to it.

Some toughts regarding the Firefox OS Tablet Keyboard

In this brief article I will expose my impressions about the keyboard used in the current Firefox OS version used in tablets. Please be aware that these tablets are reference designs used to improve Firefox OS in tablet form factor. What we see and discuss here is not what the final product will be.

This article is for the benefit of the Tablet Contribution Program run by Mozilla. This project aims to improve Firefox OS for tablet usage. An initial run of reference designs were seeded to many contributors who are bringing back improvements.

Since we’re Mozilla, we do everything in the open and thats why this article is published here and not on some private walled garden.

Let the Games Begin! (or GSOC 2014 starts)

mozilla, gsoc, gamedev, english
Playful Red Pandas

Playful Red Pandas

I’ve been accepted in Google Summer of Code 2014 as a student working with Mozilla.

My project (that can be seen here) is about creating game samples, an ebook and some reusable libraries to aid game developers working with Firefox OS.

My mentor is Soledad Penadés who is fantastic and builds awesome stuff at Mozilla. Check out her creations at 5013. I am pretty happy with this match because I will learn tons of stuff. :-)

Why games?

Games count for 50% of the app usage on mobile devices. Let that sink for a bit… Of all app categories, games count for half of the usage and all the other types of app share the remaining fifty percent. Games are so important that many developers distinguish between games and non-games application as being from different realms. No one places spreadsheets app and project management apps in different realms but people think of games as something so broad, so large, that it deserves its own category.

If games are so important for mobile platforms then it makes sense that we have great tools and documentation to aid new developers in becoming game developers. The fact is that even though we do have lots of documentation, it is all spread multiple MDN pages and wiki links and personal blogs. We lack a comprehensive collection of knowledge that can be easily followed, understood and shared by new developers.

If a game developer wants to learn something about Firefox OS itself then he can just browse MDN Game Development Zone for the information he needs. New developers that want to become game developers have no easy path to follow.

To solve this we’re going to build a set of resources that when used together will teach new developers how to develop 2D casual games for Firefox OS.

Lets see what we’re going to build…

Thinking about EME/DRM

mozilla, firefox, drm, english

I think people on the interwebs are confusing the smoke for the fire.

For those that haven’t read how the new EME/DRM stuff will work: Firefox will have a sandbox to run the binary blob. The blob will not come installed on Firefox. The blob will not have access to the hardware or be able to fingerprint you. The sandbox is open source and can be compiled separate from Firefox so that people who want to make sure their sandbox has not been tampered by NSA/MAFIAA will be able to do so.

If you don’t use services that use DRM such as Netflix, Hulu and Amazon then your Firefox will still be free from the evil binary DRM blob. If you decide to utilize such services then you authorize (explicit user action, like press a button and there is a message) the installation of the binary blob at the time you try to use the said services.

“As plugins today, the CDM itself will be distributed by Adobe and will not be included in Firefox. The browser will download the CDM from Adobe and activate it based on user consent.” — Andreas Gal, Mozilla CEO in Reconciling Mozilla’s Mission and W3C EME

If you’re among the group that is against DRM on the web then instead of going into flamewars and hatred about Firefox having the EME spec you should just stop using DRM enabled services and show them where your convictions are. If on the other hand you want to consume said content then you will have the only open source sandbox that protects you agains hardware access and fingerprinting. Firefox still the best alternative even with EME/DRM.

Pensando sobre EME/DRM

Acho que a galera nas interwebs está confundindo fumaça com fogo.

Pra quem não leu como vai funcionar o lance do DRM: O Firefox vai ter uma sandbox para rodar o blob. O blob não vai vir instalado no Firefox. O blob não tera acesso a nada do hardware e não poderá ser utilizado para fazer fingerprint. O código fonte do sandbox é open e você poderá compila-lo separadamente se quiser ter certeza que o seu sandbox não foi macumbado pela NSA.

Se você não utilizar os serviços que usam DRM tais como Netflix, Hulu e Amazon então seu Firefox continua livre do dito blob. Se você quiser utilizar esses serviços então você autoriza a instalação do blob de DRM quando você vai assistir alguma coisa.

“As plugins today, the CDM itself will be distributed by Adobe and will not be included in Firefox. The browser will download the CDM from Adobe and activate it based on user consent.” — Andreas Gal, Mozilla CEO in Reconciling Mozilla’s Mission and W3C EME

Se você é daqueles que são contra DRM na web então em vez de ficar brigando para não ter os hooks no Firefox basta não utilizar os tais serviços. Se você é daqueles que quer assistir os tais videos na internet então você tem a única sandbox open source incapaz de fazer fingerprint. Continua melhor que as alternativas.