Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Linkoteca. Archivo de navegación. Página 15


What the heck is going on? Big brands turned off millions of dollars of digital ad spending, and saw no change in business outcomes. Small businesses tuned their digital marketing and reduced the number of ad impressions, clicks, and traffic to their sites, but saw business activity go up, instead of down.

Some brands paused digital ad spending in 2020, due to the pandemic. If they saw no change in business outcomes, they can be very selective in what spending they turn back on, because those expenses were not driving incremental business anyway. Other advertisers reduced the number of websites and mobile apps showing their ads by going to a strict include-list. This prevents the vast majority of fly-by-night fake sites and mobile apps from sapping their digital ad budgets. And finally, smart advertisers should run more controlled experiments like eBay did in 2012 and prove to themselves what portion of digital advertising truly drives incremental business outcomes, versus the portion of the spending that is just wasted to bot activity.

Hola, gente contagiada. Este grupo de Telegram es una virus-emergency-version-conversation del programa radiofónico «On Collaboration». Qué supone o qué podemos aprender de lo que está haciendo la ciudadanía para apoyarse mientras la crisis, dentro de los tiempos en los que nos movemos con la familia en casa, y demás.

Como este grupo se convierte en podcast, nos comunicamos únicamente por notas de voz. Por favor, hablad mucho, o hablad poco, escuchad todas o no escuchéis ninguna de las notas de voz, sentíos cómodos en este grupo de hacer lo que queráis y cuando queráis de aquí adelante.

Hola gente contagiada de civismo, de curiosidad, de necesidad de aprendizaje, de compañía. Queremos recuperar las inteligencias colectivas, las estrategias, herramientas y vivencias en torno a la colaboración y los nuevos agenciamientos producidos en este contexto tan crítico y especial del Sars-Cov2 en nuestra realidad.

Pues, adelante.

There was a time when Thunderbird’s future was uncertain, and it was unclear what was going to happen to the project after it was decided Mozilla Corporation would no longer support it. But in recent years donations from Thunderbird users have allowed the project to grow and flourish organically within the Mozilla Foundation. Now, to ensure future operational success, following months of planning, we are forging a new path forward. Moving to MZLA Technologies Corporation will not only allow the Thunderbird project more flexibility and agility, but will also allow us to explore offering our users products and services that were not possible under the Mozilla Foundation. The move will allow the project to collect revenue through partnerships and non-charitable donations, which in turn can be used to cover the costs of new products and services.

Gobernar es partir de un plan a priori, habitar es escuchar.

… hay que quedarse en casa. ¿Y la gente que no tiene casa? Hay que escuchar qué es lo que pasa para poder actuar en ello.

el virus son unas lentes a través de las que mirar la realidad.

La palabra Apocalipsis significa revelación. Se revela lo escondido. Estamos en un momento en el que, a través de lo que nos muestra el virus, podemos repensar la realidad y transformarla.

El modelo nos pone por debajo. Hay que pensar en una política sin modelos, partir de lo que está pasando.

La opción del libro es esta segunda: asumir activamente, no nostálgicamente, la condición de huérfanos de una revolución que no tiene apego a la realidad.

Esa idea de militancia nostálgica que dice que todo lo que no es el modelo es posmodernismo, es anclarnos a la tristeza y no escuchar lo que ocurre.

Confinement oblige, ça fait maintenant un mois qu’on zone presque toutes chez nous, mais on a tenu à vous concocter un épisode un peu spécial, dans l’espoir de vous redonner le sourire :).

Elles s’aiment, elles nous aiment et nous apprennent à nous aimer, elles se mobilisent ou bien elles stagnent et emmerdent qui ça dérange, elles diffusent, elles écrivent, elle partagent… nos warriors en confinement vont vous réconcilier avec vos corps, vos envies et non envies, et c’est de ça, JUSTE de ça dont on a besoin en ce moment.

Voilà donc un épisode auto-calin pour vous faire du bien !

