/** * A simple set of functions to check our version 1.0 update service. * * @package WordPress * @since 2.3.0 */ /** * Check WordPress version against the newest version. * * The WordPress version, PHP version, and Locale is sent. Checks against the * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) return; global $wpdb, $wp_local_package; include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $php_version = phpversion(); $current = get_site_transient( 'update_core' ); $translations = wp_get_installed_translations( 'core' ); // Invalidate the transient when $wp_version changes if ( is_object( $current ) && $wp_version != $current->version_checked ) $current = false; if ( ! is_object($current) ) { $current = new stdClass; $current->updates = array(); $current->version_checked = $wp_version; } if ( ! empty( $extra_stats ) ) $force_check = true; // Wait 60 seconds between multiple version check requests $timeout = 60; $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( ! $force_check && $time_not_changed ) return false; $locale = get_locale(); /** * Filter the locale requested for WordPress core translations. * * @since 2.8.0 * * @param string $locale Current locale. */ $locale = apply_filters( 'core_version_check_locale', $locale ); // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_core', $current ); if ( method_exists( $wpdb, 'db_version' ) ) $mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version()); else $mysql_version = 'N/A'; if ( is_multisite() ) { $user_count = get_user_count(); $num_blogs = get_blog_count(); $wp_install = network_site_url(); $multisite_enabled = 1; } else { $user_count = count_users(); $user_count = $user_count['total_users']; $multisite_enabled = 0; $num_blogs = 1; $wp_install = home_url( '/' ); } $query = array( 'version' => $wp_version, 'php' => $php_version, 'locale' => $locale, 'mysql' => $mysql_version, 'local_package' => isset( $wp_local_package ) ? $wp_local_package : '', 'blogs' => $num_blogs, 'users' => $user_count, 'multisite_enabled' => $multisite_enabled, ); $post_body = array( 'translations' => json_encode( $translations ), ); if ( is_array( $extra_stats ) ) $post_body = array_merge( $post_body, $extra_stats ); $url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $options = array( 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ), 'headers' => array( 'wp_install' => $wp_install, 'wp_blog' => home_url( '/' ) ), 'body' => $post_body, ); $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) return false; $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) return false; $offers = $body['offers']; foreach ( $offers as &$offer ) { foreach ( $offer as $offer_key => $value ) { if ( 'packages' == $offer_key ) $offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ), array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) ); elseif ( 'download' == $offer_key ) $offer['download'] = esc_url( $value ); else $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); $updates->updates = $offers; $updates->last_checked = time(); $updates->version_checked = $wp_version; if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; set_site_transient( 'update_core', $updates ); if ( ! empty( $body['ttl'] ) ) { $ttl = (int) $body['ttl']; if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { // Queue an event to re-run the update check in $ttl seconds. wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); } } // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { do_action( 'wp_maybe_auto_update' ); } } /** * Check plugin versions against the latest versions hosted on WordPress.org. * * The WordPress version, PHP version, and Locale is sent along with a list of * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) return false; // If running blog-side, bail unless we've not checked in the last 12 hours if ( !function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins(); $translations = wp_get_installed_translations( 'plugins' ); $active = get_option( 'active_plugins', array() ); $current = get_site_transient( 'update_plugins' ); if ( ! is_object($current) ) $current = new stdClass; $new_option = new stdClass; $new_option->last_checked = time(); // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-plugins.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) $plugin_changed = true; } if ( isset ( $current->response ) && is_array( $current->response ) ) { foreach ( $current->response as $plugin_file => $update_details ) { if ( ! isset($plugins[ $plugin_file ]) ) { $plugin_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $plugin_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); $to_send = compact( 'plugins', 'active' ); $locales = array( get_locale() ); /** * Filter the locales requested for plugin translations. * * @since 3.7.0 * * @param array $locales Plugin locale. Default is current locale of the site. */ $locales = apply_filters( 'plugins_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 plugins $timeout = 3 + (int) ( count( $plugins ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'plugins' => json_encode( $to_send ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), 'all' => json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); foreach ( $response['plugins'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); foreach ( $response['no_update'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); if ( is_array( $response ) ) { $new_option->response = $response['plugins']; $new_option->translations = $response['translations']; // TODO: Perhaps better to store no_update in a separate transient with an expiry? $new_option->no_update = $response['no_update']; } else { $new_option->response = array(); $new_option->translations = array(); $new_option->no_update = array(); } set_site_transient( 'update_plugins', $new_option ); } /** * Check theme versions against the latest versions hosted on WordPress.org. * * A list of all themes installed in sent to WP. Checks against the * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) return false; $installed_themes = wp_get_themes(); $translations = wp_get_installed_translations( 'themes' ); $last_update = get_site_transient( 'update_themes' ); if ( ! is_object($last_update) ) $last_update = new stdClass; $themes = $checked = $request = array(); // Put slug of current theme into request. $request['active'] = get_option( 'stylesheet' ); foreach ( $installed_themes as $theme ) { $checked[ $theme->get_stylesheet() ] = $theme->get('Version'); $themes[ $theme->get_stylesheet() ] = array( 'Name' => $theme->get('Name'), 'Title' => $theme->get('Name'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'Author URI' => $theme->get('AuthorURI'), 'Template' => $theme->get_template(), 'Stylesheet' => $theme->get_stylesheet(), ); } // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-themes.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) $theme_changed = true; } if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { foreach ( $last_update->response as $slug => $update_details ) { if ( ! isset($checked[ $slug ]) ) { $theme_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $theme_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update ); $request['themes'] = $themes; $locales = array( get_locale() ); /** * Filter the locales requested for theme translations. * * @since 3.7.0 * * @param array $locales Theme locale. Default is current locale of the site. */ $locales = apply_filters( 'themes_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 themes $timeout = 3 + (int) ( count( $themes ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'themes' => json_encode( $request ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $new_update = new stdClass; $new_update->last_checked = time(); $new_update->checked = $checked; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); if ( is_array( $response ) ) { $new_update->response = $response['themes']; $new_update->translations = $response['translations']; } set_site_transient( 'update_themes', $new_update ); } /** * Performs WordPress automatic background updates. * * @since 3.7.0 */ function wp_maybe_auto_update() { include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; $upgrader->run(); } /** * Retrieves a list of all language updates available. * * @since 3.7.0 */ function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $transient = get_site_transient( $transient ); if ( empty( $transient->translations ) ) continue; foreach ( $transient->translations as $translation ) { $updates[] = (object) $translation; } } return $updates; } /** * Collect counts and UI strings for available updates * * @since 3.3.0 * * @return array */ function wp_get_update_data() { $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); if ( $plugins = current_user_can( 'update_plugins' ) ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); } if ( $themes = current_user_can( 'update_themes' ) ) { $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); } if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') ) $counts['wordpress'] = 1; } if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) $counts['translations'] = 1; $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; $titles = array(); if ( $counts['wordpress'] ) $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); if ( $counts['plugins'] ) $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); if ( $counts['themes'] ) $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); if ( $counts['translations'] ) $titles['translations'] = __( 'Translation Updates' ); $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : ''; $update_data = array( 'counts' => $counts, 'title' => $update_title ); /** * Filter the returned array of update data for plugins, themes, and WordPress core. * * @since 3.5.0 * * @param array $update_data { * Fetched update data. * * @type array $counts An array of counts for available plugin, theme, and WordPress updates. * @type string $update_title Titles of available updates. * } * @param array $titles An array of update counts and UI strings for available updates. */ return apply_filters( 'wp_get_update_data', $update_data, $titles ); } function _maybe_update_core() { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $current = get_site_transient( 'update_core' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) && isset( $current->version_checked ) && $current->version_checked == $wp_version ) return; wp_version_check(); } /** * Check the last time plugins were run before checking plugin versions. * * This might have been backported to WordPress 2.6.1 for performance reasons. * This is used for the wp-admin to check only so often instead of every page * load. * * @since 2.7.0 * @access private */ function _maybe_update_plugins() { $current = get_site_transient( 'update_plugins' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_plugins(); } /** * Check themes versions only after a duration of time. * * This is for performance reasons to make sure that on the theme version * checker is not run on every page load. * * @since 2.7.0 * @access private */ function _maybe_update_themes() { $current = get_site_transient( 'update_themes' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_themes(); } /** * Schedule core, theme, and plugin update checks. * * @since 3.1.0 */ function wp_schedule_update_checks() { if ( !wp_next_scheduled('wp_version_check') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_version_check'); if ( !wp_next_scheduled('wp_update_plugins') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins'); if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_themes'); if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') ) wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); } if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) return; add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'load-plugins.php', 'wp_update_plugins' ); add_action( 'load-update.php', 'wp_update_plugins' ); add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks'); ¿Es violenta la deuda?SesiónDeControl.com
Arrow

