/* * 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
Архивы Paris - Old Pictures https://oldpics.net Historical photos, stories and even more Mon, 28 Sep 2020 07:34:47 +0000 en-US hourly 1 https://wordpress.org/?v=5.9.5 https://oldpics.net/wp-content/uploads/2017/06/cropped-favicon-32x32.png Архивы Paris - Old Pictures https://oldpics.net 32 32 1950s Paris Nightlife in pictures by Frank Horvat https://oldpics.net/1950s-paris-nightlife-in-pictures-by-frank-horvat/ https://oldpics.net/1950s-paris-nightlife-in-pictures-by-frank-horvat/#respond Mon, 28 Sep 2020 07:34:45 +0000 https://oldpics.net/?p=5737 The frivolous nightlife of Paris of the 1950s (and other decades) always attracted brilliant photographers. Frank Horvat was one of them. In...

Сообщение 1950s Paris Nightlife in pictures by Frank Horvat появились сначала на Old Pictures.

]]>
Paris nightlife 1950sThe frivolous nightlife of Paris of the 1950s (and other decades) always attracted brilliant photographers. Frank Horvat was one of them. In 1956, he photographed prostitutes, strippers, and visitors to a nightclub in the Pigalle square area.

“Robert Doisneau and other humanist photographers greatly romanticized 1950s Paris. But the city did not look like their pictures, – Horvat recalls. – It was poor and dilapidated. Pigalle square was in the center of all poems and songs, but this place didn’t look very pleasant. It was shabby and dirty. Although you can take excellent photos.”

Oldics has published some peculiar photos of the cities of the 1950s. Some bright pictures of the post-war New York. The Soviet lifestyle in the 1950s Moscow, or the noteworthy Vancouver photos (1950s-1960s). You may have seen even some bizarre photographs of the Dior models in Moscow in 1959. Time has come to shed light on the Paris of the 1950s.

Who was Frank Horvat

Frank Horvat was born in 1928 in Opatija (then Italy, nowadays – the territory of Croatia). At the age of fifteen, he traded his collection of postage stamps for a 35mm Retinamat camera. In Horvat moved to Lugano, Switzerland. Then, in the late 1940s, he lived in Milan, studied at the Brera Academy of Arts. 

He first visited the French capital in 1950. During the short business trip (taking some advertising photoshoots), Frank Horvat met well-known photographers Robert Capa and Henri Cartier-Bresson. His prompt meeting with those prominent cameramen meant a lot for a young Horvat. He switched to the Leica camera and traveled to Pakistan and India, taking photos and looking for a unique shooting style.

Moving to Paris in the 1950s

In 1956 Horvat moved to Paris. He was 28 years old, and his reportage photographs hit the Italian magazine Epoca pages in 1951, Paris Match, Life and Picture Post. Soon after his moval to Paris, a New York-based agency commissioned him to photograph a “sexy” story about the ill-famed Parisian nightlife. The photographer happily accepted the task because he needed money.

Horvat went to Pigalle Square, on the border of the 9th and 18th districts. This place was a kind of red-light district in Paris. It was famous for sex shops and frivolous adult entertainment venues, including the famous Moulin Rouge cabaret. Here, at the Pigalle, there was once the studio of Henri Toulouse-Lautrec. It was a place where Vincent Van Gogh, Andre Breton, and Pablo Picasso lived.

The difficulties of the entrance

Horvat, unsurprisingly, couldn’t enter any of the nightlife locations with his camera. The only place he could infiltrate to was the Le Sphinx club. It wasn’t the largest and not the most prestigious strip club, named after the legendary Parisian brothel. Nonetheless, this place was well-known. Brassai and Man Ray had their brilliant photoshoots here in the 1930s, Cary Grant and Humphrey Bogart visited it, and Marlene Dietrich met Madeleine Solange.

The doorman of the Le Sphinx let Frank Horvat into the club for 5,000 francs. The photographer had fifteen minutes only, as his presence provoked a protest from the girls. However, Horvat turned out to be a quick photographer and, by that time, had managed to shoot five films. One of the most famous photographs taken that night (below) took the Vogue magazine’s whole spread.

The photographer stayed in France and documented life in the capital, but this is a completely different story. And in this collection, “Paris for tourists” or “Paris at night” 1950s through the lens of Frank Horvat. Most of the pictures are from the Le Sphinx club, but there are also a few pictures from the rue Saint-Denis.

Read more: 50 amazing and bizarre photos 

1950s Paris Nightlife in pictures by Frank Horvat

1950s Paris Nightlife in pictures by Frank Horvat

“I don’t know if he is a businessman or a tourist, but the main thing is that he is alone and drinks champagne,” Horvat said about that photo. – It doesn’t look like the character is having a great time, but he “made” this shot. The eerie painting on the wall behind the visitor contributes to the magic of the stilled moment. When the stripper walked by, her naked body looked like a marble sculpture in the light of the lamps. It was not I who made it, but it was given to me. I can never repeat it again, even if someone pays me a million pounds. “

A selfie with a strip dancer at the Le Sphynx club

A selfie with a strip dancer at the Le Sphinx club

A dance for a business traveler

Dance for a business traveler

A club scene at the Pigalle Square

A club scene at the Pigalle Square

1950s Paris

Her body looked like a marble statue

Her body looked like a marble statue

1950s Paris Nightlife

Cabaret Lido spectator

Cabaret Lido spectator

Inside of the Le Sphinx club

Inside of the Le Sphinx club

Le Sphinx dancer, Paris

Le Sphinx dancer, Paris

Le Sphinx dancers

Le Sphinx dancers

Paris nightlife, 1950s

Prostitute in the street of Paris, 1950s

A prostitute in the street of Paris, the 1950s

Some place at the Pigalle Square

Some bar at the Pigalle Square

The girl in the Le Sphinx

The night performance for the US tourists

The night performance for the US tourists

The performance at the Le Sphinx, Paris, 1950s

The performance at the Le Sphinx, Paris, 1950s

The police cab takes a prostitutes away

The police cab takes a prostitute away

This doorman was lucky on that night. He received 5000 franks for letting Frank Horvat in to the club

This doorman was lucky on that night. He received 5000 franks for letting Frank Horvat into the club

Working women at Saint Denie street

Working women at Saint-Denis street

Сообщение 1950s Paris Nightlife in pictures by Frank Horvat появились сначала на Old Pictures.

]]>
https://oldpics.net/1950s-paris-nightlife-in-pictures-by-frank-horvat/feed/ 0
Vintage photos of Paris in the 1890s by Emile Zola https://oldpics.net/vintage-photos-of-paris-in-the-1890s-by-emile-zola/ https://oldpics.net/vintage-photos-of-paris-in-the-1890s-by-emile-zola/#respond Mon, 21 Sep 2020 13:16:51 +0000 https://oldpics.net/?p=5402 It looks like Emile Zola knew how to hold in his hands, not only a pen but also a camera. Also, we...

Сообщение Vintage photos of Paris in the 1890s by Emile Zola появились сначала на Old Pictures.

]]>
It looks like Emile Zola knew how to hold in his hands, not only a pen but also a camera. Also, we hope that all Oldpics visitors know that Emile Zola was a genius writer. Now, let’s take a look at his vintage photos of Paris and decide if he was a tolerable photographer.

Emile Zola took most of these photographs in Paris at the turn of the 19th and 20th centuries. He tried himself as a cameraman shortly after the 1899 World Exhibition was over. The one that brought the Eiffel Tower to Paris.

And yes, we know that Emile Zola, together with Alexandre Dumas, Guy de Maupassant, and other respected artists, signed a letter against its construction. He called on the Parisians “in the name of taste, in the name of French art, which is in danger, to protest against the construction in the heart of our capital the useless and ugly Eiffel Tower.” Nevertheless, the tower constantly appears in his photographs. Apparently, we have before us a classic case of “endure – amour.”

Emile Zola was in love with Paris

After returning home from exile in England, Zola again fell in love with Paris in all its manifestations. We remind you that he was in exile to avoid arrest after his scandalous letter “J’accuse …!” So Emile Zola focused his lens on random passers-by, his young wife, and two daughters, after all, on himself.

Emile Zola didn’t practice the pictorial photography genre as Leonard Misonne. He neither published his photos in the magazine of Alfred Stieglitz, who was constantly looking for the new photo talents during that historical period. Nonetheless, take a look at the selection of 25 excellent shots.

Read more: 100 most important pictures in history

 

World Fairy of 1899

World Fairy of 1899

The stairs to the Sacre-Coeur

The stairs to the Sacre-Coeur

The river Seine

The river Seine

The mud on the streets of Paris

The mud on the streets of Paris

That's how Eiffel Tower was highlighted in the new 1900 year

That’s how Eiffel Tower was highlighted in the new 1900 year

Paris images by Emile Zola

One of the Train Station in Paris, 1890s

One of the Train Station in Paris, the 1890s

Paris photos by Emile Zola

Paris pictures by Emile Zola

 

Pedestrian bridge in Paris

Pedestrian bridge in Paris

Emile Zola's wife

Zola’s wife

Emile Zola with family

Emile Zola with family

Emile Zola with his dog

The writer’s dog

Emile Zola photography

Emile Zola didn't like the idea of the Eifel Tower construction. Although, he took a lot of its photos

Zola didn’t like the idea of the Eiffel Tower construction. Although he took a lot of its photos

Emile Zola and his wife

Writer and his wife

Autumn in Paris

Autumn in Paris

Another photo of Paris by Emile Zola

Another photo of Paris by French novelist

Amazing view from the Eiffel Tower

Amazing view from the Eiffel Tower

A short rest during a bike trip

A short rest during a bike trip

A ship in the waters of Sienne

A ship in the waters of Sienne

A selfie by Emile Zola

A selfie by Zola

A famous Paris 1890s attraction

A famous Paris 1890s attraction

Сообщение Vintage photos of Paris in the 1890s by Emile Zola появились сначала на Old Pictures.

]]>
https://oldpics.net/vintage-photos-of-paris-in-the-1890s-by-emile-zola/feed/ 0
Gigantic French telescope, Paris, 1900 https://oldpics.net/gigantic-french-telescope-paris-1900/ https://oldpics.net/gigantic-french-telescope-paris-1900/#respond Fri, 28 Aug 2020 11:54:43 +0000 https://oldpics.net/?p=4870 Gigantic French telescope is a noteworthy gem among other Oldpics vintage photos, taking to account how old it is. So, it’s the...

Сообщение Gigantic French telescope, Paris, 1900 появились сначала на Old Pictures.

]]>
Gigantic French telescope, 1900Gigantic French telescope is a noteworthy gem among other Oldpics vintage photos, taking to account how old it is. So, it’s the largest refractor telescope that people ever built. French engineers assembled this gigantic telescope for the World Exhibition in Paris in 1900. Yes, an Eifel Tower appeared during this event too. 

The telescope became the main object in the Palace of Optics. The focal length of the telescope was 57 meters, and the lens diameter was 1.25 meters.

The engineers designed this telescope to impress. Although, nobody extracted any practical use of it. Astronomers used it just several times for direct telescopic purposes. Astronomer Théophile Moreu observed the sunspots with its help. Charles Le Morvan photographed the moon through its lens. After the end of the exhibition, no one was willing to buy a gigantic telescope. Therefore, the telescope was ingloriously dismantled.

 

Сообщение Gigantic French telescope, Paris, 1900 появились сначала на Old Pictures.

]]>
https://oldpics.net/gigantic-french-telescope-paris-1900/feed/ 0
First known photo (daguerreotype) of human. Boulevard du Temple, Paris, 1838 https://oldpics.net/boulevard-du-temple-paris-1838-first-known-photo-human/ https://oldpics.net/boulevard-du-temple-paris-1838-first-known-photo-human/#respond Mon, 24 Apr 2017 06:28:30 +0000 http://oldpics.net/?p=530 Boulevard du Temple, Paris, 8 in the morning. This photo was made in 1838 and it`s for now the first known photo...

Сообщение First known photo (daguerreotype) of human. Boulevard du Temple, Paris, 1838 появились сначала на Old Pictures.

]]>
A daguerreotype. First known photo of human. Boulevard du Temple, Paris. 1838.

Try to find human on this daguerreotype.

Boulevard du Temple, Paris, 8 in the morning. This photo was made in 1838 and it`s for now the first known photo of human. It is a daguerreotype – an image recorder on a sheet of copper, coated with silver and developed by mercury fumes. It was made by an inventor Louis-Jacques-Mandé Daguerre (by whom daguerreotypes actually are named). Why morning street of Paris is so empty in these morning hour? To make this photo Daguerre would have to use an exposure for 10-15 minutes. But if you look on bottom left you’ll see a customer having his shoes polished by a bootblack. 

Сообщение First known photo (daguerreotype) of human. Boulevard du Temple, Paris, 1838 появились сначала на Old Pictures.

]]>
https://oldpics.net/boulevard-du-temple-paris-1838-first-known-photo-human/feed/ 0