/** * 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'); El niño pobre que desarrolló teléfonos móviles hace un sigloSesiónDeControl.com
Arrow

Edison, Tesla… y Mónico


2
Materia

Este artículo ha sido escrito en Materia, web de noticias de ciencia, tecnología, salud y medio ambiente, que comparte su contenido para ser republicado.


Escrito el 12 de junio de 2013 a las 18:05 | Clasificado en Ciencia

Un libro rescata la fabulosa historia de Mónico Sánchez, un español nacido en 1880 en un pueblo miserable, que emigró a Nueva York y acabó inventando un aparato portátil de rayos X y trabajando en la telefonía sin hilos.

Mónico Sánchez utilizando su máquina portátil de rayos X. (Electro Therapy Museum)
Mónico Sánchez utilizando su máquina portátil de rayos X. (Electro Therapy Museum)

El 12 de octubre de 1904, un chaval español de 23 años se subió a un barco en Cádiz con 60 dólares en el bolsillo y destino a Nueva York. Su padre hacía tejas con barro y su madre lavaba ropa por encargo en un pilón a cambio de unas monedas. El chico se había criado descalzo en un pueblo en el que tres de cada cuatro personas eran analfabetas, ganándose la vida haciendo recados.

Sin embargo, tan sólo nueve años después, regresó de EEUU con un millón de dólares en el bolsillo, después de participar en la creación de los primeros teléfonos móviles, hace más de 100 años, y de inventar un aparato de rayos X portátil que salvó a más de un soldado en la Primera Guerra Mundial.

Aquel hombre era Mónico Sánchez Moreno (1880-1961). Su historia es tan fascinante que se ha convertido en un ejemplo de que “en condiciones más adversas que las actuales, es posible no sólo salir adelante, sino llevar a cabo proezas admirables”, en palabras del físico Manuel Lozano Leyva, que acaba de publicar un libro sobre su vida: ‘El gran Mónico’.

Mónico Sánchez llegó a Nueva York un año después de que Thomas Edison, el padre de la bombilla, hubiera electrocutado a una elefanta delante de 1.500 personas. Y eso era precisamente lo que iba buscando el joven español: la electricidad. Mónico se había criado en Piedrabuena (Ciudad Real), “un pueblo grande pero de mala muerte”, en palabras de su biógrafo oficioso. El 75% de sus habitantes eran analfabetos a comienzos de siglo.

Era un buen reflejo de la España de la época: en 1901, en todo el país había poco más de 3.000 jóvenes estudiando para ser ingenieros, pero 11.000 lo hacían para ser curas. Sin embargo, Mónico, espoleado intelectualmente por un viejo profesor de la escuela pública de su pueblo, decidió coger todos los ahorros que había ganado, comprarse un traje y emigrar a Madrid para estudiar ingeniería eléctrica. Ni siquiera tenía el bachiller elemental.

Tranvías sin mulas

El joven castellano-manchego llegó a la capital en 1901, en plena implantación del alumbrado eléctrico y de la electrificación del tranvía. “Mónico presenció por las calles de Madrid vagones tirados a sangre, como se llamaba entonces a la tracción animal, con los primeros que mágicamente se movían por sí mismos”, narra Lozano Leyva, catedrático de Física Atómica, Molecular y Nuclear de la Universidad de Sevilla y miembro del Consejo Editorial de Materia. Mónico estaba embelesado con la electricidad, pero su anhelada escuela de ingenieros industriales de Madrid estaba cerrada por huelgas estudiantiles.

Entonces, tomó una decisión insólita para un pueblerino sin oficio: decidió apuntarse a un curso de electrotecnia a distancia, impartido desde Londres por el ingeniero Joseph Wetzler. Era en inglés. Y Mónico no sabía ni una palabra de inglés. Pero “debió de seguir el curso por correspondencia de una manera tan rigurosa que el mismísimo Joseph Wetzler se puso en contacto con él”, cuenta ‘El Gran Mónico’, editado por Debate.

Wetzler, que se movía en los entornos de Thomas Edison, recomendó al joven español para una plaza en una empresa de Nueva York. En apenas tres años de esforzadísimo estudio destrozando diccionarios, Mónico Sánchez había saltado de un pueblo de cabras perdido en La Mancha a la que se estaba convirtiendo en la capital cultural del mundo.

Lozano Leyva retrata con maestría la “efervescencia inaudita” del Nueva York que se encontró el castellano-manchego en 1904. Inmigrantes procedentes de todo el mundo llegaban a la ciudad para construir sus primeros rascacielos, pero muchos no se encontraban con el sueño americano. “En el río Hudson nunca aparecieron más cadáveres de suicidas que en aquellos años”, recalca el físico.

La guerra de las corrientes

Mónico empezó a trabajar de ayudante de delineante, pero pronto se matriculó en el Instituto de Ingenieros Electricistas, un centro de formación profesional. Y, pronto, cumplió su deseo de ir a la universidad, la de Columbia, para un curso de electrotecnia de unos pocos meses de duración.

Era la época de la guerra de las corrientes. Las centrales eléctricas de Nueva York quemaban carbón y petróleo a todo gas. La energía resultante movía dinamos que producían la electricidad. El problema era distribuirla hasta los tranvías y las bombillas de las casas.

Edison, propietario de la compañía General Electric, defendía la corriente eléctrica continua, un fluir perpetuo que implicaba grandes pérdidas en forma de calor por la resistencia de los cables. Pero, entonces, surgió otra figura espectacular de la ciencia, el ingeniero serbio Nikola Tesla, en la empresa Westinghouse. El científico europeo propuso utilizar una corriente alterna, en la que el chorro varía cíclicamente. La solución era magistral, porque minimizaba las pérdidas.

Sin embargo, Edison no aceptó las evidencias e inició una ofensiva sosteniendo que la corriente alterna era un peligro para los ciudadanos. “Se metió en una dinámica de lo más espectacular y siniestra: electrocutar animales en público con corriente alterna, sobre todo perros y gatos. Llevó el asunto al extremo con la desdichada elefanta Topsy”, relata Lozano Leyva.

Tesla, mientras, se paseaba por teatros haciendo pasar la corriente alterna por su cuerpo en medio de una nube de relámpagos, con corcho bajo sus pies, para mostrar que no era para tanto. “¿Fue Mónico testigo de algunas de las crueldades de Edison o de los espectáculos de Tesla? Sin duda, porque si atraían a todo el mundo, quien no podía faltar a ellos era alguien que llevaba la electricidad en las venas, habiendo sido su pasión desde la adolescencia”, opina el físico.

Máquinas para la Gran Guerra

Y en plena guerra de las corrientes, Mónico Sánchez fichó como ingeniero de la Van Houten and Ten Broeck Company, dedicada a la aplicación de la electricidad en los hospitales. Allí, aplicando algunos avances de Tesla, consiguió su gran invento: un aparato de rayos X portátil. Apenas pesaba 10 kilogramos, frente a los 400 de los equipos tradicionales. Era una máquina ideal para la Gran Guerra que estaba a punto de estallar. Francia compró 60 unidades para sus ambulancias de campaña.

El joven de Piedrabuena se había ganado el respeto de los ingenieros de Nueva York. Uno de ellos era Frederick Collins, volcado en la telefonía sin hilos o lo que es casi lo mismo: en los teléfonos móviles. Sus aparatos podían comunicarse a más de 100 kilómetros, sin cables. El problema es que su teléfono, con un micrófono de carbón, “se calentaba poco a poco y terminaba ardiendo al cuarto de hora o así de estar hablando sin interrupción”, narra Lozano Leyva.

La Collins Wireless Telephone Company contrató a Mónico Sánchez como ingeniero jefe, con la intención de vender su aparato portátil de rayos X, que pasó a bautizarse The Collins Sánchez Portable Apparatus. Collins ofreció 500.000 dólares al castellano-manchego por su invento.

“Ya puede entreverse la insensatez que suponía poner un aparato de rayos X al alcance de todo el mundo sin reparar para nada en la posible peligrosidad”, escribe en El gran Mónico el catedrático español. Muchos de los médicos que fueron pioneros en el uso de los rayos X acabaron con deformaciones en las manos o incluso muriendo por leucemia.

El sueño duró muy poco. La empresa de Collins comenzó una gran campaña de propaganda para vender acciones, sugiriendo que la telefonía móvil en coches, trenes y barcos ya era una realidad. Cuatro ejecutivos, incluido Collins, acabaron en la cárcel. En su sentencia se aludía a un presunto fraude en sus demostraciones en lugares públicos, limitadas a conversaciones breves para que los teléfonos no echaran chispas. Cuando estalló el escándalo, Mónico ya había abandonado la empresa.

Al lado de General Electric

De aquellos formidables shows queda una fotografía de 1909: en ella aparece Mónico Sánchez mostrando su aparato de rayos X en un estand de la III Feria de la Electricidad, celebrada en el Madison Square Garden de Nueva York. A su lado aparecen, nada más y nada menos, los estands de la General Electric de Thomas Edison y de la Westinghouse de Nikola Tesla.

En 1912, con 32 años y realmente rico, el hombre que iba para analfabeto regresó a España convertido en un emprendedor millonario. Y, entonces, se le ocurrió “un proyecto inviable y extravagante”, como lo define Lozano Leyva: construir un centro de alta tecnología en su pueblo castellano-manchego y fabricar allí sus aparatos portátiles de rayos X.

En 1913 ya estaba en pie el Laboratorio Eléctrico Sánchez. El problema es que en Piedrabuena no había electricidad, pero ese detalle no iba a detener al hombre que se puso a estudiar en inglés sin saber inglés. Montó una central eléctrica en su pueblo, abastecida por el carbón llegado en carros tirados por mulas. Y casi todo Piedrabuena acabó teniendo luz eléctrica, previo pago.

El ingeniero de telecomunicaciones Juan Pablo Rozas, profesor de la Universidad de Castilla-La Mancha, es el mayor experto en la vida y obra de Mónico Sánchez. “Era un hombre de la electricidad formado en EEUU y, de repente, se trasplantaba a Piedrabuena. Los mandamases de allí le odiaban por ser demasiado moderno y los pobres le odiaban por ser rico”, resume.

Mónico celebró la caída de la Monarquía y la llegada de la Segunda República en 1931, pero cuando comenzó la Guerra Civil no supo dónde situarse. Primero, los milicianos incautaron su laboratorio. Un día, incluso, fueron a buscarlo con una excusa peregrina y, como no estaba, se llevaron a su segundo. No lo volvieron a ver con vida. Tras la guerra, sin embargo, el jefe de Falange en la región acusó a Sánchez del asesinato, aunque jamás fue procesado.

“Un hombre de progreso”

“Mónico Sánchez volvió de Nueva York y quiso elevar el nivel de vida de su pueblo, era un hombre de progreso”, explica Rozas. “En España necesitamos muchos Mónicos”, sentencia.

Muchos de los aparatos que fabricó el inventor en su pueblo a partir de 1913 se exponen hoy en el Museo Nacional de Ciencia y Tecnología, con sedes en A Coruña y Madrid. “Es complicado encontrar a alguien innovador, atrevido y osado, capaz de salir de un entorno rural, de hacerse ingeniero sin saber inglés y de convertirse en un emprendedor. Mónico Sánchez fue un personaje muy singular”, resume la física Rosa Martín Latorre, que fue comisaria de una exposición en el museo sobre el inventor castellano-manchego.

Mónico murió en 1961, cuando su nieta Isabel Estébanez Sánchez tenía 10 años. “El final de la fábrica de mi abuelo fue bastante penoso, porque dejó de vender y ya no tenía energía. Tenía ciertas dificultades económicas, pero montó un cine en Piedrabuena”, recuerda su nieta, física y profesora. Ella tiene un grupo de alumnos a los que da clases a distancia, como estudió el gran Mónico.

Fuente: El niño pobre que desarrolló teléfonos móviles hace un siglo

Autor: Manuel Ansede

Los votantes dicen...
  1. Miguel Major dice:

    El artículo es interesante y muy oportuno; pero tengo dos observaciones:
    A) a los 23 años ya no era un chaval (y menos en aquella época)
    B) la referencia a los 11000 estudiantes seminaristas si no se explica, resulta maliciosa. Y la explicación es fácil: era la manera de salir de la ignorancia de forma gratuita (totalmente) para muchos. El ejército y la iglesia era, para los más osados o los más listos la verdadera liberación del almocafre.
    Esto hace más meritoria la elección de M. Sánchez.

  2. sotillo dice:

    El ingeniero de telecomunicaciones Juan Pablo Rozas,
    profesor de la Universidad de Castilla-La Mancha, es el mayor experto
    en la vida y obra de Mónico Sánchez. “Era un hombre de la electricidad
    formado en EEUU y, de repente, se trasplantaba a Piedrabuena. Los
    mandamases de allí le odiaban por ser demasiado moderno y los pobres le
    odiaban por ser rico”, resume. Pues estaremso en el siglo XXI pero sigue lo mismo

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>