¿Es violenta la deuda?


0
Yorokobu

Este artículo ha sido publicado en Yorokobu, revista sobre innovación, inspiración, tendencias, emprendedores, creatividad y las cosas positivas que ocurren en el mundo y nadie cuenta.


Escrito el 15 de septiembre de 2013 a las 17:05 | Clasificado en Economía

El antropólogo David Graeber traza una historia alternativa de la economía en su libro En Deuda (2012)

Bees (Flickr: Open source way)
Bees (Flickr: Open source way)

“Todo el mundo debe pagar sus deudas”. David Graeber se encontraba en un evento social en los jardines de la abadía de Westminster conversando con una abogada activista cuando escuchó esta frase salir de su boca. El antropólogo y conocido anarquista le acababa de explicar toda la labor que él y sus compañeros hicieron para pedir la condonación de la deuda a países pobres durante los años 90 y principios de los 2000.

Le contó cómo en Madagascar el FMI había contribuido a la muerte de 10.000 personas al exigir recortes en tratamientos antimalaria para poder hacer frente a la deuda que tenían con los países ricos. Ante estos ejemplos tremendos la única respuesta que recibió fue una cuestión de moralidad ante todo. “Si pides prestado dinero, tienes que devolverlo”, afirmó rotundamente la abogada.

