/* * Plugin Name: APCu Object Cache * Description: APCu backend for the WP Object Cache. * Based on Plugin named APCu Object Cache Backend * Plugin URI: https://wordpress.org/plugins/apcu/ * Author: Pierre Schmitz * Author URI: https://pierre-schmitz.com/ * Plugin URI: https://wordpress.org/plugins/apcu/ * * * @Authors James Dugger, Jonathan Bardo * @copyright 2017 GoDaddy Inc. 14455 N. Hayden Road Scottsdale, Arizona */ $oc_logged_in = false; foreach ( $_COOKIE as $k => $v ) { if ( preg_match( '/^comment_author|wordpress_logged_in_[a-f0-9]+|woocommerce_items_in_cart|PHPSESSID_|edd_wp_session|edd_items_in_cartcc_cart_key|ccm_token/', $k ) ) { $oc_logged_in = true; break; } } $oc_blocked_page = ( defined( 'WP_ADMIN' ) || defined( 'DOING_AJAX' ) || defined( 'XMLRPC_REQUEST' ) || 'wp-login.php' === basename( $_SERVER['SCRIPT_FILENAME'] ) ); function wpaas_is_using_apcu() { return version_compare( PHP_VERSION, '5.6.0', '>=' ) && function_exists( 'apcu_fetch' ); } if ( 'cli' !== php_sapi_name() && ! $oc_logged_in && ! $oc_blocked_page && wpaas_is_using_apcu() ) : /** * Save the transients to the DB. The explanation is a bit too long * for code. The tl;dr of it is that we don't have a single 'fast cache' * source yet (like memcached) and so some long lived items like transients * are still best cached in the db and then brought back into APC * * @param string $transient * @param mixed $value * @param int $expire * @param boolean $site = false * * @return bool */ function wpaas_save_transient( $transient, $value, $expire, $site = false ) { global $wp_object_cache, $wpdb; // The 'special' transient option names $transient_timeout = ( $site ? '_site' : '' ) . '_transient_timeout_' . $transient; $transient = ( $site ? '_site' : '' ) . '_transient_' . $transient; // Cap expiration at 24 hours to avoid littering the DB if ( $expire == 0 ) { $expire = 24 * 60 * 60; } // Save to object cache $wp_object_cache->set( $transient, $value, 'options', $expire ); $wp_object_cache->set( $transient_timeout, time() + $expire, 'options', $expire ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); $alloptions[ $transient ] = $value; $alloptions[ $transient_timeout ] = time() + $expire; $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); // Use the normal update option logic if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); if ( $site && is_multisite() ) { $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->sitemeta}` ( `option_name`, `option_value`, `autoload` ) VALUES ( %s, UNIX_TIMESTAMP( NOW() ) + %d, 'yes' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient_timeout, $expire ) ); $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->sitemeta}` ( `option_name`, `option_value`, `autoload` ) VALUES ( %s, %s, 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient, maybe_serialize( $value ) ) ); } else { $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( %s, UNIX_TIMESTAMP( NOW() ) + %d, 'yes' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient_timeout, $expire ) ); $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( %s, %s, 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient, maybe_serialize( $value ) ) ); } $wpdb->suppress_errors( $flag ); } return true; } function wpaas_prune_transients() { global $wpdb; if ( ! empty( $wpdb ) && $wpdb instanceof wpdb && function_exists( 'is_main_site' ) && function_exists( 'is_main_network' ) ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); // Lifted straight from schema.php // Deletes all expired transients. // The multi-table delete syntax is used to delete the transient record from table a, // and the corresponding transient_timeout record from table b. $time = time(); $wpdb->query( "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE '\_transient\_%' AND a.option_name NOT LIKE '\_transient\_timeout\_%' AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) ) AND b.option_value < $time" ); if ( is_main_site() && is_main_network() ) { $wpdb->query( "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE '\_site\_transient\_%' AND a.option_name NOT LIKE '\_site\_transient\_timeout\_%' AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) ) AND b.option_value < $time" ); } $wpdb->suppress_errors( $flag ); } } /** * If another cache was flushed or updated, sync across all servers / processes using * the database as the authority. This uses the database as the authority for timestamps * as well to avoid drift between servers. * @return void */ function wpaas_init_sync_cache() { global $wpdb; if ( empty( $wpdb ) || ! ( $wpdb instanceof wpdb ) ) { return; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( "SELECT option_name, option_value FROM `{$wpdb->options}` WHERE option_name = 'gd_system_last_cache_flush' UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( empty( $result ) ) { return; } $master_flush = false; foreach ( $result as $row ) { switch ( $row['option_name'] ) { case 'current_time' : $current_time = $row['option_value']; break; case 'gd_system_last_cache_flush' : $master_flush = $row['option_value']; break; } } $local_flush = wp_cache_get( 'gd_system_last_cache_flush' ); if ( false === $local_flush || $local_flush < $master_flush ) { wp_cache_flush( true ); wp_cache_set( 'gd_system_last_cache_flush', $current_time ); } } /** * Start default implementation of object cache */ if ( ! defined( 'WP_APC_KEY_SALT' ) ) { define( 'WP_APC_KEY_SALT', '' ); } function wp_cache_add( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; if ( 'transient' == $group ) { wpaas_save_transient( $key, $data, $expire ); return $wp_object_cache->add( "_transient_$key", $data, 'options', $expire ); } elseif ( 'site-transient' == $group ) { wpaas_save_transient( $key, $data, $expire, true ); return $wp_object_cache->add( "_site_transient_$key", $data, 'site-options', $expire ); } else { return $wp_object_cache->add( $key, $data, $group, $expire ); } } function wp_cache_incr( $key, $n = 1, $group = '' ) { global $wp_object_cache; return $wp_object_cache->incr2( $key, $n, $group ); } function wp_cache_decr( $key, $n = 1, $group = '' ) { global $wp_object_cache; return $wp_object_cache->decr( $key, $n, $group ); } function wp_cache_close() { return true; } function wp_cache_delete( $key, $group = '' ) { global $wp_object_cache, $wpdb; if ( 'transient' == $group ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( $wpdb->prepare( "DELETE FROM `{$wpdb->prefix}options` WHERE option_name IN ( %s, %s );", "_transient_{$key}", "_transient_timeout_{$key}" ) ); $wpdb->suppress_errors( $flag ); } $wp_object_cache->delete( "_transient_timeout_$key", 'options' ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); unset( $alloptions["_transient_$key"] ); unset( $alloptions["_transient_timeout_$key"] ); $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); return $wp_object_cache->delete( "_transient_$key", 'options' ); } elseif ( 'site-transient' == $group ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $table = $wpdb->options; if ( is_multisite() ) { $table = $wpdb->sitemeta; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( $wpdb->prepare( "DELETE FROM `{$table}` WHERE option_name IN ( %s, %s );", "_transient_{$key}", "_transient_timeout_{$key}" ) ); $wpdb->suppress_errors( $flag ); } $wp_object_cache->delete( "_transient_timeout_$key", 'site-options' ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); unset( $alloptions["_site_transient_$key"] ); unset( $alloptions["_site_transient_timeout_$key"] ); $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); return $wp_object_cache->delete( "_site_transient_$key", 'site-options' ); } return $wp_object_cache->delete( $key, $group ); } function wp_cache_flush( $local_flush = false ) { global $wp_object_cache, $wpdb; if ( ! $local_flush ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( 'gd_system_last_cache_flush', UNIX_TIMESTAMP( NOW() ), 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );" ); $wpdb->suppress_errors( $flag ); } } return $wp_object_cache->flush(); } function wp_cache_get( $key, $group = '', $force = false ) { global $wp_object_cache, $wpdb; if ( 'transient' == $group ) { $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); if ( isset( $alloptions["_transient_$key"] ) && isset( $alloptions["_transient_timeout_$key"] ) && $alloptions["_transient_timeout_$key"] > time() ) { return maybe_unserialize( $alloptions["_transient_$key"] ); } $transient = $wp_object_cache->get( "_transient_$key", 'options', $force ); $timeout = $wp_object_cache->get( "_transient_timeout_$key", 'options', $force ); if ( false !== $transient && ! empty( $timeout ) && $timeout > time() ) { return maybe_unserialize( $transient ); } if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( $wpdb->prepare( "SELECT option_name, option_value FROM `{$wpdb->options}` WHERE option_name IN ( %s, %s ) UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", "_transient_{$key}", "_transient_timeout_{$key}" ), ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( ! empty( $result ) ) { $transient = false; $timeout = false; $current_time = time(); foreach ( $result as $row ) { switch ( $row['option_name'] ) { case "_transient_$key" : $transient = $row['option_value']; break; case "_transient_timeout_$key" : $timeout = $row['option_value']; break; case 'current_time' : $current_time = $row['option_value']; break; } } if ( false !== $transient && ! empty( $timeout ) && $timeout > $current_time ) { return maybe_unserialize( $transient ); } } } return false; } elseif ( 'site-transient' == $group ) { $transient = $wp_object_cache->get( "_site_transient_$key", 'options', $force ); $timeout = $wp_object_cache->get( "_site_transient_timeout_$key", 'options', $force ); if ( false !== $transient && ! empty( $timeout ) && $timeout > time() ) { return maybe_unserialize( $transient ); } if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $table = $wpdb->options; if ( is_multisite() ) { $table = $wpdb->sitemeta; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( $wpdb->prepare( "SELECT option_name, option_value FROM `{$table}` WHERE option_name IN ( %s, %s ) UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", "_site_transient_{$key}", "_site_transient_timeout_{$key}" ), ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( ! empty( $result ) ) { $transient = false; $timeout = false; $current_time = time(); foreach ( $result as $row ) { switch ( $row['option_name'] ) { case "_site_transient_$key" : $transient = $row['option_value']; break; case "_site_transient_timeout_$key" : $timeout = $row['option_value']; break; case 'current_time' : $current_time = $row['option_value']; break; } } if ( false !== $transient && ! empty( $timeout ) && $timeout > $current_time ) { return maybe_unserialize( $transient ); } } } return false; } else { return $wp_object_cache->get( $key, $group, $force ); } } function wp_cache_init() { global $wp_object_cache; if ( mt_rand( 1, 100 ) == 42 ) { wpaas_prune_transients(); } add_action( 'muplugins_loaded', 'wpaas_init_sync_cache' ); $wp_object_cache = new APCu_Object_Cache(); } function wp_cache_replace( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; return $wp_object_cache->replace( $key, $data, $group, $expire ); } function wp_cache_set( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; if ( defined( 'WP_INSTALLING' ) == false ) { if ( 'transient' == $group ) { return wpaas_save_transient( $key, $data, $expire ); } elseif ( 'site-transient' == $group ) { return wpaas_save_transient( $key, $data, $expire, true ); } else { return $wp_object_cache->set( $key, $data, $group, $expire ); } } else { return $wp_object_cache->delete( $key, $group ); } } function wp_cache_switch_to_blog( $blog_id ) { global $wp_object_cache; return $wp_object_cache->switch_to_blog( $blog_id ); } function wp_cache_add_global_groups( $groups ) { global $wp_object_cache; $wp_object_cache->add_global_groups( $groups ); } function wp_cache_add_non_persistent_groups( $groups ) { global $wp_object_cache; $wp_object_cache->add_non_persistent_groups( $groups ); } class GD_APCu_Object_Cache { private $prefix = ''; private $local_cache = array(); private $global_groups = array(); private $non_persistent_groups = array(); private $multisite = false; private $blog_prefix = ''; public function __construct() { global $table_prefix; $this->multisite = is_multisite(); $this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : ''; $this->prefix = DB_HOST . '.' . DB_NAME . '.' . $table_prefix; } private function get_group( $group ) { return empty( $group ) ? 'default' : $group; } private function get_key( $group, $key ) { if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) { return $this->prefix . '.' . $group . '.' . $this->blog_prefix . ':' . $key; } else { return $this->prefix . '.' . $group . '.' . $key; } } public function add( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( function_exists( 'wp_suspend_cache_addition' ) && wp_suspend_cache_addition() ) { return false; } if ( isset( $this->local_cache[ $group ][ $key ] ) ) { return false; } // FIXME: Somehow apcu_add does not return false if key already exists if ( ! isset( $this->non_persistent_groups[ $group ] ) && apcu_exists( $key ) ) { return false; } if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_add( $key, $data, (int) $expire ); } return true; } public function add_global_groups( $groups ) { if ( is_array( $groups ) ) { foreach ( $groups as $group ) { $this->global_groups[ $group ] = true; } } else { $this->global_groups[ $groups ] = true; } } public function add_non_persistent_groups( $groups ) { if ( is_array( $groups ) ) { foreach ( $groups as $group ) { $this->non_persistent_groups[ $group ] = true; } } else { $this->non_persistent_groups[ $groups ] = true; } } public function decr( $key, $offset = 1, $group = 'default' ) { if ( $offset < 0 ) { return $this->incr( $key, abs( $offset ), $group ); } $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->local_cache[ $group ][ $key ] ) && $this->local_cache[ $group ][ $key ] - $offset >= 0 ) { $this->local_cache[ $group ][ $key ] -= $offset; } else { $this->local_cache[ $group ][ $key ] = 0; } if ( isset( $this->non_persistent_groups[ $group ] ) ) { return $this->local_cache[ $group ][ $key ]; } else { $value = apcu_dec( $key, $offset ); if ( $value < 0 ) { apcu_store( $key, 0 ); return 0; } return $value; } } public function delete( $key, $group = 'default', $force = false ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); unset( $this->local_cache[ $group ][ $key ] ); if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_delete( $key ); } return true; } public function flush() { $this->local_cache = array(); // TODO: only clear our own entries apcu_clear_cache(); return true; } public function get( $key, $group = 'default', $force = false, &$found = null ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( ! $force && isset( $this->local_cache[ $group ][ $key ] ) ) { $found = true; if ( is_object( $this->local_cache[ $group ][ $key ] ) ) { return clone $this->local_cache[ $group ][ $key ]; } else { return $this->local_cache[ $group ][ $key ]; } } elseif ( isset( $this->non_persistent_groups[ $group ] ) ) { $found = false; return false; } else { $value = @apcu_fetch( $key, $found ); if ( $found ) { if ( $force ) { $this->local_cache[ $group ][ $key ] = $value; } return $value; } else { return false; } } } public function incr2( $key, $offset = 1, $group = 'default' ) { if ( $offset < 0 ) { return $this->decr( $key, abs( $offset ), $group ); } $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->local_cache[ $group ][ $key ] ) && $this->local_cache[ $group ][ $key ] + $offset >= 0 ) { $this->local_cache[ $group ][ $key ] += $offset; } else { $this->local_cache[ $group ][ $key ] = 0; } if ( isset( $this->non_persistent_groups[ $group ] ) ) { return $this->local_cache[ $group ][ $key ]; } else if ( function_exists( 'apcu_inc' ) ) { $value = apcu_inc( $key, $offset ); if ( $value < 0 ) { apcu_store( $key, 0 ); return 0; } return $value; } return false; } public function replace( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->non_persistent_groups[ $group ] ) ) { if ( ! isset( $this->local_cache[ $group ][ $key ] ) ) { return false; } } else { if ( ! isset( $this->local_cache[ $group ][ $key ] ) && ! apcu_exists( $key ) ) { return false; } apcu_store( $key, $data, (int) $expire ); } if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } return true; } public function reset() { // This function is deprecated as of WordPress 3.5 // Be safe and flush the cache if this function is still used $this->flush(); } public function set( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_store( $key, $data, (int) $expire ); } return true; } public function stats() { // Only implemented because the default cache class provides this. // This method is never called. echo ''; } public function switch_to_blog( $blog_id ) { $this->blog_prefix = $this->multisite ? $blog_id . ':' : ''; } } if ( function_exists( 'apcu_inc' ) ) { class APCu_Object_Cache extends GD_APCu_Object_Cache { function incr( $key, $offset = 1, $group = 'default' ) { return parent::incr2( $key, $offset, $group ); } } } else { class APCu_Object_Cache extends GD_APCu_Object_Cache { // Blank } } endif;
Warning: Cannot modify header information - headers already sent by (output started at /usr/hosting/oldpics.net/html/wp-content/object-cache.php:1) in /usr/hosting/oldpics.net/html/wp-includes/feed-rss2.php on line 8
Архивы JFK - Old Pictures https://oldpics.net Historical photos, stories and even more Mon, 21 Sep 2020 15:45:58 +0000 en-US hourly 1 https://wordpress.org/?v=5.9.5 https://oldpics.net/wp-content/uploads/2017/06/cropped-favicon-32x32.png Архивы JFK - Old Pictures https://oldpics.net 32 32 Rosemary Kennedy: tragedy of JFK’s sister lobotomy in pictures https://oldpics.net/rosemary-kennedy-tragedy-of-jfks-sister-lobotomy-in-pictures/ https://oldpics.net/rosemary-kennedy-tragedy-of-jfks-sister-lobotomy-in-pictures/#respond Mon, 21 Sep 2020 15:45:56 +0000 https://oldpics.net/?p=5431 Rosemary Kennedy was born to be a part of the high society, but her mental problems led to a failed lobotomy that...

Сообщение Rosemary Kennedy: tragedy of JFK’s sister lobotomy in pictures появились сначала на Old Pictures.

]]>
Rosemary Kennedy- a tragedy of JFK’s sisterRosemary Kennedy was born to be a part of the high society, but her mental problems led to a failed lobotomy that became a tragedy for the family.

