Open Source contributions

Most important contributions to third-party Open Source projects.

browserslist

features

istanbul-js

istanbul-js is a code coverage tool used internally by the Jest testing framework, developed by Facebook, and the current de-facto standard for Node.js, React, and JavaScript projects. Its default text output format was too limited when showing uncovered lines, so I refactored it to reduce the number of decoration characters and auto-adjust to the width of the terminal by default, in addition to grouping ranges of consecutive missing lines to be able to show more of them.

libWebrtc

Google’s implementation of the WebRTC spec, used in Chrome and Android, among others. Here, I added support for the removeTrack event in the Java bindings, to allow dynamic removal of video and audio tracks from PeerConnection objects in Android applications.

This contribution was sponsored by Atos Research & Innovation.

node.js

static builds test

node-canvas

As part of the development of NodeOS, to provide it with some basic graphics capabilities, I added support for configurable backends in node-canvas, with the intention of being able to draw directly on the Linux FbDev framebuffer device instead of just only in memory, in addition to X11 and Windows GDI (Win32 API). Backend support has already been accepted in the upstream code, while the FbDev, X11, and Win32 implementations are still pending approval. In the future, I plan to add support for other graphic systems like accelerated Linux DRM/KMS or macOS Quartz.

This work was later sponsored by Ventrata to improve the FbDev backend by adding support for double-buffering, VSync, and 24-bit color mode, and by easing the path to add new screen-based backends.

node-webrtc

As a WebRTC pioneer since 2012 with ShareIt!, I’ve been contributing to other projects, especially using node-webrtc as a building block for Node.js applications, where I’ve worked on improving API compatibility with browsers in addition to maintenance tasks.

num2words

num2words is a Python library that provides word captions of numerals for multiple languages and dialects. As part of my work at qvantel, I not only added support for Algerian French (where numerals are based on increments of 100, instead of increments of 20 as spoken in France), but also added support for its coin system. I also refactored the generic French implementation to simplify it and make it easier to add support for other dialects like Swiss French. That work earned me compliments both from the library owner and from my superiors for how clean and streamlined the implementation became.

redux-offline

redux-offline provides helper functions to work with network requests in the redux state container. I have been using it in almost all my React Native projects, and my contributions includes support for async dispatching to control when failed requests are due to expired tokens (and being able to renew them and redo the request without losing the session), as well as support for multiple queues of parallel network operations with different protocols in a single application, without blocks between them. Thanks to these changes, I was given administrative permissions on the project itself.

You can find more info about redux-offline in Redux-offline in Node.js

re-start (AKA ReactNative Everywhere)

re-start is a wrapper for React Native that provides configuration to add support for web platform in addition to standard Android and iOS platforms, all of them by using a single code base. I added support for Electron and Windows. Thanks to that, I became an administrator of the project, and future plans include adding support for macOS applications, and reworking the project from a React Native template into a CLI tool capable of enabling support for additional platforms in any existing React Native project.

You can find more info about re-start in What’s re-start?

React Native Spain @ F8 Madrid, Madrid 3rd May 2018: “re-start: write once, run everywhere” por Jesús Leganés-Combarro