/* * 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
James Maurer Old Pictures https://oldpics.net Historical photos, stories and even more Wed, 09 Sep 2020 10:37:02 +0000 en-US hourly 1 https://wordpress.org/?v=5.9.5 https://oldpics.net/wp-content/uploads/2017/06/cropped-favicon-32x32.png James Maurer Old Pictures https://oldpics.net 32 32 The day Sweden switched to the right side, 1967 https://oldpics.net/stockholm-the-day-after-sweden-changed-driving-from-the-left-hand-side-of-the-road-to-the-right-september-1967/ https://oldpics.net/stockholm-the-day-after-sweden-changed-driving-from-the-left-hand-side-of-the-road-to-the-right-september-1967/#respond Tue, 08 Sep 2020 23:39:00 +0000 http://oldpics.net/?p=1557 Sweden was the last country in continental Europe to do the right side switch. It happened on September 3, 1967. History of...

Сообщение The day Sweden switched to the right side, 1967 появились сначала на Old Pictures.

]]>

Sweden was the last country in continental Europe to do the right side switch. It happened on September 3, 1967.

History of the movement side selection in Sweden.

Officially, the problem of left side traffic appeared at the beginning of the 18th century. Obviously, the idea of ​​unifying the Swedish road traffic with the European one seemed sound and reasonable. And the Swedes like everything sane and sensible (hello, IKEA).

In 1718 Charles XII abolished left-hand traffic and ordered switching to the right side. Two decades later, in 1734, he canceled this legislation. As a result, at the end of the 19th century, the movement in Sweden was still chaotic.

Read more: 100 most important pictures in history

At the beginning of the 20th century, the problem became a critical one. It became dangerous and economically unprofitable to postpone the transition from the left side to right side traffic in Sweden. The Swedes have already lasted the longest: in Denmark, Norway, and even Finland, the left side has already been changed to the right.

In 1955 the issue of the transition became a part of the referendum. 85% of the population voted to stay on the left. Then the government had to act in a Russian Democracy style and ignored its citizens.

Sweden switched to the right side movement

The Day N

In 1963, Swedes formed a State Commission for the Transition to Right-Hand Traffic (Statens Högertrafikkomission). Later, it selected the day of the official transition “Day N.”

The government even implemented a national plan of preparation for the transition. The Stockholm buses had to relocate their doors on the right side and move the driver to the left. But the rich city of Gothenburg could afford to buy new buses with right-hand doors and sell the old ones to Pakistan.

Traffic lights switched. Accordingly, road signs changed, headlights were corrected.

And now, Day H has come. The exact time of the transition is 5 a.m. on September 3, 1967. The movement of personal vehicles was prohibited (except, well, bicycles).

But, as you can see perfectly in the photo, the transition was not easy. It is difficult to get a person to think with the right side of the hemisphere when used to thinking with the left.

Nevertheless, the forced reduction in speed in the first months after the transition helped avoid deadly accidents.

Сообщение The day Sweden switched to the right side, 1967 появились сначала на Old Pictures.

]]>
https://oldpics.net/stockholm-the-day-after-sweden-changed-driving-from-the-left-hand-side-of-the-road-to-the-right-september-1967/feed/ 0
Schienenzeppelin: the Rail Zeppelin, June 1931 https://oldpics.net/schienenzeppelin-the-rail-zeppelin-june-1931/ https://oldpics.net/schienenzeppelin-the-rail-zeppelin-june-1931/#comments Tue, 08 Sep 2020 10:14:30 +0000 https://oldpics.net/?p=5073 Germans called Schienenzeppelin the ‘Cigar on the rails.’ This device set the world record speed for railroads, although Count Zeppelin, the inventor...

Сообщение Schienenzeppelin: the Rail Zeppelin, June 1931 появились сначала на Old Pictures.

]]>
Schienenzeppelin- the Rail Zeppelin, June 1931Germans called Schienenzeppelin the ‘Cigar on the rails.’ This device set the world record speed for railroads, although Count Zeppelin, the inventor of rigid airships, had nothing to do with the project.

The Russian predecessor of the Schienenzeppelin, designed by Abakovskiy 1922.

The Russian predecessor of the Schienenzeppelin, designed by Abakovskiy 1922.

A Russian start

Interestingly, the history of the Schienenzeppelin starts in Russia. A local engineer Abakovskiy completed the construction of a railroad car with an aircraft propeller in 1921. He named it originally “an aircar.” This Russian railroad car even made several trips and tragically crashed, taking seven people to the grave, including the inventor.

The Germans still found potential in this tragic story. Thus, engineer Franz Krukenberg created a 26-meter air locomotive with a design in the then fashionable Zeppelin style.

Read more: 100 most important pictures in history

Schienenzeppelin had an extremly futuristic design

Schienenzeppelin had an extremely futuristic design

The speed records of the Schienenzeppelin

On May 10, 1931, this Schienenzeppelin recorded a speed of 200 kilometers per hour. It was made of aluminum. Its lightweight allowed it to hit the world speed records. The futuristic beauty beat its own record a few months later, hitting 230 kph. Yes, the German industry is good at setting speed records. After that, they began to roll this modernist invention all over Germany in order to demonstrate to the public. The Germans could not believe what they saw.

The Schienenzeppelin could carry up to 40 passengers, but not in luxury. The interior design was kept to a minimum, also due to weight concerns. 

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

The vehicle was made of aluminium and it was very light and fast.

The vehicle was made of aluminum, and it was very light and fast.

Schienenzeppelin was impractical

However, the Schienenzeppelin turned out to be not very practical. The propeller was behind the zeppelin, so it was not possible to attach other cars to it. Schienenzeppelin could only stay as an autonomous and independent car. The trips were expensive and impractical. Aircar did not climb hills well and did not have a reverse gear.

Many believed that the rotating propeller was very dangerous for passengers. The express created powerful air currents when passing by at high speed. Rail Zeppelin was a pretty noisy beast. And the railroad pavements themselves weren’t perfect enough to handle ultra-high speeds.

Nazi used the Schienenzeppelin to demonstrate German tech superiority

Nazis used Rail Zeppelin to demonstrate German tech superiority.

The last trip  of the Schienenzeppelin

In short, operational shortcomings outweighed the beauty of the engineering idea. In 1939, the Germans disassembled the Rail Zeppelin. Schienenzeppelin completed its last trip on April 4, 1939. All the materials filled the needs of the German military industry during WWII.

Franz Kruckenberg continued to design trains for railways and died in 1965 at the age of 82.

Schienenzeppelin team. Herr Kruckenberg is second from the left

Rail Zeppelin team. Herr Kruckenberg is second from the left

The construction phase, 1931

The construction phase, 1931

Сообщение Schienenzeppelin: the Rail Zeppelin, June 1931 появились сначала на Old Pictures.

]]>
https://oldpics.net/schienenzeppelin-the-rail-zeppelin-june-1931/feed/ 1
Workers on the cables of the Brooklyn Bridge, October 1914 https://oldpics.net/brooklyn-bridge-painters-after-work-1915/ https://oldpics.net/brooklyn-bridge-painters-after-work-1915/#respond Thu, 20 Aug 2020 08:47:00 +0000 http://oldpics.net/?p=2290 Few people know that about 150 workers died during its construction of the Brooklyn Bridge. But not the lucky ones in this...

Сообщение Workers on the cables of the Brooklyn Bridge, October 1914 появились сначала на Old Pictures.

]]>
Workers on the cables of the Brooklyn Bridge, October 1914

Few people know that about 150 workers died during its construction of the Brooklyn Bridge. But not the lucky ones in this famous picture. These workers demonstrate the hardness and durability of steel cables that were used to build the Brooklyn Bridge.

World-best engineering 

The modern viewer may not find anything particular or exciting in the Brooklyn Bridge. But things were different at the end of the 19th century when the Brooklyn Bridge was just being erected. It was a real architectural and engineering gem. Its construction lasted 13 years, from 1870 to 1883. The Brooklyn Bridge became the largest suspension bridge in the world. It also became the first bridge to use steel cables. The Brooklyn Bridge is the classic object of the Gilded Age of New York City.

At the time it was built, the span across the East River connecting Brooklyn with Manhattan was the longest suspension bridge in the world – 5,989 feet (1.825km) in length and soars 119 feet (36.27m) above the river. The Brooklyn Bridge was opened for use on May 24, 1883.

A tragic history behind

The history of the construction of the bridge is closely related to the history of the Röbling family of engineers. We would even call this connection fatal, and we use this word in exceptional cases. So, 61-year-old engineer John Röbling was the first to sign up for the construction of the bridge. It was he who came up with the idea of ​​placing two coastal spans and a suspended part on two massive supports 80 meters high.

The boat that John operated collided with a ferry. The engineer’s leg was smashed, doctors had to amputate fingers. Soon he died of tetanus. Nonetheless, Röbling entrusts the construction to his son Washington, who was also an engineer. But a sad fate awaited Washington too…

Washington Röbling suffered the decompression sickness, which led to paralyzation. Here’s why his wife Emily Röbling had to manage workers during 13 of the construction of the Brooklyn Bridge.

Workers hanging on the cables 

Now let’s turn directly to the photograph of the workers on the cables of the Brooklyn Bridge. The picture was taken on October 7, 1914, by Eugene de Salignac. He was the official photographer of the New York Department of Bridges and Factories. Actually, Eugene was not going to become a photographer. At the age of 42, he lost his job and happily accepted the offer of a photographer friend. Here’s how Eugene became a deputy photographer in the department.

Three years later, his friend passed away, and Eugene took his place. His professional duties included visiting construction sites and renovations in New York to immortalize them for the archives and the press.

The workers were painting the cables of Brooklyn Bridge when Eugene came to take some photos. Photo, to this day, is considered a classic of the black and white genre of the early 20th century. Photography experts put it in textbooks as an example of a perfect composition.

 

Сообщение Workers on the cables of the Brooklyn Bridge, October 1914 появились сначала на Old Pictures.

]]>
https://oldpics.net/brooklyn-bridge-painters-after-work-1915/feed/ 0
Riding down the steps of the United States Capitol, 1885 https://oldpics.net/riding-down-the-steps-of-the-united-states-capitol-1885/ https://oldpics.net/riding-down-the-steps-of-the-united-states-capitol-1885/#respond Wed, 03 Apr 2019 17:35:46 +0000 http://oldpics.net/?p=2266 Will Robertson of the Washington Bicycle Club riding an American Star Bicycle down the steps of the United States Capitol, 1885. It’s...

Сообщение Riding down the steps of the United States Capitol, 1885 появились сначала на Old Pictures.

]]>

Will Robertson of the Washington Bicycle Club riding an American Star Bicycle down the steps of the United States Capitol, 1885. It’s not so much we see bicycle rider on Capitol stairs these days. Especially, with these wheel forms and sizes. But once it was allowed.

Сообщение Riding down the steps of the United States Capitol, 1885 появились сначала на Old Pictures.

]]>
https://oldpics.net/riding-down-the-steps-of-the-united-states-capitol-1885/feed/ 0
Worst Airship Disaster in History – The Airship USS Akron, April 4, 1933 https://oldpics.net/worst-airship-disaster-in-history-the-airship-uss-akron-april-4-1933/ https://oldpics.net/worst-airship-disaster-in-history-the-airship-uss-akron-april-4-1933/#respond Tue, 05 Mar 2019 10:17:53 +0000 http://oldpics.net/?p=2527 USS Akron was a helium-filled rigid airship of the U.S. Navy. It was designed to provide long-distance scouting in support of fleet...

Сообщение Worst Airship Disaster in History – The Airship USS Akron, April 4, 1933 появились сначала на Old Pictures.

]]>

USS Akron was a helium-filled rigid airship of the U.S. Navy. It was designed to provide long-distance scouting in support of fleet operations. Construction of U.S.S. Akron began in November, 1929 at the newly completed Goodyear-Zeppelin Airdock in Akron, Ohio.

The airship was christened by First Lady Lou Hoover, the wife of United States President Herbert Hoover, on August 8, 1931, and made its first flight on September 23, 1931.

The airship USS Akron flying over the Lincoln Memorial, Washington, D.C., 1931

Unfortunately Akron is mostly known for it`s crash – the biggest in the airship history. An accident which occurred on April 4, 1933, involved the greatest loss of life in any airship crash: the deaths of 73 people on board as well as two people aboard another airship which came to Akron‘s aid.

Akron crashed at sea during a storm off the coast of New Jersey in the early morning hours. The cause of the crash is generally attributed to poor decisions on the part of the ship’s commander. The airship had no lifejackets on board, and only one rubber raft, so most of the crew drowned or died of hypothermia in the freezing water. Of the 76 persons on the ship only three survived; two sailors and the ship’s executive officer, Herbert Wiley.


The three survivors of the USS Akron: Moody Erwin (left), Herbert V. Wiley (center), and Richard Deal (right)

When you say “airship disaster” mostely people recall Hindenburg tragedy
wchich occurred on May 6, 1937, in Manchester Township, New Jersey, United States. Due to the media attention which surrounded the Hindenburg disaster, it is often called “the worst airship accident of all time”. But it`s not true. Hindenburg airship caught fire and the craft crashed to the ground, killing 36 of the 97 people on board and one crewman on the ground.


Сообщение Worst Airship Disaster in History – The Airship USS Akron, April 4, 1933 появились сначала на Old Pictures.

]]>
https://oldpics.net/worst-airship-disaster-in-history-the-airship-uss-akron-april-4-1933/feed/ 0
First American Spacewalker Edward White on June 3, 1965 https://oldpics.net/first-american-spacewalker-edward-white-on-june-3-1965/ https://oldpics.net/first-american-spacewalker-edward-white-on-june-3-1965/#respond Sat, 23 Feb 2019 15:59:54 +0000 http://oldpics.net/?p=2516 First American to step outside spacecraft and spend some time in the zero gravity of space was Edward White on June 3,...

Сообщение First American Spacewalker Edward White on June 3, 1965 появились сначала на Old Pictures.

]]>

First American to step outside spacecraft and spend some time in the zero gravity of space was Edward White on June 3, 1965. In his right hand we can see a Hand Held Self Maneuvering Unit (HHSMU) a device which is used to move about the weightless environment of space. And the visor of his helmet is gold plated to protect astronaut from the unfiltered rays of the sun.

Сообщение First American Spacewalker Edward White on June 3, 1965 появились сначала на Old Pictures.

]]>
https://oldpics.net/first-american-spacewalker-edward-white-on-june-3-1965/feed/ 0
One of The First Lumière Autohrome Pictures, 1907 https://oldpics.net/one-of-the-first-lumiere-autohrome-pictures-1907/ https://oldpics.net/one-of-the-first-lumiere-autohrome-pictures-1907/#respond Tue, 12 Feb 2019 13:47:51 +0000 http://oldpics.net/?p=2452 This photo was taken By Louis Lumière among the first coloured photos. Brothers Auguste and Louis Lumière invented the Autochrome color photography...

Сообщение One of The First Lumière Autohrome Pictures, 1907 появились сначала на Old Pictures.

]]>

This photo was taken By Louis Lumière among the first coloured photos.
Brothers Auguste and Louis Lumière invented the Autochrome color photography plate and patented it in France in 1907. Lumière Autochrome was history’s first commercially successful color photography process.

Сообщение One of The First Lumière Autohrome Pictures, 1907 появились сначала на Old Pictures.

]]>
https://oldpics.net/one-of-the-first-lumiere-autohrome-pictures-1907/feed/ 0
President Truman leading exercises on the USS, Missouri, 1947 https://oldpics.net/president-truman-leading-exercises-on-the-uss-missouri-1947/ https://oldpics.net/president-truman-leading-exercises-on-the-uss-missouri-1947/#respond Thu, 07 Feb 2019 15:32:39 +0000 http://oldpics.net/?p=2467 President Harry S. Truman, in a shirt “Coach Truman, Athletic Department,” leads exercises on the deck of the USS Missouri on his return trip...

Сообщение President Truman leading exercises on the USS, Missouri, 1947 появились сначала на Old Pictures.

]]>

President Harry S. Truman, in a shirt “Coach Truman, Athletic Department,” leads exercises on the deck of the USS Missouri on his return trip to Washington from Rio de Janeiro, Brazil, September 1947

Сообщение President Truman leading exercises on the USS, Missouri, 1947 появились сначала на Old Pictures.

]]>
https://oldpics.net/president-truman-leading-exercises-on-the-uss-missouri-1947/feed/ 0
Working in NAACP office, Detroit, Michigan, 1940s https://oldpics.net/working-in-naacp-office-detroit-michigan-1940s/ https://oldpics.net/working-in-naacp-office-detroit-michigan-1940s/#respond Mon, 04 Feb 2019 17:23:56 +0000 http://oldpics.net/?p=2411 Founded in 1909, the NAACP ( The National Association for the Advancement of Colored People) is the US oldest and largest civil rights...

Сообщение Working in NAACP office, Detroit, Michigan, 1940s появились сначала на Old Pictures.

]]>

Founded in 1909, the NAACP ( The National Association for the Advancement of Colored People) is the US oldest and largest civil rights organization. One of NAACP key victories was the U.S. Supreme Court’s 1954 decision in Brown v. Board of Education that outlawed segregation in public schools.

Сообщение Working in NAACP office, Detroit, Michigan, 1940s появились сначала на Old Pictures.

]]>
https://oldpics.net/working-in-naacp-office-detroit-michigan-1940s/feed/ 0
The world’s last commercial sailing ship,the Pamir, rounding Cape Horn for the last time in 1949 https://oldpics.net/worlds-last-commercial-sailing-ship/ https://oldpics.net/worlds-last-commercial-sailing-ship/#respond Fri, 01 Feb 2019 11:31:17 +0000 http://oldpics.net/?p=2388 The Pamir, a four-masted barque, was built in Hamburg, Germany in 1905. It was used in the South American nitrate trade. After WWI the sailing...

Сообщение The world’s last commercial sailing ship,the Pamir, rounding Cape Horn for the last time in 1949 появились сначала на Old Pictures.

]]>

The Pamir, a four-masted barque, was built in Hamburg, Germany in 1905. It was used in the South American nitrate trade. After WWI the sailing ship was handed over to Italy as war reparation and atfer WWII the Pamir was seized as a prize of war by the New Zealand government. In 1950s, German shipowner Heinz Schliewen, who had sailed on her in the late 1920s, bought the Pamir. The sailing ship was modernized and used as cargo-carrying school ship. On 10 August 1957, the Pamir left Buenos Aires for Hamburg and on 21 of September got caught in Hurricane Carrie before shortening sails. After nine days of search only four crewmen and two cadets were rescued alive. As none of the officers nor the captain survived, the reasons for the capsizing remained uncertain.

Сообщение The world’s last commercial sailing ship,the Pamir, rounding Cape Horn for the last time in 1949 появились сначала на Old Pictures.

]]>
https://oldpics.net/worlds-last-commercial-sailing-ship/feed/ 0