She was born to fly high

Rosemary Kennedy on September 13, 1918. She was a long-awaited girl for the Kennedy family: Joseph and his wife Rosa already had two boys. The problematic birth did not overshadow the joy. The Spanish flu epidemic delayed the doctor’s arrival, and the nurse tried to delay the child’s birth for two hours.

The perfect Kennedy family. Rosemary is on the far right

The perfect Kennedy family. Rosemary is on the far right. Her brother John the future president of the United-States is first in the top row from the left wearing a white T-shirt.

Rosemary Kennedy was born to become a brilliant socialite, benefactor, wife, and mother. Her father, Senator Joseph Patrick Kennedy, was at the zenith of his political career. Her mother, Rosa, was a devout Catholic, nee Fitzgerald, and Boston’s first mayor with Irish-decent. But fate decreed otherwise.

Rosa Kennedy did all that mother could do

Her mother began to notice that the Rosemary was lagging behind her brothers in development. She learned to roll over, crawl, walk later than others. At first, Rosa attached the gap to gender differences. But then two sisters of Rosemary were born, and they proved this theory wrong.

Rosie (standing) with her two older brothers, and her younger sisters Kathleen and Eunice

Rosie (standing) with her two older brothers, and her younger sisters Kathleen and Eunice

Rosa Kennedy addressed the problem of Rosemary to the doctors, who actually confirmed the arrested development. The reasons stayed unknown. Someone said that it was hereditary, someone referred to the trauma during childbirth. They said that while the nurse was trying to “delay” the birth, the child experienced oxygen starvation.