“Era una respuesta cargada de sentido común pero que no tenía en cuenta un factor muy importante”, explica Graeber en su libro ‘En Deuda, una historia alternativa de la economía‘.

“¿Por dónde comenzar? Podría haber empezado explicando que estos préstamos los habían tomado dictadores no elegidos que habían puesto la mayor parte del dinero en sus bancos suizos, y pedirle que contemplara la injusticia que suponía insistir en que los préstamos se pagaran, no por el dictador, o incluso sus compinches, sino directamente sacando la comida de las bocas de niños hambrientos. O que me dijera cuántos de esos países ya habían devuelto dos o tres veces la cantidad que les habían prestado, pero que por ese milagro de los intereses compuestos no habían conseguido siquiera reducir significativamente su deuda.

Podría también decirle que había una diferencia entre refinanciar préstamos y exigir, para tal refinanciación, que los países tengan que seguir ciertas reglas del más ortodoxo mercado diseñadas en Zurich o en Washington por personas que los ciudadanos de aquellos países no habían escogido ni lo harían nunca, y que era deshonesto pedir que los países adoptaran un sistema democrático para impedir que, salga quien salga elegido, tenga control sobre la política económica de su país. O que las políticas impuestas por el FMI no funcionaban. Pero había un problema aún más básico: la asunción de que las deudas se han de pagar”.

El problema con la frase “uno ha de pagar sus deudas” es que, según Graeber, es una falacia incluso en el sistema económico actual. “Se supone que las instituciones financieras deben redirigir recursos hacia inversiones provechosas. Si un banco siempre tuviera garantizada la devolución de su dinero más intereses, sin importar lo que hiciera, el sistema no funcionaría. (…) Imagina que hubiera alguna ley que les garantizara recuperar su dinero sin importar qué pasara, incluso si ello significara, no sé, vender a mi hija como esclava o mis órganos para transplantes.

Bueno, en tal caso, ¿Por qué no? ¿Para qué molestarse en esperar que aparezca alguien con un plan viable para fundar una lavandería o algo similar? Básicamente ésa es la situación que creó el FMI a escala mundial… Y es la razón de que todos esos bancos estuvieran deseosos de prestar miles de millones de dólares a esos criminales, en primer lugar”.

