Autonomie numérique et technologique

Code et idées pour un internet distribué

Linkothèque. Carnet de bord

Olivia est développeuse full stack en indépendante. Ce qu’elle préfère c’est travailler avec sa communauté d’une dizaine d’indépendants, spécialisés en front, en UX design et en graphisme, en qui elle a toute confiance.

Mais Olivia se rend compte qu’elle refuse trop souvent des projets qui demandent des compétences que sa communauté n’a pas, parce qu’elle n’aime pas recruter et qu’elle ne sait pas à qui à faire confiance. Pire, elle et d’autres membres de sa communauté se retrouvent parfois avec trop peu de boulot.

Elle s’est branchée sur Hubl et y a invité sa communauté. Ils se servent du chat pour communiquer, et en se connectant à douze autres communautés qu’elle connaît bien, elle a désormais accès à leurs offres de mission et à leurs annuaires de profil. Ça lui permet de trouver des projets intéressants et des indépendants de confiance avec qui les réaliser.

Not too long ago I decided to write a jQuery plugin for making the use of iScroll a little less painful. Since I made the plugin at work I’m not really at liberty to share it. But what I can share is a step by step tutorial for creating a jQuery plugin of your own. Let’s get started.

Alberto Cairo escribe y diseña visualizaciones de datos. En esta entrevista nos cuenta sobre sus libros y sus descubrimientos. El nos dice que “Una visualización es un argumento visual. Necesita tiempo y atención para poder leerlo con cuidado.” Y que no tenemos que usar los gráficos para confirmar lo que creemos. También nos cuenta como son las clases para infografistas y como reflexionan a través de los gráficos. Hablamos de un futuro con más alfabetización visual, donde la gente está más entrenada a leer gráficos y las interpretaciones que proponen. El sostiene que para enseñar infografía es importante enseñar a interpretar los números y que la visualización de datos nos permite entender los números de una manera más crítica.

virtualenvwrapper is a set of extensions to Ian Bicking’s virtualenv tool. The extensions include wrappers for creating and deleting virtual environments and otherwise managing your development workflow, making it easier to work on more than one project at a time without introducing conflicts in their dependencies.

Organizes all of your virtual environments in one place.
Wrappers for managing your virtual environments (create, delete, copy).
Use a single command to switch between environments.
Tab completion for commands that take a virtual environment as argument.
User-configurable hooks for all operations (see Per-User Customization).
Plugin system for creating more sharable extensions (see Extending Virtualenvwrapper).

Well, a virtual environment is just a directory with three important components:

A site-packages/ folder where third party libraries are installed.
Symlinks to Python executables installed on your system.
Scripts that ensure executed Python code uses the Python interpreter and site packages installed inside the given virtual environment.

(venv) % pip freeze

And write the output to a file, which we’ll call requirements.txt.

(venv) % pip freeze > requirements.txt

Duplicating Environments

Sara% cd test-project/
Sara% python3 -m venv venv/
(venv) Sara% pip install -r requirements.txtCollecting numpy==1.15.3 (from -r i (line 1))
Installing collected packages: numpy
Successfully installed numpy-1.15.3

…python -m pip executes pip using the Python interpreter you specified as python. So /usr/bin/python3.7 -m pip means you are executing pip for your interpreter located at /usr/bin/python3.7.

But when you use python -m pip with python being the specific interpreter you want to use, all of the above ambiguity is gone. If I say python3.8 -m pip then I know pip will be using and installing for my Python 3.8 interpreter (same goes for if I had said python3.7).

While we’re on the subject of how to avoid messing up your Python installation, I want to make the point that you should never install stuff into your global Python interpreter when you. develop locally (containers are a different matter)! If it’s your system install of Python then you may actually break your system if you install an incompatible version of a library that your OS relies on.

Building a truly international application is not just about translating strings. Other issues to consider are date and time formats, currency symbols and pluralization. Programmers often underestimate the complexity of localization and get stuck with homemade code that is a pain to maintain. So, let’s talk about PHP Arrays, gettext, frameworks, and Intl.

