Autonomía digital y tecnológica

Código e ideas para una internet distribuida

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


Se puede definir a la pendiente como la inclinación de un plano o de una superficie sobre un plano o superficie horizontal.

Esta pendiente se puede expresar o bien en tanto por ciento (%), por ejemplo, una pendiente del 15 %, o bien en grados (º) a través del ángulo de inclinación de la pendiente.

Para calcular la pendiente de una rampa, de un terreno o de una cubierta necesitamos conocer dos datos: la distancia de la pendiente y la altura de la pendiente.

Conocidos estos dos datos, habría que aplicar la siguiente formula para calcular la pendiente en tanto por ciento:

Pendiente (%) = (altura / distancia) x 100

Si lo que necesitamos saber es el ángulo de la pendiente, tenemos que tirar de la función arcotangente (arctg) que es la inversa de la tangente de un ángulo, por lo que habría que aplicar la siguiente formula:

Pendiente (º) = arctg (altura/distancia)

L’exonération est accordée dans la limite de 31 865 € tous les quinze ans.

Ces dons peuvent être effectués par chèque, par virement, par mandat ou par remise d’espèces.

Chaque enfant peut ainsi recevoir, en exonération de droits, jusqu’à 31 865 € de chacun de ses parents, grands-parents et arrière-grands-parents.

Exemple : un enfant peut recevoir en exonération de droits 63 730 € (31 865 x 2) de ses parents et 127 460 € (31 865 x 4) de ses quatre grands-parents tous les 15 ans.

L’exonération est limitée à 31 865 € versés en une ou plusieurs fois sur une période de 15 ans par un même donateur à un même bénéficiaire.

À noter : cette exonération peut se cumuler avec les abattements personnels accordés en fonction du lien de parenté.

La déclaration du don familial de sommes d’argent est formalisée dans le mois qui suit la date du don par déclaration en ligne via votre espace personnel sécurisé, rubrique Déclarer > Vous avez reçu un don ? Déclarez-le. Vous pouvez également déposer un formulaire n° 2735, en double exemplaire au service chargé de l’enregistrement du domicile du donataire.

Attention : cette condition est d’application stricte, si vous dépassez ce délai, vous perdez le bénéfice de cette exonération.

Exemple :

Un père de 65 ans donne pour la première fois à son enfant majeur une somme d’argent de 80 000 €.

La somme est exonérée à hauteur de 31 865 € au titre des dons familiaux de sommes d’argent.

Le surplus de 48 135 € bénéficie de l’abattement personnel qui est de 100 000 € pour un enfant.

Ainsi, aucun droit n’est à acquitter sur la totalité du don de 80 000 €.

Si la déclaration est effectuée en ligne, la saisie est simplifiée. L’application des exonérations et abattements, ainsi que le calcul des droits sont automatiques.

En cas de déclaration par le biais du formulaire 2735, il faudra déclarer la totalité de la somme donnée, au cadre V :

  • 1ère ligne : le montant du don familial de sommes d’argent exonéré pour  31 865 € ;
  • 2ème ligne : le surplus, soit 48 135 €.

I came across this use-case where we had to use a specific custom font but it was only available in .otf. However, we want to support multiple formats to ensure even deprecated browsers can load the font. Otf has a global coverage of 97.89% but we didn’t want to take any chances of the font not loading as it’s a crucial feature in our app.

I wanted to convert the font to support the following browsers:

  • woff2 – Latest browsers
  • woff – Modern browsers
  • ttf – Apple and mobile OS
  • svg – older safari and ios support
  • eot – older IE support

Nostr takes another stab at a decentralised social network after Mastodon. But unlike Mastodon where user identities are attached to servers and servers have a degree of control over registered users, Nostr is a lot more open in that regard. There are two components at play on Nostr: clients and relays. Each user runs a client, while anyone can run a relay. Clients can publish data (i.e. create posts) on any number of relays and fetch data from other relays.

Each user is assigned a public key. When a user follows someone, the user’s client fetches posts associated with that someone’s public key from the associated relay. This process is repeated on start-up, with the client querying data from all relays it knows for all users it follows. The fetched data is then displayed to the user chronologically to make up a feed.

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.

The event that first suggested the tyranny of small decisions to Kahn was the withdrawal of passenger railway services in Ithaca, New York. The railway was the only reliable way to get in and out of Ithaca. It provided services regardless of conditions, in fair weather and foul, during peak seasons and off-peak seasons. The local airline and bus company skimmed the traffic when conditions were favourable, leaving the trains to fill in when conditions were difficult. The railway service was eventually withdrawn, because the collective individual decisions made by travellers did not provide the railway with the revenue it needed to cover its incremental costs. According to Kahn, this suggests a hypothetical economic test of whether the service should have been withdrawn.

The fact remains that each selection of x over y constitutes also a vote for eliminating the possibility thereafter of choosing y.

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 :

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

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

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

You can use single_template filter hook.

function load_movie_template( $template ) {
    global $post;

    if ( 'movie' === $post->post_type && locate_template( array( 'single-movie.php' ) ) !== $template ) {
        /*
         * This is a 'movie' post
         * AND a 'single movie template' is not found on
         * theme or child theme directories, so load it
         * from our plugin directory.
         */
        return plugin_dir_path( __FILE__ ) . 'single-movie.php';
    }

    return $template;
}

add_filter( 'single_template', 'load_movie_template' );

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.