ArchiveBox is a powerful self-hosted internet archiving solution written in Python 3. You feed it URLs of pages you want to archive, and it saves them to disk in a varitety of formats depending on the configuration and the content it detects. ArchiveBox can be installed via Docker (recommended), apt, brew, or pip. It works on macOS, Windows, and Linux/BSD (both armv7 and amd64).

La plataforma social «València per l’aire» som una iniciativa organitzada de ciutadania col·lectiva, autònoma i plural. Els motius i finalitats generals que ens mouen cerquen solucions eficaces que milloren la qualitat de l’aire urbà de la ciutat de València i de l’entorn metropolità. Ens hem dotat de mitjans tècnics propis que són necessaris per a realitzar mesuraments i vigilància sobre la qualitat de l’aire. Produïm i difonem informació objectiva i socialment accessible sobre la contaminació de l’aire de València i la seua àrea metropolitana. També realitzem un seguiment continuat i unes valoracions especifiques per zones sobre la composició de l’aire i la presència de components tòxics.

BEM — Block Element Modifier is a methodology that helps you to create reusable components and code sharing in front-end development.

BEM is a highly useful, powerful, and simple naming convention that makes your front-end code easier to read and understand, easier to work with, easier to scale, more robust and explicit, and a lot more strict.

The BEM approach ensures that everyone who participates in the development of a website works with a single codebase and speaks the same language. Using BEM’s proper naming convention will better prepare you for design changes made to your website.

Captura de pantalla de app.dvf.etalab.gouv.fr

Cette application est proposée par Etalab, département de la DINUM, et permet de visualiser les données DVF (demandes de valeurs foncières), correspondant aux mutations à titre onéreux réalisées les 5 dernières années. Les données DVF brutes sont téléchargeables sur le site https://www.data.gouv.fr depuis le 24 avril 2019 et sont produites par la direction générale des Finances publiques. Vous y trouverez des informations sur le cadre technique et légal de cette publication.

A quoi correspond le prix affiché ?

Il s’agit dun prix «net vendeur», c’est-à-dire ne comprenant ni frais d’agence immobilière, ni frais de notaire. En cas de vente de mobilier (une cuisine équipée par exemple) avec le bien immobilier, le montant de ce mobilier n’est pas compris dans le prix affiché. La TVA est incluse.

PyPI packages not in the standard library:

  • virtualenv is a very popular tool that creates isolated Python environments for Python libraries. If you’re not familiar with this tool, I highly recommend learning it, as it is a very useful tool, and I’ll be making comparisons to it for the rest of this answer.

    It works by installing a bunch of files in a directory (eg: env/), and then modifying the PATH environment variable to prefix it with a custom bin directory (eg: env/bin/). An exact copy of the python or python3 binary is placed in this directory, but Python is programmed to look for libraries relative to its path first, in the environment directory. It’s not part of Python’s standard library, but is officially blessed by the PyPA (Python Packaging Authority). Once activated, you can install packages in the virtual environment using pip.

  • pyenv is used to isolate Python versions. For example, you may want to test your code against Python 2.7, 3.6, 3.7 and 3.8, so you’ll need a way to switch between them. Once activated, it prefixes the PATH environment variable with ~/.pyenv/shims, where there are special files matching the Python commands (python, pip). These are not copies of the Python-shipped commands; they are special scripts that decide on the fly which version of Python to run based on the PYENV_VERSION environment variable, or the .python-version file, or the ~/.pyenv/version file. pyenv also makes the process of downloading and installing multiple Python versions easier, using the command pyenv install.
  • pyenv-virtualenv is a plugin for pyenv by the same author as pyenv, to allow you to use pyenv and virtualenv at the same time conveniently. However, if you’re using Python 3.3 or later, pyenv-virtualenv will try to run python -m venv if it is available, instead of virtualenv. You can use virtualenv and pyenv together without pyenv-virtualenv, if you don’t want the convenience features.
  • virtualenvwrapper is a set of extensions to virtualenv (see docs). It gives you commands like mkvirtualenv, lssitepackages, and especially workon for switching between different virtualenv directories. This tool is especially useful if you want multiple virtualenv directories.
  • pyenv-virtualenvwrapper is a plugin for pyenv by the same author as pyenv, to conveniently integrate virtualenvwrapper into pyenv.
  • pipenv aims to combine Pipfile, pip and virtualenv into one command on the command-line. The virtualenv directory typically gets placed in ~/.local/share/virtualenvs/XXX, with XXX being a hash of the path of the project directory. This is different from virtualenv, where the directory is typically in the current working directory. pipenv is meant to be used when developing Python applications (as opposed to libraries). There are alternatives to pipenv, such as poetry, which I won’t list here since this question is only about the packages that are similarly named.