Rosemary Kennedy with brother Jack

Rosemary Kennedy with brother Jack

Rosemary Kennedy changed many schools. At the age of 15, she was at the development level of an 8-year-old child.

Doctors suggested putting Rosemary to a psychiatric hospital, but her mother refused. Instead, the Kennedy family rebuilt a new tennis court at one of the schools where Rosemary was kept under teachers’ and nuns’ supervision.

Kathleen and Rosemary Kennedy during the introduction to the King of the UK

Kathleen and Rosemary Kennedy with their mother Rosa during the introduction to the British King, 1938

Rosemary didn’t fit the father’s career

The situation was complicated as Joseph Kennedy had to keep an image of the ideal family for his political career. The suffering child did not fit into this beautiful picture, and Rosemary’s condition was carefully hidden from journalists. Undoubtedly, his eldest daughter’s illness was a tragedy for Joseph Kennedy because he literally trained his children to succeed. Kennedy had to be the first in everything.

Rosemary spent her time with the teachers, mastering writing and reading, and achieved some results. Nonetheless, “Winnie the Pooh” was still her favorite book. Simultaneously, Rosemary communicated with her brothers and sisters almost on an equal footing, not feeling the differences between them and herself. And all eight Kennedy children truly loved Rosemary. Her relationships with sister Eunice were especially warm.

