Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Linkoteca. Archivo de navegación

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

A headless Content Management System, or headless CMS, is a back end-only web content management system that acts primarily as a content repository. A headless CMS makes content accessible via an API for display on any device, without a built-in front end or presentation layer. The term ‘headless’ comes from the concept of chopping the ‘head’ (the front end) off the ‘body’ (the back end).

Captura de pantalla del Mandelbrot Set Viewer

This application is a viewer for the Mandelbrot Set . You can zoom in and out using the mouse wheel, and drag the fractal to visit different locations.

Technical details

This application is a free software. You can freely browse its source on github . It uses modern web technologies to compute the fractal in parallel on multi-core machines.

he Archigram archival project made the works of seminal experimental architectural group Archigram available free online for an academic and general audience. It was a major archival work, and a new kind of digital academic archive, displaying material held in different places around the world and variously owned. It was aimed at a wide online design community, discovering it through Google or social media, as well as a traditional academic audience. It has been widely acclaimed in both fields. The project has three distinct but interlinked aims: firstly to assess, catalogue and present the vast range of Archigram’s prolific work, of which only a small portion was previously available; secondly to provide reflective academic material on Archigram and on the wider picture of their work presented; thirdly to develop a new type of non-ownership online archive, suitable for both academic research at the highest level and for casual public browsing. The project hybridised several existing methodologies. It combined practical archival and editorial methods for the recovery, presentation and contextualisation of Archigram’s work, with digital web design and with the provision of reflective academic and scholarly material. It was designed by the EXP Research Group in the Department of Architecture in collaboration with Archigram and their heirs and with the Centre for Parallel Computing, School of Electronics and Computer Science, also at the University of Westminster. It was rated ‘outstanding’ in the AHRC’s own final report and was shortlisted for the RIBA research awards in 2010. It received 40,000 users and more than 250,000 page views in its first two weeks live, taking the site into twitter’s Top 1000 sites, and a steady flow of visitors thereafter. Further statistics are included in the accompanying portfolio. This output will also be returned to by Murray Fraser for UCL.

Belén Gopegui nos habla de la tiranía de las decisiones pequeñas, que no te pone delante el largo plazo, las consecuencias de pequeñas decisiones de nuestra vida cotidiana, como comprar un libro más barato que a la larga hace desaparecer las librerías de barrio. O hacerse un seguro médico privado para tener una cita mañana. Hace falta tiempo para ver esto, hace falta también un espacio para organizarse. «Pensarlo en común todo».

It is a situation where a series of small, individually rational decisions can negatively change the context of subsequent choices, even to the point where desired alternatives are irreversibly destroyed.

Recently I needed to download some files from a WordPress installation where the client only gave me access to the admin dashboard. Fortunately the All-in-One WP Migration plugin was already installed, so I could take a quick backup of the whole site by downloading the installed plugins, theme and database.

To my surprise downloading the backup from the All-in-One WP Migration plugin only gave me a single compressed migration.wpress file that any unpack tool refused to extract. A little web search brought me to a five year old tool called Wpress-Extractor but the provided binaries for MacOS refused to work because the package was already too old.

So I decided to rewrite this little helpful tool in Node.js to make it cross-platform compatible for Windows, MacOS and Linux.

Pocos asistentes

Una de las reglas que Steve Jobs puso en marcha en Apple para acabar con las reuniones improductivas es convocar a pocos asistentes. El número ideal está entre tres y cinco personas, los imprescindibles para tratar los temas que marcan el orden del día sin caer en la divagación o perder tiempo escuchando a todo el equipo, lo que a veces se traduce en repetir las mismas ideas varias veces a lo largo de la reunión.

Pocos temas en cada reunión

Otra de las claves del fundador de Apple para reducir el número de reuniones improductivas es acortar el número de temas recogidos en el orden del día a un máximo de tres. En opinión del emprendedor, esta técnica consigue aumentar los niveles de concentración de los asistentes, así como extraer mejores conclusiones del encuentro.

Un máximo de media hora

La última regla de Steve Jobs para terminar con las reuniones improductivas es fijar un tiempo máximo. Así, las reuniones en Apple no duraban más de 30 minutos durante su etapa como CEO. Esta medida responde a un hecho científico. A partir de ese periodo de tiempo, la concentración humana deja de funcionar de la misma manera, y las reuniones comienzan a aprovecharse mucho menos.