Standard library:

  • pyvenv is a script shipped with Python 3 but deprecated in Python 3.6 as it had problems (not to mention the confusing name). In Python 3.6+, the exact equivalent is python3 -m venv.
  • venv is a package shipped with Python 3, which you can run using python3 -m venv (although for some reason some distros separate it out into a separate distro package, such as python3-venv on Ubuntu/Debian). It serves the same purpose as virtualenv, but only has a subset of its features (see a comparison here). virtualenv continues to be more popular than venv, especially since the former supports both Python 2 and 3.

Recommendation for beginners:

This is my personal recommendation for beginners: start by learning virtualenv and pip, tools which work with both Python 2 and 3 and in a variety of situations, and pick up other tools once you start needing them.

Hack_Curio is a video portal into hackerdom that helps explain why hacking is one of the most important phenomena of global culture and politics in the late 20th and early 21st century.

They are people of different kinds: they are young and old, men, women, and nonbinary. They are not invisible, immaterial, hidden or cloaked except, of course, when they want to be. Hackers are funny, and scary; hackers are do-gooders, and assholes; they write code; hunt for bugs; tell the government to fuck off; land in jail (and even break out of jail); they work for three-letter agencies and expose them; they secure and break into our systems; invent new laws; bitch and rant; whistle, hum, and rap.

USB-C capabilities

Whereas USB-A connectors have to be plugged into their ports in a specific orientation, the symmetry of the oval shaped USB-C connector head, along with the pin configuration within it, allows the USB-C connector to be completely reversible…

With two-way charging, a USB-C port has the potential to either output power in order to charge a connected device, or input power from a connected device in order to charge itself.

Alt Mode allows USB-C ports to transfer data/video via multiple interfaces, including the increasingly popular DisplayPort video interface. USB-C ports which are able to transfer DisplayPort signals are either called USB-C DisplayPort or DP Alt Mode. They allow you to connect video sources (e.g. PCs, Blu-Ray players, etc.) and display devices (e.g. TVs, projectors, etc.) that support DisplayPort to each other via their USB-C ports to broadcast high-definition video.

The last thing I’m going to mention, and this is on me not Pine64 in any way, it caught me off guard that it’s running Manjaro. It shouldn’t have since it’s on the box and on the phone itself, but it did. I’ve been using Mobian with Phosh on the PineTab, and Manjaro with Phosh looks pretty much identical, but obviously tools like apt aren’t there. Tomorrow when I have the chance to look around a little bit more, I’m going to have to get myself in the Manjaro head space instead of a Debian based distro. I’m looking forward to it.

The splinternet (also referred to as cyber-balkanization or internet balkanization) is a characterization of the Internet as splintering and dividing due to various factors, such as technology, commerce, politics, nationalism, religion, and divergent national interests. «Powerful forces are threatening to balkanise it», writes the Economist weekly, and it may soon splinter along geographic and commercial boundaries. Countries such as China have erected what is termed a «Great Firewall», for political reasons, while other nations, such as the US and Australia, discuss plans to create a similar firewall to block child pornography or weapon-making instructions.

What does it mean to leave the city behind? Can the reality of living in the countryside fulfil our desire for a better, simpler, more creative life? My book sheds a light on what rural life can be like today, with all its joys and challenges, providing a fresh look at the people and scenes thriving outside urban spaces.