Rosemary dances with family friend, Edward Moore before she was sent away

Rosemary dances with family friend, Edward Moore. It was the last photo of Rosemary Kennedy before the lobotomy.

Why did Rosemary Kennedy have a lobotomy

In the late 1930s, Joseph Kennedy was appointed United States Ambassador to Britain. The position imposed secular obligations on the entire Kennedy family. So, Joseph’s eldest daughters were introduced to the court of King George VI and Queen Elizabeth in 1938.

20-year-old Rosemary, dressed as befits a debutante in all white, stumbled awkwardly and nearly fell during the ceremonial bow. But secular publications still noted her beauty and sincere joy. A year later, Rosemary and her family attended the coronation of Pope Pius XII in Rome.

Even those who knew about the Kennedy family’s secret could think that Rosemary somewhat improved and, perhaps, would still live the brilliant life that she was born for.

Dr.Watts examining the x-ray image of Rosemary Kennedy before the lobotomy

Dr.Watts examining the x-ray image of Rosemary Kennedy before the lobotomy

It became harder to keep the state of Rosemary Kennedy in secret as she was growing up. The nuns complained that the girl escaped at night and disappeared until the morning. She could get pregnant or get into trouble. Also, Rosemary’s outbursts of anger happened more often.

The politicians who knew about the family problem advised Joseph to subject Rosemary Kennedy to a lobotomy procedure. The operation will calm the girl down. Joseph agreed without a discussion with his wife.