La historia de las campañas electorales en EE UU.

En 1952 se usó por primera vez la televisión para promocionar a un candidato a la Casa Blanca y las elecciones cambiaron para siempre. « Four More Years » hace un recorrido sonoro por todas las campañas presidenciales estadounidenses desde aquel año hasta hoy. Recuperamos los sonidos de la época y escuchamos las voces de los protagonistas, de Eisenhower a Trump, pasando por Obama, Bush, Clinton, Reagan, Kennedy o Nixon.

Cada martes, una nueva entrega del podcast dirigido por Daniel Ureña (@danielurena), presidente de The Hispanic Council, junto con el periodista Gonzalo Altozano y Rafa Panadero, Jefe de Internacional de la Cadena SER

First I take the whole CSV file and split it into an array of lines. Then, I take the first line, which should be the headers, and split that by a comma into an array. Then, I loop through all the lines (skipping the first one) and inside, I loop through the headers and assign the values from each line to the proper object parameters. At this point, you probably want to just return the JavaScript object, but you can also JSON.stringify the result and return the JSON object.

Captura de pantalla de

Theirtube is a Youtube filter bubble simulator that provides a look into how videos are recommended on other people’s YouTube. Users can experience how the YouTube home page would look for six different personas. Each persona simulates the viewing environment of real Youtube users who experienced being inside a recommendation bubble through recreating a Youtube account with a similar viewing history. TheirTube shows how YouTube’s recommendations can drastically shape someone’s experience on the platform and, as a result, shape their worldview.

A pretty specific title, huh? The versioning is key in this map-making how-to. D3.js version 5 has gotten serious with the Promise class which resulted in some subtle syntax changes that proven big enough to cause confusion among the D3.js old dogs and the newcomers. This post guides you through creating a simple map in this specific version of the library. If you’d rather dive deeper into the art of making maps in D3 try the classic guides produced by Mike Bostock.

The upcoming version of Windows 10 will feature a real Linux kernel in it as part of Windows Subsystem for Linux (WSL).

The so-called ‘love for Linux’ seems more like ‘lust for Linux’ to me. The Linux community is behaving like a teen-aged girl madly in love with a brute. Who benefits from this Microsoft-Linux relationship? Clearly, Microsoft has more to gain here. The WSL has the capacity of shrinking (desktop) Linux to a mere desktop app in this partnership.

By bringing Linux kernel to Windows 10 desktop, programmers and software developers will be able to use Linux for setting up programming environments and use tools like Docker for deployment. They won’t have to leave the Windows ecosystem or use a virtual machine or log in to a remote Linux system through Putty or other SSH clients.

In the coming years, a significant population of future generation of programmers won’t even bother to try Linux desktop because they’ll get everything right in their systems that comes pre-installed with Windows.

The most active companies over the 3.19 to 4.7 development cycles in Linux kernel

Just 7.7% of devs are unpaid.

As its importance has grown, development of Linux has steadily shifted from unpaid volunteers to professional developers. The 25th anniversary version of the Linux Kernel Development Report, released by the Linux Foundation today, notes that « the volume of contributions from unpaid developers has been in slow decline for many years. It was 14.6 percent in the 2012 version of this paper, 13.6 percent in 2013, and 11.8 percent in 2014; over the period covered by this report, it has fallen to 7.7 percent. There are many possible reasons for this decline, but, arguably, the most plausible of those is quite simple: Kernel developers are in short supply, so anybody who demonstrates an ability to get code into the mainline tends not to have trouble finding job offers. »

replies on the Linux USB mailing list over a two-year period (Oct. 31, 2013 to Oct. 31, 2015)

One of the interesting things about the Linux kernel is that the vast majority of people who contribute to it are employed by companies to do this work; however, most of the academic research on open source software assumes that participants are volunteers, contributing because of some personal need or altruistic motivation. Although this is true for some projects, this assumption just isn’t valid for projects like the Linux kernel.