From experimental co-habitation in a renaissance castle to oversized artworks on a farm, City Quitters offers a global perspective on creative post-urban life: 22 stories from 12 countries and five continents, all based in places with fewer than 10,000 inhabitants.

Captura de pantalla de france-geojson.gregoiredavid.fr

Le projet Github france-geojson propose au format GeoJSON les cartes des régions, départements, arrondissements, cantons et communes de France (métropole et départements d’outre-mer) à partir des données publiées par l’IGN et l’INSEE.

Ce site permet de rechercher, visualiser et télécharger individuellement chacun de ces fichiers dans un format optimisé. Pour plus de détails ou pour accèder à la version non optimisée des tracés, cliquez sur le bouton ci-dessous.

La industria de la telefonía móvil está en las puertas de una nueva revolución, solo que es una que tiene poco o nada que ver con incrementar el acceso o la asequibilidad. De hecho, ni siquiera está claro cuándo el 5G empezará a funcionar en alguna escala. Según la propia estimación de la GSMA: “La adopción global del 5G será solo de alrededor de un 16% en 2025”.

Un problema fundamental es que el 5G no está centrado en los humanos. La comunicación entre los seres humanos es solo una pequeña parte del paquete, como también lo es el acceso a la información y el diálogo entre pares. Como enfatizaba mi texto previo, hay un enfoque importante en facilitar las comunicaciones de máquina a máquina (“Internet de las Cosas o IoT”) y en convertir al 5G en una plataforma de distribución mediática para televisión HD, gaming, realidad virtual y otros. Cuando la gente ya no es el foco intrínseco del sistema de comunicación, entonces algo fundamental ha cambiado en la naturaleza y el propósito de la red.

La tecnología 5G es increíblemente cara de desplegar, incluso en condiciones urbanas óptimas. Las estaciones base son caras y se necesita muchas de ellas, y además requieren una costosa infraestructura de soporte para operar, como cableado de fibra óptica de alta capacidad. Esto tiene sentido si quieres crear una red muy densa que pueda movilizar muchos datos a mucha gente en un área pequeña. Esto no tiene sentido para áreas rurales, donde generalmente tienes que cubrir pocas personas en un área grande. Como sabemos de nuestra situación actual, a las redes móviles se les dificulta< operar de forma sustentable en ambientes rurales donde las densidades de población y el ingreso disponible de la gente son menores. Es por esto que los operadores tienden a evitar construir cualquier cosa en este tipo de lugares. Si los grandes operadores deciden no construir en nuevos lugares, el hecho de que sus licencias de espectro sean nacionales, significa que otros no podrán construir redes. Adicionalmente, el 5G en la mayoría de los casos, requiere que los operadores acceden a nuevas bandas espectrales, lo que no es barato. Los operadores de tecnología móvil están invirtiendo grandes sumas de dinero para acceder a espectro de ondas milimétricas para 5G, cuyo uso no es factible en áreas rurales, ya que estas frecuencias muy altas no son adecuadas para cubrir grandes áreas.

Además de las noticias que relacionan el 5G con el covid-19 y otras ideas conspiranoicas, aún no está claro que este tipo de tecnología tenga afectaciones a la salud, ya que hay controversia en los estudios y no se ponen de acuerdo. Lo que sí es seguro es que el 5G significa más fabricación de dispositivos, antenas, cables, servidores y aparatos de todo tipo, que se construyen con minerales, que se extraen de minas, que afectan gravemente a la tierra y el territorio. También llevará aparejada mucha obsolescencia y renovación de equipos, y por tanto, mayores cantidades de residuos tecnológicos, que irán a parar a vertederos, ríos, costas, que también afectarán gravemente a la tierra y el territorio. Es decir, a muchas personas.

Y estar a la última en tecnología para acceder a estas redes ¿significará trabajar más para consumir más tecnología? ¿En qué condiciones laborales? Pues con el 5G también se prevé más automatización en puestos de la industria y los servicios. Suena a más precariedad, deslocalización, desempleo. ¿O vendría acompañado de dignificación de otros puestos de trabajo y rentas básicas?