Rosemary Kennedy just turned 23 when she had a lobotomy operation.

Ted, Rosie, and Eunice. Rosie started visiting Boston and Hyannis Port. There was family love back in her life - after years of isolation

Ted, Rosie, and Eunice. Rosie started visiting Boston and Hyannis Port. There was family love back in her life – after years of isolation

Joseph Kennedy agreed on lobotomy for duaghter without notifing  her mother

One of the doctors, James Watts, retold the operation’s story to the writer Ronald Kessler. The second physician was lobotomy specialist Walter Freeman. Kessler described the procedure as follows:

“She took a mild tranquilizer. I made a surgical incision into the brain through the skull, next to the forehead, on both sides. We made a small incision, no more than 2.5 cm. “

Rosemary Kennedy pictures after the lobotomy

Ted Kennedy seemed to be a frequent visitor but JFK and Bobby Kennedy are not seen in any of the photos after the lobotomy

The tool Dr. Watts used looked like a butter knife. He turned it up and down to cut through the brain tissue. “We put the tool inside,” he said.

After Dr. Watts made the incision, Dr. Freeman began asking Rosemary’s questions. For example, he asked her to quote the Lord’s Prayer, sing “God Bless America,” or count backward. “We made an assessment of which cut to make based on how she responded.” When she started talking incoherently, they stopped.”