Many kernel developers also collaborate with their competitors on a regular basis, where they interact with each other as individuals without focusing on the fact that their employers compete with each other.

Contrary to open-source folklore, it is mostly paid developers who are building the Linux kernel.

Kernel development follows a time-based release model with a new release occurring every two to three months. This is designed to help speed the development for all Linux distributions so that each one doesn’t need to make kernel-specific updates or changes. More than 6,100 individual developers from more 600 different companies have contributed to the kernel since 2005, according the report.

A specification for adding human and machine readable meaning to commit messages.

The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of. This convention dovetails with SemVer, by describing the features, fixes, and breaking changes made in commit messages.

The Customizer Export/Import plugin allows you to export or import your WordPress customizer settings from directly within the customizer interface! If your theme makes use of the WordPress customizer for its settings, this plugin is for you!

In November 200 1, Nature published a letter in which University of California Berkeley’s biologists claimed to have found evidence of genetically modified (GM) DNA in regional varieties of maize in Oaxaca, even though the Mexican government had banned transgenic corn agriculture in 1998. While urban protesters marched against the genetic ‘contamination’ of Mexican corn by US-based agricultural biotech firms, rural indigenous communities needed a framework for understanding concepts such as GM before they could take action. This article analyzes how the indigenous organization, the Zapatistas, mobilized a program to address this novel entity. Their anti-GM project entailed educating local farmers about genetics, importing genetic testing kits, seed-banking landrace corn and sending seeds to ‘solidarity growers’ around the world. This article explores material-semiotic translations to explain one of the central aspects of this project, the definition and circulation of Zapatista corn–an entity defined not only through cultural geography, but also technological means. Through its circulation, Zapatista corn serves to perform a biocultural engagement with Zapatista’s political project of resistance to neoliberalism. While much has been written about both regulatory policy and consumer activism against GM in the Global North, Zapatista corn also provides a case study in indigenous, anti-GM activism founded on biocultural innovation and the creation of alternative networks for circulating corn.

Cuando hablo de “innovación pública” se me ocurre subdividirla en dos grandes ámbitos, que hay que diferenciar bien: 1) Servicios a la ciudadanía: Creación y mejora de políticas, productos y servicios de impacto directo en la ciudadanía, 2) Procesos internos: Mejora de procesos y políticas de gestión internas dentro de la administración. Partiendo de esta primera taxonomía más genérica, quiero proponer una forma de clasificar las innovaciones públicas en 6 tipos. Cualquier entidad del sector público debe cuidar y fomentar innovaciones en las seis categorías que voy a describir, buscando una adecuada diversidad entre esas formas de innovar:

1.) De servicios (servicios): Creación o mejora de servicios públicos. Se crea o mejora el “producto” final que recibe y percibe la ciudadanía.

2.) De procesos (flujos): Cambios en los flujos de los procesos que transforman el modo en que se trabaja internamente.

3.) De cultura y gestión del personal público (personas): Cambios en las políticas de gestión de las personas que trabajan dentro de la Administración para mejorar su actitud y aptitud.

4.) Organizativa (estructuras): Modificaciones en los organigramas, las estructuras organizativas y los modelos de liderazgo.

5.) De marco administrativo interno (normas): Modificaciones en el marco regulatorio administrativo interno para simplificar procesos y liberar la creatividad en el funcionariado.

6.) De políticas públicas (legislación): Cambios en la producción legislativa y en el diseño de políticas públicas.

Al instalar la aplicación, la misma solicita permisos para acceder al micrófono y al sistema de geolocalización. De esta manera, cuando el usuario está en un lugar público, como puede ser un bar o un café, el micrófono del teléfono móvil se activa y es utilizado para analizar el sonido ambiente del entorno, el cual es contrastado con la base de datos para determinar si el audio corresponde a un partido cuyos derechos de reproducción son propiedad de LaLiga. Además del micrófono, la aplicación utiliza el sistema de geolocalización del equipo para ubicar el local desde el que se retransmite el partido y comprobar si se trata de un cliente. En caso de que no lo sea y que la emisión del partido sea ilegal, la entidad propietaria de los derechos de reproducción de los partidos ha llegado a enviar inspectores a los bares para comprobar que sean abonados.