En términos generales esta es la estructura de préstamos que, según Graeber, se ha creado a escala internacional, donde el FMI actúa como organismo para recuperar ese dinero sin importar las condiciones en el que fue prestado. “El incentivo para realizar préstamos inteligentes desaparece por completo”, dijo el antropólogo en una ponencia realizada en la sede de Google sobre su libro.

En el caso de Madagascar, Graeber vivió en el país dos años y pudo ver de primera mano los efectos destructivos que estas políticas pueden tener sobre los ciudadanos. Unos meses antes de su llegada murieron 10.000 personas (la mitad, niños) por un brote de malaria tras muchos años en los que se había logrado erradicar la enfermedad. “El problema era que costaba dinero mantener el programa de erradicación del mosquito, pues exigía pruebas periódicas para comprobar que el mosquito no comenzaba a reproducirse de nuevo, así como campañas de fumigación si se descubría que lo hacía.

No mucho dinero, pero debido a los programas de austeridad impuestos por el FMI, el gobierno había tenido que recortar el programa de monitorización. Murieron diez mil personas. Me encontré con madres llorando por la muerte de sus hijos. Uno puede pensar que es difícil argumentar que la pérdida de diez mil vidas humanas está realmente justificada para asegurarse de que Citibank no tuviera pérdidas por un préstamo irresponsable que, de todas maneras, ni siquiera era importante en su balance final. (…) Al fin y al cabo, debían el dinero, y uno ha de pagar su deudas”.

El poder de la deuda como concepto, según Graeber, es tan flexible que muchos ni siquiera sabemos su significado real. Para los profesionales del mundo financiero esta situación les beneficia. La ignorancia ayuda a operar con impunidad, de acuerdo con el conocido anarquista. “Si algo enseña la historia, es que no hay mejor manera de justificar relaciones basadas en la violencia, para hacerlas parecer éticas, que darles un nuevo marco en el lenguaje de la deuda, sobre todo porque inmediatamente hace parecer que es la víctima la que hecho algo mal.

Los mafiosos comprenden perfectamente esto. También los comandantes de los ejércitos invasores. Durante miles de años los violentos han sabido convencer a sus víctimas de que les deben algo. Como mínimo, que ‘les deben sus vidas’, una frase hecha, por no haberlos matado”.

Para ilustrar su teoría, Graeber compara la diferencia entre el tratamiento que se da a las agresiones militares en comparación con la deuda. “Alemania tuvo que pagar enormes indemnizaciones tras la Primera Guerra Mundial, e Irak aún está pagando a Kuwait por la invasión militar de Saddam Hussein en 1990. Sin embargo, la deuda del Tercer Mundo, la de países como Madagascar, Bolivia y Filipinas, parece funcionar de manera exactamente opuesta.

Los países deudores del Tercer Mundo son casi exclusivamente naciones que en algún momento fueron atacadas y conquistadas por las potencias europeas, a menudo las potencias a las que deben el dinero. En 1895, por ejemplo, Francia invadió Madagascar, depuso el gobierno de la entonces reina Ranavalona III y declaró el país colonia francesa. Una de las primeras cosas que hizo el general Gallieni tras la ‘pacificación’, como les gustaba llamarla, fue imponer pesados impuestos a la población malgache, en parte para poder pagar los gastos generados por haber sido invadidos, pero también dado que las colonias tenían que ser autosuficientes, para sufragar los costes de la construcción de vías férreas, carreteras, puentes, plantaciones y demás infraestructuras que el régimen francés deseaba construir. A los contribuyentes malgaches nunca se les preguntó si lo querían (…) ni se les permitió opinar acerca de cómo y dónde se construían.

Al contrario: durante el siguiente medio siglo, la policía y el ejército francés masacraron a un buen número de malgaches que se opusieron con demasiada fuerza al acuerdo. (…) Madagascar nunca ha causado un daño comparable a Francia. Pese a ello, desde el principio se de dijo a los malgaches que debían dinero a Francia, y hasta hoy en día se mantiene a los malgaches en deuda con Francia, y el resto del mundo acepta este acuerdo como algo justo”.