Last summer in the first swings of the global pandemic, sitting at home finally able to tackle some of my electronics projects now that I wasn’t wasting three hours a day commuting to a cubicle farm, I found myself ordering a new smartphone. Not the latest Samsung or Apple offering with their boring, predictable UIs, though. This was the Linux-only PinePhone, which lacks the standard Android interface plastered over an otherwise deeply hidden Linux kernel.

As a bit of a digital privacy nut, the lack of Google software on this phone seemed intriguing as well, and although there were plenty of warnings that this was a phone still in its development stages it seemed like I might be able to overcome any obstacles and actually use the device for daily use. What followed, though, was a challenging year of poking, prodding, and tinkering before it got to the point where it can finally replace an average Android smartphone and its Google-based spyware with something that suits my privacy-centered requirements, even if I do admittedly have to sacrifice some functionality.

The importance of wp_localize_script is when you can pass data directly from PHP to JavaScript.

Functions is very easy to handle there are only 3 parameters required :

(string) (Required) Script handle the data will be attached to.

(string) (Required) Name for the JavaScript object. Passed directly, so it should be qualified JS variable. Example: ‘/[a-zA-Z0-9_]+/’.

(array) (Required) The data itself. The data can be either a single or multi-dimensional array.

You can use single_template filter hook.

/* Filter the single_template with our custom function*/
add_filter('single_template', 'my_custom_template');