Replicant is a fully free Android distribution running on several devices, a free software mobile operating system putting the emphasis on freedom and privacy/security

To create a « polls » app in the « apps » sub-directory, do the following first to make the directory (assuming you are at the root of your django project):

mkdir apps/polls

Next, run startapp to create « polls » in under the « app » project directory.

startapp polls apps/polls

Install the app;



makemigrations polls


urlpatterns = [

Entre 2008 y 2016 Leonard Cohen vivió una de las etapas más fascinantes de su carrera. En ese periodo dio algunos de sus mejores conciertos, recitales de más de tres horas repletas de emoción, y grabó discos fascinantes que fueron su testamento musical antes de su adiós final.

Esta semana hemos querido recordar esos años finales de Leonard Cohen, sus últimos discos y sus últimas giras, un viaje que hacemos en compañía de Sheila Blanco y Fernando Neira además de los reportajes de Lucía Taboada.

We are sick of not receiving updates shortly after buying new phones. Sick of the walled gardens deeply integrated into Android and iOS. That’s why we are developing a sustainable, privacy and security focused free software mobile OS that is modeled after traditional Linux distributions. With privilege separation in mind. Let’s keep our devices useful and safe until they physically break!

The PinePhone is a smartphone, developed by computer manufacturer Pine64, intended for allowing the user to have full control over the device. Measures to ensure this are running mainline Linux based mobile operating systems, assembling the phone with screws, so that it can be easily disassembled for repairs and upgrades[4], and including six kill switches / security switches for its hardware, which are accessible by removing the back cover of the phone.

I found information about the Squeeze box players, and how they do not make them anymore, then found that you could use your Raspberry Pi with many different distributions to create different types of music players, but none really fit my needs as they required much programing and I did not have the time to « make it work » as I should. Then, out of the many searches trying to find the Logitech Media Server installation, I came across Max2Play. It promised to do everything I needed and wanted along with a few extras as well.

Whole house music and multi-room systems are very popular in homes and living spaces of all shapes and sizes. There are many ways to send music throughout a home, including wired and/or wireless connections that enable control from anywhere. You can use an existing receiver as the center hub, or you can install a completely dedicated whole house music system. The amount of effort involved can range from adding a speaker switch to a receiver, do-it-yourself wired/wireless networking, or something more sophisticated that would require professional installation. However, there are pros and cons to the different methods available.

Voilà bien longtemps que je devais revoir mon système audio multiroom complètement, pour avoir quelque chose de plus complet, répondant à mes besoins, de meilleure qualité, et avec un budget maitrisé. Si vous ne connaissez pas le multiroom, c’est en fait un système audio qui permet de sonoriser plusieurs pièces afin de pouvoir écouter la musique qu’on veut, où on veut dans la maison. Je vais vous expliquer ici comment j’ai mis en place ce système audio multiroom à l’aide de Raspberry Pi et cartes audio Hifiberry.

Captura de pantalla de

welcome to the year 2030.
there are 1.2 billion more people on the planet.
70% of us are living in cities now.
in order to house 1.2 billion more people,
all of us are sharing more household goods and services than ever before.
we refer to this sharing as co-living.
and many more of us are living this way now.

but it’s not a new thing.
communal living has always been a solution to common problems.
like rapid urbanisation, loneliness, and high living costs.
but what does co-living look like in the year 2030?
who is it for?
how has it changed our society?
what are we sharing?

with many more of us now co-living,
there is no one configuration.
discover what type of co-living would be uniquely suited for you.
reserve your spot for ONE SHARED HOUSE 2030.

REM to PX Converter is a free online tool you can use to easily convert rem (root em) to px (pixel). Keep in mind that 1rem is equal to the root font-size, in other words, the font-size on element.