Pero también con consecuencias geopolíticas, como hemos estado viendo con la pugna entre Estados Unidos y China. ¿Dentro de unos años habrá varios Internet, según los bloques geopolíticos? Todo apunta a ello.

Asynchronous requests will wait for a timer to finish or a request to respond while the rest of the code continues to execute. Then when the time is right a callback will spring these asynchronous requests into action.

Generators

One use for generators is that they allow you to have async code looking like sync.

Instead of returning with a return, generators have a yield statement. It stops the function execution until a .next is made for that function iteration. It is similar to .then promise that only executes when resolved comes back.

Async/Await

This method seems like a mix of generators with promises. You just have to tell your code what functions are to be async. And what part of the code will have to await for that promise to finish.

The async and await keywords are a great addition to Javascript. They make it easier to read (and write) code that runs asynchronously. That includes things like:

API calls (using fetch or a library like axios);
Timeouts (though these need a little extra work); or
Reading/writing files if you’re using NodeJS.

I’m going to assume you’re familiar with Promises and making a simple async/await call. Where it can get tricky is when we have a whole bunch of tasks in an array. You might run through the array expecting calls to run one-by-one. But instead, they run through all together and don’t wait for each individual item to resolve. Or, you might find yourself with the opposite problem. You run through your array in a loop, wanting them to run in parallel. But instead, it waits and does them one by one. And sometimes, you try something and it doesn’t work at all. The program just continues after the loop instead of waiting until the calls are all done. You end up wondering if there’s something you’re missing.

Promises simplify deferred and asynchronous computations. A promise represents an operation that hasn’t completed yet.

A promise can be:

fulfilled – The action relating to the promise succeeded
rejected – The action relating to the promise failed
pending – Hasn’t fulfilled or rejected yet
settled – Has fulfilled or rejected

Promise is used to overcome issues with multiple callbacks and provide better way to manage success and error conditions.

Promise is an object which is returned by the async function like ajax. Promise object has three states

pending :- means the async operation is going on.
resovled :- async operation is completed successfully.
rejected :- async operation is completed with error.

There are two parts using a promise object. Inside async function (Part1) and where its called (Part2).

Part1 — Inside Async function,

Promise object is created.
Async function returns the promise object
If async is done successfully, promise object is resolved by calling its resolve method.
If async is done with error, promise object is rejected by calling its rejected method.

Part2 — Outside Async function

Call the function and get the promise object
Attach success handler, error handler on the promise object using then method

Cross Domain Call

By Default, AJAX cannot make cross domain call, browser will reject the calls to the different domain. In order to make cross domain call there are two options

Using CORS
Using JSONP

Both the options requires some server changes. It cannot be done purely using javascript.

CORS is the new way to deal with cross origin AJAX request. github api are CORS enabled. In order to enable CORS, response should contain Access-Control-Allow-Origin header with the domain value or * to work for all. Github has set as *.

JSONP can also be used if CORS cannot be enabled by server or for old browsers. JSONP actually uses script tag to get the data from the server. Script is allowed to be fetched from any domain, So in JSONP, we need to create a script with the url as src and the server has to wrap the response in a callback function. Response sent by server is actually a javascript code which contains data inside a wrapper function. In JSONP, there is no ajax call being made.

Every document in Google Sheets supports the «Chart Tools datasource protocol», which is explained (in a rather haphazard way) in these articles:

«Creating a Chart from a Separate Spreadsheet»
«Query Language Reference»
«Implementing the Chart Tools Datasource Protocol»

To download a specific sheet as a CSV file, replace {key} with the document’s ID and {sheet_name} with the name of the sheet to export:

https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}

The datasource protocol is quite flexible. Various other options include:

Response Format: Options include tqx=out:csv (CSV format), tqx=out:html (HTML table), and tqx=out:json (JSON data).