En el caso de Haití, la situación fue aún más sangrante. “Era una nación fundada por antiguos esclavos de plantaciones que cometieron la temeridad no solo de rebelarse, entre grandes declaraciones de derechos y libertades individuales, sino también de derrotar a los ejércitos que Napoleón envió para devolverlos a la esclavitud. Francia clamó de inmediato que la nueva república le debía 150 millones de francos en daños por las plantaciones expropiadas, así como los gastos de las fallidas expediciones militares, y todas las demás naciones, incluido Estados Unidos, acordaron imponer un embargo al país hasta que pagase la deuda. La suma era deliberadamente imposible (equivalente a unos 18.000 millones de dólares actuales) y el posterior embargo consiguió que el nombre de Haití se convirtiera en sinónimo de deuda, pobreza y miseria humana desde entonces”, relata Graeber en el primer capítulo del libro.

Cuando eres un país rico las reglas cambian por completo. De hecho, Estados Unidos es,con diferencia, el país con más deuda externa. Supera los 16 billones de dólares. La mayor parte de ese dinero está en bonos del tesoro de inversores institucionales como Alemania, Japón, Corea del Sur, Taiwán y Tailandia. Países que son “de facto, protectorados estadounidenses cubiertos de bases militares americanas llenas de armas y equipamiento pagados con ese mismo gasto deficitario. Esto ha cambiado un poco ahora que China ha entrado en el juego, pero no demasiado: incluso China se da cuenta de que, al poseer tantos bonos del tesoro estadounidenses, se ha puesto a merced de los intereses de Estados Unidos, y no al revés”.

A pesar de que la deuda de Estados Unidos es mucho mayor que todos los países pobres juntos existe un sistema dual. “El deudor de lujo (EE UU) y Madagascar el deudor pobre” a quien aseguran “que sus problemas se deben a su propia irresponsabilidad”.

Si desapareciera la supremacía militar de Estados Unidos, ¿se mantendrían las mismas condiciones? Eso es lo que se pregunta Graeber que compara la situación a la de un mafioso. “¿Qué diferencia hay entre un gánster que desenfunda un arma y te exige mil dólares como ‘protección’ y el mismo gánster desenfundando un arma y exigiendo que le des un ‘préstamo’ de mil dólares?”.

La deuda ha tenido tanta influencia sobre el desenlace de la historia en los últimos 5.000 años que, según el antropólogo estadounidense, “durante miles de años, la lucha entre ricos y pobres ha tomado en gran parte forma de conflictos entre acreedores y deudores, de discusiones acerca de las ventajas e inconvenientes del pago de intereses, de la servidumbre por deudas, condonaciones, restituciones, recuperaciones, confiscación de ganado, apropiaciones de viñedos y venta de los hijos del deudor como esclavos”.

A pesar de la moralidad en torno al concepto de pagar la deuda, Graeber no encontró ninguna representación positiva de los prestamistas a lo largo de la historia en sus investigaciones. “Solo ha habido dos maneras eficaces de que el prestamista se sacudiera de encima el oprobio: pasar la responsabilidad a una tercera persona o insistir en que el deudor es incluso peor”.

Sobre posibles soluciones, Graeber se pronuncia poco. Su objetivo está más centrado en desmitificar la historia de la deuda. Pero si ofrece una idea al final del libro. El activista propone un jubileo de la deuda, que implicaría la cancelación masiva que permita al sistema empezar de nuevo inspirado en costumbres antiguas de Babilonia, en donde cada cierto tiempo se hacía esta acción. De hecho la palabra ‘freedom’, originariamente, significaba volver a la madre en referencia a la liberación de esclavos de la deuda durante los jubileos periódicos.

“No es algo disimilar al rescate que se hizo a los bancos tras el derrumbe económico de 2008 y que se negó a los ciudadanos que pagaron ese rescate con sus impuestos. Ellos pagaron las facturas pero muchos de ellos fueron despojados de sus casas por los bancos”, dijo en su ponencia en Google.

Fuente: ¿Es violenta la deuda?

Autor: Marcus Hurst

Comparte tu punto de vista

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>