function my_custom_template($single) {

    global $post;

    /* Checks for single template by post type */
    if ( $post->post_type == 'POST TYPE NAME' ) {
        if ( file_exists( PLUGIN_PATH . '/Custom_File.php' ) ) {
            return PLUGIN_PATH . '/Custom_File.php';

    return $single;


There are a few steps to create the custom quick edit box and custom column

  1. create a custom meta key (assumed that you have 1 already)
  2. add custom admin column title and data (assumed that you want to shows the custom meta key in the column, if not, you may also modify a bit of the logic to accomplish the same effect because the principal is the same)
  3. add custom quick edit box
  4. add save logic
  5. load script to modify original inline-edit-post function in order to support custom meta value
  6. prepare the script file

This tutorial is meant for D3 v5-v7.

This tutorial is a quick intro to D3.js, a Javascript library for creating interactive data visualizations in the browser. D3 is built on top of common web standards like HTML, CSS, and SVG.

This is not designed to be a deep dive — this tutorial will teach you how to learn D3 and give you a high-level understanding of this powerful tool.

Broadly speaking there are 4 steps to setting up a force simulation:

  • create an array of objects
  • call forceSimulation, passing in the array of objects
  • add one or more force functions (e.g. forceManyBody, forceCenter, forceCollide) to the system
  • set up a callback function to update the element positions after each tick

I’ve just had a nice experience improving and modernizing a large JavaScript codebase in a WordPress plugin. The original code was written in an old-fashioned way with jQuery in a single large file. Using modern EcmaScript and tools like Webpack, I was able to split it into modules and improve the code structure. The new code is much more readable and maintainable, and of course, fewer bugs. In this tutorial, I’ll show you how I did that.

ECMAScript 2015 or ES2015 is a significant update to the JavaScript programming language. It is the first major update to the language since ES5 which was standardized in 2009. Therefore, ES2015 is often called ES6.

cola.js (A.K.A. «WebCoLa») is an open-source JavaScript library for arranging your HTML5 documents and diagrams using constraint-based optimization techniques.

It works well with libraries like D3.js, svg.js, and Cytoscape.js. The core layout is based on a complete rewrite in Javascript of the C++ libcola library.

It also has an adaptor for d3.js that allows you to use cola as a drop-in replacement for the D3 force layout. The layout converges to a local optimum unlike the D3 force layout, which forces convergence through a simple annealing strategy. Thus, compared to D3 force layout:

The filter for modifying, removing or adding columns to post list in WordPress admin panel is manage_{$post_type}_posts_columns.

Which hook you need to use for controlling the output of the column content depends on whether or not your post type is set to be hierarchical or not.

Any non-hierarchical post types, including WordPress’ built-in post type ‘post‘, use the hook name manage_{$post_type}_custom_column. Any hierarchical post types, including WordPress’ built-in post type ‘page‘, use the hook name manage_pages_custom_column (note: no injection of post type name in the hook name).

In QGIS version 3, there are built-in features to use raster and vector data from OpenStreetMap. There is no built-in possibility to upload changes back to a OpenStreetMap server directly from QGIS. For this purpose, please use one of the Editors.

To compress for web at a reasonable broadband bitrate of about 1.5Mbps video / 128kbps audio:

ffmpeg -i source.mp4 -c:v libx264 -b:v 1.5M -c:a aac -b:a 128k target.mp4

To scale down a high-resolution source video to something more reasonable for Web (qHD for cellular, HD for broadband), the -filter:v argument is used:

ffmpeg -i source.mp4 -c:v libvpx-vp9 -b:v 0.33M -c:a libopus -b:a 96k \
-filter:v scale=960x540 target.webm

the open source system for processing and editing 3D triangular meshes.
It provides a set of tools for editing, cleaning, healing, inspecting, rendering, texturing and converting meshes. It offers features for processing raw data produced by 3D digitization tools/devices and for preparing models for 3D printing.

A barn raising, also historically called a raising bee or rearing in the U.K., is a collective action of a community, in which a barn for one of the members is built or rebuilt collectively by members of the community. Barn raising was particularly common in 18th- and 19th-century rural North America. A barn was a necessary structure for any farmer, for example for storage of cereals and hay and keeping of animals. Yet a barn was also a large and costly structure, the assembly of which required more labor than a typical family could provide. Barn raising addressed the need by enlisting members of the community, unpaid, to assist in the building of their neighbors’ barns. Because each member could ask others for help, reciprocation could eventually reasonably be presumed for each participant if the need were to arise.

Basic check is simple, wait for the ended event. This is so simple you can just google it.

Now to check that user played full video an extensive analysis would be needed checking if he played every second of it. That’s not necessary however, it should be enough that user:

  • played as many seconds as the video is long
  • played to the end of the video

This snippet demonstrates exactly that. The video will not be marked as fully played if you just skip to the end. Playing the beginning over and over will also not mark it fully played

‘Imprescindibles’ hace un repaso de la vida de Gay Mercader, el único promotor musical nacional que se atrevió a traer a las grandes figuras del rock a un país recién salido del franquismo, sin infraestructuras ni grandes medios para ello. Rolling Stones, Patti Smith, Bob Marley, Dylan, AC/DC o The Cure son algunos de los 3.400 artistas internacionales que programó a lo largo de su trayectoria.

Si se utiliza una distribución de Gnu/Linux, se debe tener instalada una versión actual de Firefox o Thunderbird.

En Firefox pulsar en —- Preferencias, seleccionar — Privacidad y seguridad, en la misma seleccionar —- Certificados —- Administrar certificados —- Importar— seleccionar y editar el certificado.

También se deben instalar los certificados raíz, activarlos para ser confiables para acceso internet y de correo.

Una vez editados los certificados nuevos y reiniciado LibreOffice.

En Herramientas —- Opciones —- Seguridad — Ruta del certificado —- Certificado, seleccionar — firefox:defaul ó thunderbird:defaul

Reiniciar Libreoffice y:

Pulsar en —- Archivo —- Firmas digitales.

Libreoffice solicita guardar el documento, aceptar.

Después de guardar, aparece el diálogo Firmas digitales.

Pulsar en agregar.

En el diálogo —- Seleccionar certificado, elegir el certificado y pulsar en —- Aceptar.

aparece nuevamente el diálogo Firmas digitales, pulsar en —- Aceptar.

Con la inflación disparada se ha difuminado la posibilidad de que Bitcoin o alguna alternativa ejerciera el rol de reserva de valor antinflacionaria. Cuando más lo necesitaban, sus poseedores han visto que lo que más correlaciona con el precio de un bitcoin es con la valoración en bolsa de empresas tecnológicas.

…la plataforma de compraventa de cripto Celsius Network no permitirá retiradas de fondos debido a problemas de liquidez es lo que más ha recordado a la burbuja puntocom.

A ese momento “2008” de Luna hay que sumar una pérdida del relato, de unas narrativas que, como mitos fundacionales de la Web3, han sido abrazados durante las subidas… pero resultan más difíciles de sostener cuando se han perdido hasta el 80 por ciento de lo invertido.