Rosemary Kennedy pictures after the lobotomy

Here, Rosemary Kennedy enjoys sun and waves on a boat ride on a trip to Hyannis in her later years

The lobotomy failed: Rosemary Kennedy could no longer walk, could not speak articulately. Her mental capacity dropped to the level of a two-year-old.

Father put Rosemary Kennedy to the mental hospital immediately after the lobotomy. She spent the first couple of years in New York and then moved to Wisconsin, where she spent her long life. Her father built a separate building for the Wisconsin hospital and made sure that his daughter did not need anything. Nonetheless, Joseph Kennedy never visited Rosemary after the failed lobotomy.

Rosemary Kennedy pictures after the lobotomy

Eunice and Rosie Kennedy

The family reunion

The reunion with the exiled sister did not happen until the 1960s. Joseph suffered a stroke and couldn’t influence family affairs. JFK was assasinated, so there was no risk to damage his political career. The family began to bring Rosemary to the celebrations that she loved very much. Eunice maintained the closest relationship with her sister. She even created the Special Olympics for people with mental disabilities.

Rosemary passed away at the age of 86; next to her were Jean, Eunice, Patricia, and brother Ted.

Сообщение Rosemary Kennedy: tragedy of JFK’s sister lobotomy in pictures появились сначала на Old Pictures.

]]>
https://oldpics.net/rosemary-kennedy-tragedy-of-jfks-sister-lobotomy-in-pictures/feed/ 0
Historic friendship of Frank Sinatra and John F. Kennedy https://oldpics.net/it-started-well-but-resulted-in-sinatra-joining-republicans/ https://oldpics.net/it-started-well-but-resulted-in-sinatra-joining-republicans/#comments Thu, 23 Apr 2020 10:04:07 +0000 https://oldpics.net/?p=2703 There’s a nice saying about JFK and Frank Sinatra relationships: Over the course of his life, John F. Kennedy spent time with...

