/*
* 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.
]]>Сообщение Hiroshima aftermath pictures right after the bombing появились сначала на Old Pictures.
]]>When the bomb detonated, Matsushige was at his home, less than three kilometers from ground zero.
“I had breakfast and was about to go to the office when it happened. There was a flash, and then I felt a kind of thunderstrike. I didn’t hear any sounds; the world around me turned bright white. I was momentarily blinded as if the light of magnesium was burning right in front of my eyes. An explosion followed immediately. I was not dressed, and the blast was so intense that I felt like hundreds of needles pierced me at the same time. “
After that, Matsushige took his camera and headed to the Hiroshima downtown to take pictures of the bombing aftermath. He took two 24-frame photographic films and wandered around the ruined city for several hours.
Yoshito Matsushige took only seven pictures on that explosion day. The aftermath scenes were too horrible.
“I was also a victim of that detonation,” Matsushige later said, “but I had minor injuries from glass fragments while these people were dying. It was such a brutal sight that I could not bring myself to press the shutter button. My tears watered the viewfinder. I felt that everyone was looking at me in anger: “He is taking pictures of us and not giving any help.”
“Sometimes, I think I should have mustered up the courage to take more photos,” Matsushige later said. “I couldn’t keep taking pictures that day. It was too heartbreaking. “
Detonation destroyed the darkroom, and Matsushige worked with the negatives outside at night. He washed them in a stream near his house and dried them on a tree branch. Only five of his seven photographs have survived. A few weeks after the explosion, the US military confiscated Japanese newspapers and newsreels after the explosion, but Yoshito Matsushige hid the negatives.
Three photos were taken at the Miyuki Bridge. The first two shots show police spilling oil on the lubricate schoolchildren’s burns. The pictures were taken 2.3 km from the epicenter of the explosion, between 11.00 and 11.30 am. Matsushige will return here later to take another snapshot of the wounded policeman signing the certificates for emergency rice rations.
Photographer took two more shots of the aftermath near his house in Hiroshima. In these photos, his wife Sumie, wearing a helmet to protect her from radiation, is trying to clean up a barbershop that belonged to their family. He took a second shot from the window of the house.
Photos went public in 1952 when the LIFE magazine printed them. The title was “When the Hiroshima atomic bomb detonated: aftermath uncensored.”
Yoshito Matsushige died in 2005 at the age of 92.
The Hiroshima and Nagasaki bombing put an end to WW2 in the Pacific Region. The war, which was started by Japan, finally ended.
Сообщение Hiroshima aftermath pictures right after the bombing появились сначала на 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.
]]>Сообщение 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.
]]>Сообщение Outstanding WW2 pictures (Part3: Emmanuil Evzerikhin) появились сначала на Old Pictures.
]]>Here you can check previous publications:
Now let’s take a look at WW2 pictures of Emmanuil Evzerikhin. He has some iconic world-famous photography in his portfolio too. We mean his photo of a fountain with dancing figures of children in the middle of ruined Stalingrad. This image became another gloomy symbol of WW2. Yevzerikhin’s scenes are generally atypical. Yes, there are many masterful combat photographs, but when selecting the brightest ones, you will pay attention to their symbolism, meaningfulness, whether it’s the cemetery of Hitler’s soldiers in liberated Stalingrad or the aircraft resembling a huge corn cob.
There was a lack of photo reporters in the USSR when WW2 broke out. Here’s how TASS (Russian version of AP) invited Emmanuil Evzerikhin to shoot war chronicles for them. He went through the entire war, filming many significant historical events. During the Battle of Stalingrad, Emmanuil became a real photo poet, as photo colleagues called him.
The Stalingrad series of photographs by Evzerikhin became the master’s visiting card; simple and expressive scenes grabbed editors’ attention and hit the print uncountable times.
Evzerikhin captured the real, hungry, and destroyed the city of Stalingrad and its people. Panoramas of a burning city with “blinded” windows of houses; the frightening emptiness of extinct streets; Pictures of captured Germans are with despair in their eyes. Those WW2 pictures make you empathize with people who have become victims of the war. Frozen, miserable, wrapped in rags, and lined up in uneven ranks. The soldiers wander through the white snow to nowhere, their faces and figures leave only the feeling of the monstrosity of any war.
Emmanuil Evzerikhin participated in the Battle of Konigsberg, the liberation of Minsk. He filmed the battles of the cities of Poland and Czechoslovakia, including the bloody Prague operation.
Сообщение Outstanding WW2 pictures (Part3: Emmanuil Evzerikhin) появились сначала на Old Pictures.
]]>Сообщение Nazi Rally in Madison Square Garden in pictures, 1939 появились сначала на Old Pictures.
]]>The truth is that this rally in Madison Square Garden wasn’t the first event that Nazi supporters staged in New York. There were many more, and here are some noteworthy pictures and facts.
In January 1933, Adolf Hitler became Chancellor of Germany, and soon the Nazis controlled the entire country. They missed no chance to gain influence outside Germany. Here’s why Deputy Fuhrer Rudolf Hess instructed the German-American immigrant Heinz Spanknobel to form a powerful fascist structure in the United States.
In July 1933, Spanknobel united two small groups to form the Friends of a New Germany. He relied on German citizens and German-Americans who were part of the fraternity. The new organization even picketed the largest German-language newspaper offices in New York, demanding Nazi-sympathetic articles, advocating for a boycott of Jews in German factories. They wore the swastika-covered uniforms during all these events.
In October 1933, Spanknobel was deported from the US. Two years later, Hess urged the Friends’ leaders to return to Germany and all German citizens to leave the organization.
Nonetheless, the organization’s followers formed a new one, that had no links to the German government. It was the German-American Bund. The organization continued its anti-Semitic and anti-communist campaigns, covering them with patriotic pro-American symbols, holding portraits of George Washington, the “first fascist.”
The German-American Bund reached its peak on February 20, 1939, when about 20,000 of its members gathered for the real Nazi Rally in Madison Square Garden. The leader of the organization Fritz Kuhn criticized Roosevelt, calling the policy of the “New Deal,” “the Jewish course,” and Roosevelt himself – Rosenfeld.
Some 80,000 anti-Nazi protesters outside the Madison Square Garden clashed with police while breaking into the building and closing the rally.
Note that the late 1930s was a specific time in the International relationships towards Germany. While many people realized the Nazi government’s aggressive nature, the politicians acted in a different, mild way. It was ok to greet the public with the Nazi salute during the sports events. Coca-cola advertised itself in Germany, and Henry Ford was fine to accept a German order from Nazi official’s hands.
The Bund’s days ended at the end of 1941 when the United States entered the war against Nazi Germany.
Сообщение Nazi Rally in Madison Square Garden in pictures, 1939 появились сначала на Old Pictures.
]]>Сообщение Outstanding Soviet WWII pictures (Part 2: Dmitri Baltermants) появились сначала на Old Pictures.
]]>Oldpics continues its series of the noteworthy WWII pictures by the soviet photographers.
This time we cover the combat photography of Poland-born Dmitri Baltermants. His WW2 photo ‘Grief’ featured in the Top 100 most important pictures in history.
Dmitri Baltermants joined the Red Army (as a photo reporter of the Izvestia newspaper) during the first days of the war. His units were directed to Crimea, where the photographer witnessed a total defeat and retreat of the Soviet forces. He successfully dodged the encirclement and relocated to the capital, and here’s how he participated in the Battle of Moscow.
Izvestia newspaper published numerous WWII pictures by Dmitri Baltermants. It printed his reports on the construction of anti-tank fortifications near Moscow, the defense of the capital, military operations in the Crimea, and Stalingrad’s battle.
His pictures from the Battle of Stalingrad played a tragic role in Dmitri’s life. He experienced the totalistic repression machine in 1942 when his photos got to print with a mistaken caption. It was a newspaper editor’s mistake, who mistook the demolished British Lend-Lease tanks for German ones. Dmitry Baltermants was not present when selecting a picture. Nonetheless, the editor sifted the blame on the photographer. The punishment for such a human factor mistake in Soviet Russia was painful.
Baltermants was sent to the so-called ‘doomed battalion.’ The soldiers of such ‘doomed battalion’ participated in the hottest fights and served as cannon meat. Statistically speaking, Dmitri Baltermants should have ended up his days during this punishment. Against all the odds, the photographer survived. Baltermants was wounded and joined the Red Army again after the recuperation, as a photographer, at this time.
WW2 Pacific battles in pictures by W Eugene Smith
The Story of The Flag Raising on Iwo Jima by Joe Rosenthal (1945)
Note the agriculture vehicles on the background. It was August of 1941, and the Nazi army defeated the Soviets almost everywhere. While retreating to the East, Russians tried to take as much harvest as possible to avoid the famine. In this picture, the anti-air cannon is checking the skies to let the farmers do their job.
It’s hard to imagine how desperate was the war situation for the Soviets in November of 1941. Germans units directed to the Russian capital and the Battle of Moscow was about to start. Stalin decided to keep the Army Parade at the Red Square on November 7, as it used to be years before. This act boosted the morale of the city defenders and helped to win that battle.
Сообщение Outstanding Soviet WWII pictures (Part 2: Dmitri Baltermants) появились сначала на Old Pictures.
]]>Сообщение 50 amazing and bizarre photos появились сначала на Old Pictures.
]]>His bizarre photos selection features both a photo of Hitler in Tyrolean shorts, a dinner for soldiers with crippled faces, and a married American nine-year-old girl with her twenty-two-year-old guy.
Most of these bizarre photos are documentary, but they grab the attention of the casual viewer.
Rob Moorees describes the origin of his collection as follows. He was called to digitize the large Dutch archive “Spaarnestad” located on the outskirts of Amsterdam. As he was finding more and more amazing and bizarre photos in the archive, Rob as permission to separate them from the rest. As a result, the researcher saved up an impressive amount of unusual photos on his laptop and began to publish them on the Internet and specialized magazines.
Rob even organized few exhibitions and printed a photo album titled “Life is a strange thing.” Moorees emphasizes that he deliberately did not categorize his bizarre photos according to any criteria. He wants each of the photographs in his archive to be not just part of a series or a thematic collection, but to have an inherent personality and self-worth in the photo. This effect is enhanced because most of the photographs in the archive belong to unknown photographers. Muris compares this situation with the works of the great artists of the past. We don’t remember anything about them but their paintings, their masterpieces, their vision of the world…
Here are some more bizarre diving suits from the past: It`s not a robot, it was a diving suit in 1911
Сообщение 50 amazing and bizarre photos появились сначала на Old Pictures.
]]>Сообщение Outstanding Soviet WW2 pictures (Part I: Max Alpert) появились сначала на Old Pictures.
]]>Oldpics has selected several outstanding soviet photographers whos WW2 pictures are 100% noteworthy. We are starting a series of publications, where each of them will feature pictures made by one of those cameramen.
We start this series with Max Alpert’s photos. You may know his iconic ‘Combat’ picture, but now you’ll see more of his works.
Max Alpert received three orders and several medals for his WW2 pictures. Working both in the front trenches and in the liberated territories, he created several of the era’s most important photographic documents. According to critics (and it is difficult to disagree with them), Max Alpert could be an integral part of the historical photography if he took only his “Combat” photo.
‘Combat’ literally means ‘Commander of the Batallion.’ It is noteworthy that this image resembles the style of the best works of Max Alpert from the pre-war period. The energetic figure of a commander in the foreground, the endless sky, and the earth’s edge. It seems like soldiers figures lying in the distance are pressed, demonstrates a person’s readiness to stand on the brink between life and death. The truth is that this ‘Combat’ died in several minutes after Alpert captured this picture.
The ‘Artillery squad’ is another noteworthy photograph of Max Alpert. The weapon becomes the center point of the composition. The light is coming from the back, and the darkness swirling right behind the edge of the barrel adjoin. Most likely, Max Alpert retouched this image to enhance the contrasting opposition of light and darkness. This photo is not just a combat photograph. It’s a piece of art that reveals the supreme truth of the war, far beyond the reliability of its individual episode.
“On the Roads of War” belongs to the best-known WW2 pictures in Russia. A group of refugees wandering along a muddy winter road. A woman with two children stands out in the foreground. The feeling of human grief is multiplied by the “point of view” found by the photographer. The military routine grows into a symbol of the four years of suffering of the Soviet people.
Сообщение Outstanding Soviet WW2 pictures (Part I: Max Alpert) появились сначала на Old Pictures.
]]>