Export part of a sheet: Supply the range={range} option, where the range can be any valid range specifier, e.g. A1:C99 or B2:F.

Execute a SQL query: Supply the tq={query} option, such as tq=SELECT a, b, (d+e)*2 WHERE c < 100 AND x = 'yes'. Export textual data: Supply the headers=0 option in case your fields contain textual data, otherwise they might be cut out during export.

…ALSA is responsible for giving a voice to all modern Linux distributions. It’s actually part of the Linux kernel itself, providing audio functionality to the rest of the system via an application programming interface (API) for sound card device drivers.

Users typically interact with ALSA using alsamixer, a graphical mixer program that can be used to configure sound settings and adjust the volume of individual channels. Alsamixer runs in the terminal, and you can invoke it just by typing its name. One particularly useful keyboard command is activated by hitting the M key. This command toggles channel muting, and it’s a fairly common fix to many questions posted on Linux discussion boards.

…the user-facing layer of the Linux audio system in most modern distributions is called PulseAudio.

The job of PulseAudio is to pass sound data between your applications and your hardware, directing sounds coming from ALSA to various output destinations, such as your computer speakers or headphones. That’s why it’s commonly referred to as a sound server.

If you want to control PulseAudio directly, instead of interacting with it through a volume control widget or panel of some sorts, you can install PulseAudio Volume Control (called pavucontrol in most package repositories).

If you feel that you have no use for the features provided by PulseAudio, you can either use pure ALSA or replace it with a different sound server.

The emergence of the Maker Movement has taken place in the context of a design practice and research that is now open, peer-to-peer, diffuse, distributed, decentralized; activity-based; meta-designed; ontologically-defined and defining; locally-bounded but globally-networked and community-centered. For many years the author participated and worked in the Maker Movement, with a special focus on its usage of digital platforms and digital fabrication tools for collaboratively designing and manufacturing digital and physical artifacts as Open Design projects. The author’s main focus in practice and research as a meta-designer was in understanding how can participants in distributed systems collaboratively work together through tools and platforms for the designing and managing of collaborative processes. The main research question of this dissertation is: How can we support and integrate the research and practice of meta-designers in analyzing, designing and sharing open and collaborative design and making processes within open, peer-to-peer and distributed systems?

The focus evolved and changed with three main phases: from facilitating collaborative design processes with 1) guidelines for a generic design approach, process and tools, to the use of 2) design tools and workshops that encode the methodology to developing 3) a digital ontology and the related digital platform. In the latter, the ontology for describing, documenting, sharing and designing collaborative design processes was developed as part of a broader conceptual framework, OpenMetaDesign, that builds the ontology on top of concepts describing design processes, and encodes it in a digital platform. The role of the ontology is to support the practice and research with a Research through Design approach that works not just on understanding the practice but also informing it, navigating it and continuously redesigning it. This dissertation is an exploration of the possible role, practice and profile of meta-designers that work in facilitating distributed, open and collaborative design and making processes in the Maker Movement. As a result, it provides insights on the practice and artifacts of the author and also a strategy and tools for applying the same exploration to other meta-designers. Following a Research through Design framework for bridging practice and research, the dissertation redefines Meta-Design in the Maker Movement as the design of digital ontologies of design processes as design material. Ultimately, the practice of designing a Metadata Ontology for Ontological Design through the design of bits (digital environments) and atoms (physical artifacts) with and for Open, Peer-to-Peer, Diffuse, Distributed and Decentralized Systems. Finally, it redefines meta-designers as designers, facilitators, participants, developers and researchers embedded in social networks that define their activities, profiles and boundaries for the ontologies they design.

Essentially, a promise is a returned object to which you attach callbacks, instead of passing callbacks into a function.

A common need is to execute two or more asynchronous operations back to back, where each subsequent operation starts when the previous operation succeeds, with the result from the previous step. We accomplish this by creating a promise chain.

Promises solve a fundamental flaw with the callback pyramid of doom, by catching all errors, even thrown exceptions and programming errors. This is essential for functional composition of asynchronous operations.