Сообщение Historic friendship of Frank Sinatra and John F. Kennedy появились сначала на Old Pictures.

]]>
History photo Frank Sinatra John Kennedy

Frank Sinatra and John Kennedy, California. 1961

There’s a nice saying about JFK and Frank Sinatra relationships: Over the course of his life, John F. Kennedy spent time with many famous faces, but perhaps his most curious friendship was his short-lived camaraderie with entertainer Frank Sinatra. The following excerpt from Handsome Johnny. This story started with mutual admiration, followed by-election campaign cooperation, and ended up with Sinatra’s total ban from the Kennedy’s and musicians’ joining the Republicans.

Read more: Rock music photo history of the 60s in 33 pictures.

The mutual respect

Kennedy had a deep respect for the singer, and Sinatra venerated him reciprocally. But their story grew into something more important in 1960 when John F. Kennedy was participating in Democratic primaries in West Virginia. The rumor has it that his dad  Joseph Kennedy supposedly asked Sinatra to get mob boss Sam Giancana assistance for votes delivery any way he could. Mobs did their part and regretted it several years later: after the Kennedys won the White House, Attorney General Robert Kennedy convicted 288 mobsters in 1963 alone.

Sinatra escorting Jacqueline Kennedy

Sinatra escorting Jacqueline Kennedy during the inaugural party

Kennedy had a deep respect for the singer, and Sinatra venerated him in return.

“There was a joke at the time that ended up having some of the truth thereto, that Kennedy wanted to be Sinatra and Sinatra wanted to be Kennedy,” said Steven Watts, who wrote the book, “JFK and therefore the Masculine Mystique: Sex and Power on the New Frontier.”

Read more: Henry Ford receiving the Grand Cross of the German Eagle from Nazi officials, 1938

Their friendship seemed to know no limits: Sinatra was invited to sing at the inaugural party where he escorted Jaqueline Kennedy.  And after Kennedy stopped by his home, he had a symbol that reads “JFK Slept Here” hung within the bedroom and when Kennedy clinched the nomination at the l.a. Convention, the Rat Pack, temporarily transformed into the “Jack Pack.”

Why Frank Sinatra and John Kennedy drifted apart?

Sinatra went ballistic when Kennedy replaced him with Bing Crosby on a visit to Palm Springs 1962. He had a helipad specially constructed on his roof in anticipation of the visit and attacked it with a sledgehammer when he found that JFK’s did a last-minute switch to Crosby’s place. Sinatra, who stayed with Democrats for a decade, switched his allegiance to the Republican party soon after.

Frank Sinatra Kennedy inaugural party

Frank Sinatra at Kennedy’s inaugural party

The story behind Sinatra’s dismissal from the Kennedy ingroup, the accepted narrative, had it that the FBI’s J. Edgar Hoover met with the attorney general shortly before the president’s Palm Springs getaway and warned him to set a distance between his brother and Sinatra. He supposedly provided some evidence of the singer’s close relationship with Sam Giancana and various other gangsters, which wasn’t a big surprise, though. Shocked and alarmed, because the story goes, Bobby ran to Jack within the Oval Office and demanded he cease all contact with the person.

The sequence of events seems essentially right, apart from the quaint concept Bobby—or anybody else who read a newspaper or gossip column over the previous twenty years—was unaware of Sinatra’s fraternizing with the Mob. If Frank’s fondness for gangsters had survived this long without making much trouble for the administration, why wouldn’t it cause such an eruption now?

Сообщение Historic friendship of Frank Sinatra and John F. Kennedy появились сначала на Old Pictures.

]]>
https://oldpics.net/it-started-well-but-resulted-in-sinatra-joining-republicans/feed/ 4