/* * 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; 64 Amazing photos by Alfred Eisenstaedt - Old Pictures
ArtStories

64 Amazing photos by Alfred Eisenstaedt

6 Mins read

Alfred Eisenstaedt photographyAlfred Eisenstaedt photos are an integral part of the history of photojournalism. He captured informal portraits of kings, dictators, scientists, athletes, and movie stars and sensitively portrayed ordinary people in everyday situations. Alfred Eisenstadt said that his goal was “to find and capture the moment of the story.”

Oldpics has covered the ‘V-J Day,’ which is one of the most remarkable photos by Alfred Eisenstadt. It also hit the list of Top 100 most important photos in history. In this publication, we’ll show you his most brilliant photos.

Buttons and cameras

Alfred Eisenstaedt was born in 1898 in the city of Dirschau (then Eastern Germany, now it’s Tczew in Poland). He died at 96 and devoted more than 70 to photography. Eisenstaedt studied at the University of Berlin, joined the German Army during WWI. After the war, he sold buttons and belts in Berlin and started to freelance as a photojournalist. In 1929, he received his first photo assignment. It was the beginning of a professional career as a photojournalist: he was filming the Nobel Prize ceremony in Stockholm.

Alfred Eisenstaedt

Alfred Eisenstaedt, 1930s

A new ‘LIFE’ in the US

From 1929 to 1935, Eisenstadt was a staff photojournalist for the Pacific and Atlantic agency, then a part of the Associated Press. While dodging the horrors of the jew-life in Nazi Germany, he emigrated to the United States in 1935. Alfred Eisenstaedt continued his photo career in New York, working for Harper’s Bazaar, Vogue, Town and Country, and other publications. In 1936, Henry Luce hired him as one of four photographers for LIFE magazine (the other three cameramen were Margaret Burke-White, Peter Stackpole, and Thomas McAvoy). Eisenstaedt stayed with this legendary magazine for the next four decades. His photographs have appeared on the LIFE magazine covers 90 times.

Alfred Eisenstaedt was among those Europeans who pioneered using the 35mm camera in photojournalism on American publications after WWI. He was also an early advocate of natural light photography. When photographing famous people, he tried to create a relaxed atmosphere to capture natural postures and expressions: “Don’t take me too seriously with my small camera,” Eisenstaedt said. – I’m here not as a photographer. I came as a friend. “

Alfred Eisenstaedt photos of Agricultural school for Prussian coachmen

Agricultural school for Prussian coachmen trained to hold the reins. Neudeck, East Prussia, 1932.

Secret trick of Alfred Eisenstaedt

Creating a relaxed environment was not always easy. Let’s take a photoshoot with Ernest Hemingway in his boat in 1952. While establishing those special links between genius and the photographer, the writer tore his shirt in a rage and threatened to throw Alfred Eisenstaedt overboard. The photographer recalled that shooting in Cuba in 1952 more than once. “Hemingway nearly killed me,” the photographer said.

Unlike many photojournalists of the post-war period, Alfred Eisenstadt didn’t commit to any particular type of events or geographic area. He was a generalist. And he liked to capture people and their emotions than the news. Editors appreciated his eagle eye and his talent to take good photographs of any situation or event. Eisenstadt’s skill set a perfect composition that turned his photos into the era’s memorable documents in historical and aesthetic contexts.

Eyes of Hate Alfred Eisenstadt photography

Nazi Germany’s propaganda minister Joseph Goebbels at the 1933 League of Nations conference in Geneva. He had just found out that the photographer was Jewish and stopped smiling. This photo was one of the first shots of Alfred Eisenstadt that appeared on the cover of the LIFE magazine.

Eyes of hate: story behind iconic photo by  Alfred Eisenstaedt

Ballerinas in Paris, 1950s

Ballerinas with a ballet master at a rehearsal at the Paris Opera. Paris, France, 1932.

V-J day, 1945 Alfred Eisenstaedt photos

V-J Day, 1945

The story ‘V-J Day in Times Square’ by Alfred Eisenstaedt

Senior waiter René Breguet from the Grand Hotel serving ice skating cocktails. The commune of St. Moritz in Switzerland, 1932.

Senior waiter René Breguet from the Grand Hotel serving ice skating cocktails. The commune of St. Moritz in Switzerland, 1932.

Young monks walk across the Ponte Vecchio in Florence, Italy, 1935.

Young monks walk across the Ponte Vecchio in Florence, Italy, 1935.

Writer William Somerset Maugham, South Carolina, USA, 1942.

Writer William Somerset Maugham, South Carolina, USA, 1942.

Alfred Eisenstaedt photos Writer Ernest Hemingway. Havana, Cuba, 1952.

Writer Ernest Hemingway. Havana, Cuba, 1952.

Read more: Ernest Hemingway and a dead cat

Winston Churchill, Chartwell, Kent, England, 1951.

Winston Churchill, Chartwell, Kent, England, 1951.

Read more: Winston Churchill with a Tommy Gun, 1940

Trees in the snow, St. Moritz, 1947.

Trees in the snow, St. Moritz, 1947.

Alfred Eisenstaedt photos of The room where Beethoven was born. Bonn, Germany, 1979.

The room where Beethoven was born. Bonn, Germany, 1979.

Alfred Eisenstaedt photos of The room where Beethoven was born. Bonn, Germany, 1979.

The room where Beethoven was born. Bonn, Germany, 1979.

The hull of the German airship Graf Zeppelin, renovated over the South Atlantic, 1933.

The hull of the German airship Graf Zeppelin renovated over the South Atlantic, 1933.

Alfred Eisenstaedt photos of  Street musicians near Rue Saint-Denis in Paris, 1932.

Street musicians near Rue Saint-Denis in Paris, 1932.

Alfred Eisenstaedt photos of  Sophia Loren, Rome, Italy, 1961.

Sophia Loren, Rome, Italy, 1961.

Alfred Eisenstaedt photos of  Sophia Loren in Italian Marriage, Rome, Italy, 1964.

Sophia Loren behind the scenes of the ‘Italian Marriage,’ Rome, Italy, 1964.

Alfred Eisenstaedt photos of  Singer Jane Foreman at NBC 4H Studios in New York, 1937.

Singer Jane Foreman at NBC 4H Studios in New York, 1937.

Salvador Dali with his wife at a New Year's party in New York, January 1956.

Salvador Dali with his wife at a New Year’s party in New York, January 1956.

Alfred Eisenstaedt photos of the Runners at the Italian Forum, Rome, 1934.

Runners at the Italian Forum, Rome, 1934.

Alfred Eisenstaedt photos of  Robert Oppenheimer, Director of the Institute for Advanced Study, discusses the theory of matter in terms of space with Albert Einstein in Princeton, New Jersey, 1947.

Director of the Institute for Advanced Study, Robert Oppenheimer, discusses the theory of matter in terms of space with Albert Einstein in Princeton, New Jersey, 1947.

Read more: Albert Einstein becomes US citizen, 1940

Alfred Eisenstaedt photos of  Professional hunter Haile Selassie in Addis Ababa, Ethiopia, 1935.

Professional hunter Haile Selassie in Addis Ababa, Ethiopia, 1935.

President John F. Kennedy's inauguration ball at the Mayflower Hotel in Washington, DC January 20, 1961.

President John F. Kennedy’s inauguration ball at the Mayflower Hotel in Washington, DC January 20, 1961.

Read more: Historic friendship of Frank Sinatra and John F. Kennedy.

Nursing students at Roosevelt Hospital, New York, 1938.

Nursing students at Roosevelt Hospital, New York, 1938.

Alfred Eisenstaedt photos of  Nightclub Salambo in West Berlin, Germany, 1979.

Nightclub Salambo in West Berlin, Germany, 1979.

Read more: 1950s Paris Nightlife in pictures by Frank Horvat.

Mortar squad of the German army in the Spandau district, Berlin, 1934.

Mortar squad of the German army in the Spandau district, Berlin, 1934.

Mom and child in Hiroshima, Japan, December 1945.

Mom and child in Hiroshima, Japan, December 1945.

Read more: Rare color photos of Hiroshima after the atomic explosion

Model looking into a large mirror, Paris, France, 1932.

Model looking into a large mirror, Paris, France, 1932.

Martin Buber is a Jewish existential philosopher and theorist of Zionism. Jerusalem, Israel, 1953.

Martin Buber, a Jewish existential philosopher, and theorist of Zionism. Jerusalem, Israel, 1953.

Alfred Eisenstaedt photos of  Marlene Dietrich, Berlin, 1929.

Marlene Dietrich, Berlin, 1929.

Marilyn Monroe, 1953.

Marilyn Monroe, 1953.

Marilyn Monroe on the patio at her home in 1953.

Marilyn Monroe on the patio at her home in 1953.

Alfred Eisenstaedt photos of a girl Looks into the mouth of a big fish that dad just caught. Florida, USA, 1956.

Looks into the mouth of a big fish that dad just caught. Florida, USA, 1956.

Location of the bunker where Hitler died. View from Otto Grotewohl Street in East Berlin, 1979.

Location of the bunker where Hitler died. View from Otto Grotewohl Street in East Berlin, 1979.

Hanomag car, Wolfgangsee, Salzburg, Austria, 1932.

Hanomag car, Wolfgangsee, Salzburg, Austria, 1932.

Hedy Lamarr, 1938

Hedy Lamarr, 1938

Horse tram and steamer in the harbor of Izmir, Turkey, 1934.

Horse tram and steamer in the harbor of Izmir, Turkey, 1934.

Alfred Eisenstaedt photos of  Ice bar at the Palace Hotel ice rink in St. Moritz, Switzerland, 1947.

Ice bar at the Palace Hotel ice rink in St. Moritz, Switzerland, 1947.

Leela Tiffany begging in front of Carnegie Hall in New York, 1960.

Leela Tiffany begging in front of Carnegie Hall in New York, 1960.

George Bernard Shaw on his balcony in London, England, 1931.

George Bernard Shaw on his balcony in London, England, 1931.

Children in the puppet theater at the moment when a bad dragon is killed. Tuileries Garden, Paris, 1963.

Children in the puppet theater at the moment when a bad dragon is killed. Tuileries Garden, Paris, 1963.

Dance school in Berlin, 1931.

Dance school in Berlin, 1931.

City mayor and chief of justice, presiding over the court session. Addis Ababa, Ethiopia, 1935.

City mayor and chief of justice, presiding over the court session. Addis Ababa, Ethiopia, 1935.

Chimney sweep in Hamburg, Germany, 1979.

Chimney sweep in Hamburg, Germany, 1979.

Break at the Chinese Mission School in San Francisco, California, 1936.

Break at the Chinese Mission School in San Francisco, California, 1936.

Bertrand Russell, London, England, 1951.

Bertrand Russell, London, England, 1951.

Ballet School in Berlin, 1931.

Ballet School in Berlin, 1931.

Ballet dancer Mikhail Baryshnikov in New York, 1979.

Ballet dancer Mikhail Baryshnikov in New York, 1979.

Ballerinas in the rehearsal room of the George Balanchine Ballet School, 1936.

Ballerinas in the rehearsal room of the George Balanchine Ballet School, 1936.

Athletics coaches on Hiddensee Island, west of Rügen Island, in the Baltic Sea, 1931.

Athletics coaches on Hiddensee Island, west of Rügen Island, in the Baltic Sea, 1931.

Read more: All Pulitzer Prize photos (1942-1967)

Albert Einstein at Princeton, 1948.

Albert Einstein at Princeton, 1948.

An Italian officer sledges in Sestriere, Italian Alps, 1934.

An Italian officer sleds in Sestriere, Italian Alps, 1934.

An optical illusion building in the Peseldorf district, Hamburg, Germany, 1979.

An optical illusion building in the Peseldorf district, Hamburg, Germany, 1979.

Army officer Mussolini manicure in Milan, Italy, 1934.

Army officer of the Mussolini army during the manicure procedure in Milan, Italy, 1934.

A young Englishman looks at himself in the mirror of the Grand Hotel in St. Moritz, Switzerland, 1932.

A young Englishman looks at himself in the mirror of the Grand Hotel in St. Moritz, Switzerland, 1932.

A wicker rocking chair displayed at a flea market in Paris, 1963.

A wicker rocking chair displayed at a flea market in Paris, 1963.

A prostitute on the rue Saint-Denis in Paris, 1932.

A prostitute on the rue Saint-Denis in Paris, 1932.

A New Yorker on vacation in Miami Beach, Florida, USA, 1940.

A New Yorker on vacation in Miami Beach, Florida, USA, 1940.

A man tries to sell a doll on the rue Saint-Denis, Paris, Ile-de-France, France, 1931.

A man tries to sell a doll on the rue Saint-Denis, Paris, Ile-de-France, France, 1931.

A girl at the Weissensee Jewish cemetery in East Berlin, 1979.

A girl at the Weissensee Jewish cemetery in East Berlin, 1979.

A gigantic oak tree in Tisbury, Massachusetts, USA, 1968.

A gigantic oak tree in Tisbury, Massachusetts, USA, 1968.

Alfred Eisenstadt photos of A fresco in the Dominican monastery of San Marco called Providence. It was created by Giovanni Antonio Sogliani in 1536. Italy, Florence, 1935.

A fresco in the Dominican monastery of San Marco called Providence. Giovanni Antonio Sogliani created it in 1536. Italy, Florence, 1935.

Perseus by the Italian sculptor Benvenuto Cellini holds the severed head of a jellyfish. Against the background, a copy of Michelangelo's David, Palazzo Vecchio, Florence, Italy, 1935.

Perseus, by the Italian sculptor Benvenuto Cellini holds the severed head of a jellyfish. Against the background, a copy of Michelangelo’s David, Palazzo Vecchio, Florence, Italy, 1935.

 

Related posts
Stories

Early color pictures of the American lifestyle in the 1920s

5 Mins read
The special value of these 1920s pictures is that they are real color shots, not colorized. The photographers of the National Geographic…
ArtStories

TOP 50 legendary LIFE magazine photographs

7 Mins read
The LIFE magazine archive counts millions of excellent pictures. Oldpics attempted to select the best 50 of them. LIFE magazine always managed…
Photo of a day

Lee Miller in the bathroom of Adolf Hitler

1 Mins read
Somehow this photo of former-model Lee Miller in Hitler’s bathroom is one of the best-known WW2 photography. Its story is noteworthy, though….
Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Billy
Billy
3 years ago

Amazing stuff

×
ArtCitiesStories

1950s Paris Nightlife in pictures by Frank Horvat

1
0
Would love your thoughts, please comment.x
()
x