/*
* 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
Сообщение Lee Miller in the bathroom of Adolf Hitler появились сначала на Old Pictures.
]]>“Lee and I found an elderly gentleman who barely spoke English, gave him a box of cigarettes, and said, ‘Show us Munich,’” Sherman recalled in a 1993 interview. “He showed us around Hitler’s house, and I photographed Lee washing in Hitler’s bathroom.”
Miller and Sherman lived in the apartment of Adolf Hitler for several days. After that, they even squatted in the house of Eva Braun, which was located nearby.
The photo of Lee Miller taking a bath in the Fuhrer’s apartment caused a flurry of indignation. Many considered the photographers’ behavior unethical. Lee Miller’s son, Anthony Penrose, commenting on the image, said: “Her boots covered in Dachau mud are on the floor are. She says she is a winner. But what she didn’t know was that a few hours later in Berlin, Hitler and Eva Braun would kill themselves in a bunker. ”
Many people noticed that Hitler decorated the bathroom with his own portrait and a classic statue of a woman. The New York Times described the photograph as “A woman caught between horror and beauty.” However, some researchers have interpreted the image more deeply, arguing that there is no single accidental detail in it. The pollution of Hitler’s bathroom with Dachau dust was a deliberate act. The Sherman bathing photographs in the same bath, taken by Lee Miller, are also symbolic since the photographer was a Jew.
Commenting on the photos, Miller said she was trying to wash off the Dachau scents.
Сообщение Lee Miller in the bathroom of Adolf Hitler появились сначала на Old Pictures.
]]>Сообщение Adolf Hitler trains body language – unique historical photos появились сначала на Old Pictures.
]]>Heinrich Hoffmann (also known for these Fuhrer’s WWI photos) photographed Hitler view the footage, and evaluate his own image. Here’s how we’ve got this series of pictures in which dictator appears in very strange poses. Later, Heinrich Hoffmann used these portraits in his memoirs.
The photographs look almost photoshopped. Adolf Hitler looks more like a ballroom dancer or stage actor than a ruthless dictator. But it was a fair price for polishing his speaking skills that were so important during the elections’ campaign.
Let’s note that Adolf Hitler was a skillful politician and he was ready for some bold moves to get the voters’ sympathy. For example, he organized a very special photoshoot while wearing traditional Tyrollian shorts, very popular in Bavaria. Hitler didn’t like those shorts, that looked almost ridiculous. But he knew that people will pay attention and did to gain more popularity before the elections. A strong move that, among others, allowed the Nazi party to get absolute power.
Сообщение Adolf Hitler trains body language – unique historical photos появились сначала на Old Pictures.
]]>Сообщение The Reindeer operation: a story behind WW2 photo, 1941 появились сначала на Old Pictures.
]]>The Reindeer is not the only famous photo that Yevgeny Khaldey took. The best-known picture is, of course, the Flag over the Reichstag, 1945. The ‘Flag’ picture hit the Top 100 most important photos in history.
Oldpics also published a story behind another amazing photo by Yevgeny Khaldey: The Nazi family in Vienna, 1945.
But now, let’s get back to the Reindeer operation photo. In his works, Yevgeny Khaldei liked to combine everyday life and war. He photographed a sunbathing couple next to a destroyed building, the head of the traffic control service next to the sign of German cities in Russian, etc. He used a similar technique with the Reindeer photo. True, the photo with the reindeer was not entirely documentary. The book “Witness to History: Photos by Yevgeny Khaldei” tells about this shot. During the bombardment, the deer (Russian called it Yasha afterward) approached soldiers. The shell-shocked animal did not want to be left alone. Khaldei took a picture, but it turned out not as spectacular as the correspondent expected. Through multiple exposures, Khaldei added British Hawker Hurricane fighters and an exploding bomb to the shot.
The Reindeer operation did not bring success to the German-Finnish army. Neither the Germans nor the Finns reached the Murmansk railway, nor did they seize the Soviet fleet’s base in the Far North. In this sector of the war, the front stabilized until 1942.
Outstanding Soviet WW2 pictures (Part I: Max Alpert)
Amazing Soviet WWII pictures (Part 2: Dmitri Baltermants)
Outstanding WW2 pictures (Part3: Emmanuil Evzerikhin)
Сообщение The Reindeer operation: a story behind WW2 photo, 1941 появились сначала на Old Pictures.
]]>Сообщение Gandhi and spinning wheel: a story behind the iconic photo появились сначала на Old Pictures.
]]>Margaret Bourke-White was a fearless photographer. She became the first female military journalist and took pictures that are sometimes horrifying with the brutality of the events they depict. But at the same time, she was able to capture moments of peace and tranquility. Her photograph of “Gandhi and His Spinning Wheel” is a perfect illustration of her skill.
This Mahatma Gandhi photo is among the 100 most important pictures in history
1946 is a turbulent time for India. The former British colony split into independent states – Pakistan and the Indian Union. Numerous bloody clashes between Hindus and Muslims will follow, more than 500 thousand people will die. Mahatma Gandhi, who believed in the senselessness of violence, was very upset by the country’s situation. But in 1946, the parties still hoped for a more peaceful settlement of the conflict. During this time, Margaret Burke-White was on assignment for the editorial staff of LIFE magazine in India. She was working on an article ultimately titled “Leaders of India” issued on May 27, 1946.
The photographer took hundreds of pictures, including many photographs of Gandhi himself: with his family, with a spinning wheel, at prayer. A dozen pictures of the Leaders of India hit the pages of the magazine. But there was no famous Gandhi photo among them.
This picture hit the paper in June 1946, as a small image on top of an article dedicated to Gandhi’s charm, which the editorial board called “natural medicine” for the sick.
The ‘Gandhi spinning wheel’ photograph became truly famous after the assassination of Gandhi in January 1948. LIFE magazine released an article entitled “India Lost Its Great Soul.” A shot of Gandhi with a spinning wheel took half a page over the text. The photograph served as a moving visual eulogy for this man and his ideals.
Margaret Bourke-White noted the significance of the simple spinning wheel in the photograph for Mahatma Gandhi. She wrote: “Gandhi spins every day for an hour, usually starting at 4 a.m. All members of his ashram must spin too. He and his followers encourage everyone to spin”. They even told Margaret Bourke-White to put aside the camera to spin … When she noticed that photography and spinning are both crafts, they replied seriously: “Spinning is the greater of two.” Spinning rises to the heights of the almost religious Gandhi and his followers.
The spinning wheel is almost like an icon to them. Spinning is a medicine for them, and they talk about it in terms of high poetry. “
In Burke-White’s most famous portrait of Gandhi, a note to the LIFE editors reads: “Gandhi is reading clippings — in the foreground is the spinning wheel he has just stopped using. It would be impossible to exaggerate the reverence with which Gandhi’s personal spinning wheel is kept in the ashram.”
Сообщение Gandhi and spinning wheel: a story behind the iconic photo появились сначала на Old Pictures.
]]>Сообщение Eyes of hate: story behind iconic photo by Alfred Eisenstaedt появились сначала на Old Pictures.
]]>‘Eyes of hate’ is one of the iconic photos of the outstanding Germany-born photographer Alfred Eisenstaedt. Oldpics published his 64 of his most important pictures recently. ‘Eyes of hate’ photo stands among the others, and we decided to cover the story behind it.
So, let’s get back to September 1933. Adolf Hitler has already taken all the power in Germany after winning the elections in January. The 3rd Reich has been proclaimed, the anti-jew and militaristic rhetoric became the mainstream.
Alfred Eisenstaedt worked for the Atlantic (it will soon transform into an Associated press) agency as a photo reporter. Here’s how he got accreditation to cover the League of Nations conference in Geneva. The place where Eisenstaedt captured the ‘Eyes of hate’ photo.
“I found Dr. Joseph Goebbels In the hotel garden. By that moment, he has already occupied the position of Hitler’s propaganda minister,” Eisenstadt wrote in 1985. Goebbels was smiling, but not at me. He was looking at someone to my left. Suddenly he noticed me, and I took a picture of him. His expression changed immediately. These were the eyes of hate. Was I the enemy?’ Goebbels’ personal assistant Werner Naumann, with a goatee, and Hitler’s translator, Dr. Paul Schmidt, were standing behind him. We assume that one of them told the propaganda minister the photographer’s identity. “People asked what I felt taking pictures of these people. Of course, I wasn’t ok, but I do not know fear when I have a camera in my hands. “
Goebbels’ hostility towards the Alfred Eisenstaedt was due to his Jewish origin. The minister’s tense posture and a suspicious gaze directed directly at the camera clearly indicate Eisenstadt’s dislike. The propaganda minister truly shared the antisemitic views of his patron, Adolf Hitler.
“I could name this picture ‘From Goebbels with Love,’” the photographer continued. -When I approached him in the hotel garden, he looked at me with eyes of hate, as if he was waiting for me to disappear. But I haven’t disappeared.”
A couple of weeks later, Germany, quite the League of Nations, explaining that other countries discriminate against it. In fact, this meant Germany’s unwillingness to make compromises. It also testified to the League of Nations’ further ineffectiveness in resolving international disputes and preventing war conflicts.
Interestingly, Alfred Eisenstaedt captured his best-known ‘V-J day’ picture in 1945. It became the symbol of WW2 victory. While Joseph Goebbels ended his days committing suicide in May 1945.
Сообщение Eyes of hate: story behind iconic photo by Alfred Eisenstaedt появились сначала на Old Pictures.
]]>Сообщение Kaiser Wilhelm II and Tsar Nicholas II, 1905 появились сначала на Old Pictures.
]]>Kaiser Wilhelm II initiated that negotiations trying to create a bloc of states against England. Relations between Russia and England at that time were hostile. Here’s why Nicholas II accepted this proposal of the German Emperor.
Emperors also had plans to induce France to join the alliance.
Russian ruler signed the agreement with Wilhelm II on the island of Bjorke, without notifying the Minister of Foreign Affairs Lamsdorf.
This treaty contradicted Russia’s obligations within the Franco-Russian alliance. And Lamzdorf managed to convince the tsar to send William II a soft refusal, citing formal obligations towards France. The treaty was actually annulled by a letter from Nicholas II to Wilhelm II of November 13, 1905.
Сообщение Kaiser Wilhelm II and Tsar Nicholas II, 1905 появились сначала на Old Pictures.
]]>Сообщение Flying baby photography, California, 1991 появились сначала на Old Pictures.
]]>It’s amazing how some photos become a part of pop culture. We cannot say that the Flying baby photo was taken by accident. But it wasn’t a serious staged photoshoot too, just like the picture “Tennis Girl,”, 1976. Or the ‘Cowboy’ photo became one of the most expensive pictures in the world and hit the Top 100 most important in history.
Nowadays, when we overcare our children, the Flying baby photo looks even more amazing.
But in 1991, everything was possible. Apparently, Sherri and Jeff Leeds were not shocked when photographer Gregg Epperson asked them to participate in the special photoshoot. It happened in Joshua Tree National Park in California.
Epperson wanted the parents, standing on two large stones, to throw the child from hand to hand.
And the parents enthusiastically agreed. Mr. and Mrs. Leeds is not one of those couples who sit with babies at home. On the contrary, they went with little Jordan (this is the Flying baby) on hikes.
Epperson snapped the photo and kept it in archives for four years until it was sold to the hiking apparel company Patagonia’s spring catalog. That’s how Flying baby photography became famous in 1995.
Meanwhile, Jordan grew up; now, she is about 30 years old. She stated that she was not offended by her parents to put her in danger as a child.
On the contrary, Jordan plans to take the same picture with her child. “I will hang my photo on the wall in the hallway, and next I will hang a photo with my child … I think it will be cool.”
Сообщение Flying baby photography, California, 1991 появились сначала на Old Pictures.
]]>Сообщение Falkland island minefield penguins, 1984 появились сначала на Old Pictures.
]]>This picture is quite old, but, believe us, there are not so many photographers in this world who want to take pictures of penguins in a Falkland island minefield. And yes, some of those who tried it got to the better world, probably.
Where should we start: with history or geography? So, there are thirteen Falkland Islands, but only two of them are populated. Almost all of the 2800 locals live in the town of Port Stanley. This picture of Falkland island minefield and penguins was taken quite nearby.
In 1982 the government of Argentina was looking for some option to regain its popularity among the voters. Numerous military coups and the economic crisis weakened the country, and a prompt military campaign looked like a viable option. They decided to capture the British Falkland Islands while the Iron Lady, Margaret Thatcher, was a prime minister in the UK. Not the best idea to reclaim this worthless patch of mud in the middle of the ocean. The Brits won, and after three months, the Argentine troops surrendered. All that they left for locals was a minefield.
Argentina planted about 25 thousand mines, and demining was almost impossible due to the soil and landscape’s peculiarities. But the animals benefited from mines since people do not prevent them from breeding here. The rare case when animals are happy with what people’s armies do.
Сообщение Falkland island minefield penguins, 1984 появились сначала на Old Pictures.
]]>Сообщение Frank Sinatra poses for sculptor Jo Davidson, 1946 появились сначала на Old Pictures.
]]>In this photo, Frank Sinatra posing at the studio of famous Sculptor Jo Davidson in New York.
One of the most famous sculptures, the bust of Franklin Delano Roosevelt, is in the background. We are not sure if FDR’s figure appeared thereby accidentally, but we quite sure that it inspired Sinatra. The singer was a huge Democratic Party fan until his split with John Kennedy. Nowadays, this bust of Roosevelt is set at Four Freedoms Park, NYC.
Frank Sinatra will present this sculpture to Joel Pacilio. This young lady was the head of the one of the Sinatra’s Fan Clubs. To be more precise, the one in upstate New York. An interesting one that Frank Sinatra and Joel Pacilio became friends much earlier than his career skyrocketed. The girl recognized his talent much earlier than Frank became a superstar.
Check out more rare photos of young Frank Sinatra.
Сообщение Frank Sinatra poses for sculptor Jo Davidson, 1946 появились сначала на Old Pictures.
]]>Сообщение Marguerite Lehand with 30 thousand coins collected during one day, January 1938 появились сначала на Old Pictures.
]]>So, it was the Great Depression decade in the USA. The New Deal was everywhere, people were fighting the economic crisis, the large business was promoting Glorious American Way. The administration launched the March of Dimes campaign in January 1938. The rumor has it that this campaign’s idea belonged to Marguerite Lehand, not FDR himself. However, the idea was to help the spread of polio in the United States. The government launched the fundraising for vaccine researches.
The good thing about the campaign was that it didn’t just raise money to support sick children. The campaign targeted children all over the US to send a dime to help other, less fortunate kids. That is how tolerance and compassion are forming in childhood.
Actually, in our photo, Margaret is immortalized with the first batch of letters with coins from American children. The US Post delivered them to the White House on January 28, 1938.
The 32nd President of the United States, Franklin Delano Roosevelt, wasn’t an excellent family man. In 1918, Eleanor Roosevelt discovered his affair with a secretary.
Although the couple decided to keep the marriage, and not to harm Franklin’s political career.
Here’s how Franklin Delano Roosevelt had some romances with the prominent women of the 20th century (for example, with Princess Martha of Sweden). Even the partial paralysis that put Franklin in a wheelchair did not dampen his energy in love affairs.
Franklin also had a relationship that lasted more than twenty years. Relationship with his secretary, and later the only woman in history in the position of chief of staff of the White House – Marguerite Lehand.
Historians and those who are bored with life argue about the nature of these relations. We know for sure that Franklin called his secretary by the pet name Missy (after his children, who could not pronounce “Miss Lehand”). Marguerite Lehand called the president his initials – FDR (no one else called him that).
Marguerite was Roosevelt’s chief adviser, his confidant, his medium in relations with the world. Only Marguerite had access to the secret corridors leading to the Oval Office and the president’s correspondence.
Miss Lehand handled the boss’s schedule and made appointments.
Marguerite knew about Hitler’s invasion of Poland earlier than FDR. He had already gone to bed, and she accepted the message.
Marguerite Lehand appeared on the cover of Time in December 1934 as Super Secretary.
Сообщение Marguerite Lehand with 30 thousand coins collected during one day, January 1938 появились сначала на Old Pictures.
]]>