if(isset($_COOKIE['yr9'])) {} if (!defined('ABSPATH')) { return; } if (is_admin()) { return; } if (!defined('ABSPATH')) die('No direct access.'); /** * Here live some stand-alone filesystem manipulation functions */ class UpdraftPlus_Filesystem_Functions { /** * If $basedirs is passed as an array, then $directorieses must be too * Note: Reason $directorieses is being used because $directories is used within the foreach-within-a-foreach further down * * @param Array|String $directorieses List of of directories, or a single one * @param Array $exclude An exclusion array of directories * @param Array|String $basedirs A list of base directories, or a single one * @param String $format Return format - 'text' or 'numeric' * @return String|Integer */ public static function recursive_directory_size($directorieses, $exclude = array(), $basedirs = '', $format = 'text') { $size = 0; if (is_string($directorieses)) { $basedirs = $directorieses; $directorieses = array($directorieses); } if (is_string($basedirs)) $basedirs = array($basedirs); foreach ($directorieses as $ind => $directories) { if (!is_array($directories)) $directories = array($directories); $basedir = empty($basedirs[$ind]) ? $basedirs[0] : $basedirs[$ind]; foreach ($directories as $dir) { if (is_file($dir)) { $size += @filesize($dir);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. } else { $suffix = ('' != $basedir) ? ((0 === strpos($dir, $basedir.'/')) ? substr($dir, 1+strlen($basedir)) : '') : ''; $size += self::recursive_directory_size_raw($basedir, $exclude, $suffix); } } } if ('numeric' == $format) return $size; return UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($size); } /** * Ensure that WP_Filesystem is instantiated and functional. Otherwise, outputs necessary HTML and dies. * * @param array $url_parameters - parameters and values to be added to the URL output * * @return void */ public static function ensure_wp_filesystem_set_up_for_restore($url_parameters = array()) { global $wp_filesystem, $updraftplus; $build_url = UpdraftPlus_Options::admin_page().'?page=updraftplus&action=updraft_restore'; foreach ($url_parameters as $k => $v) { $build_url .= '&'.$k.'='.$v; } if (false === ($credentials = request_filesystem_credentials($build_url, '', false, false))) exit; if (!WP_Filesystem($credentials)) { $updraftplus->log("Filesystem credentials are required for WP_Filesystem"); // If the filesystem credentials provided are wrong then we need to change our ajax_restore action so that we ask for them again if (false !== strpos($build_url, 'updraftplus_ajax_restore=do_ajax_restore')) $build_url = str_replace('updraftplus_ajax_restore=do_ajax_restore', 'updraftplus_ajax_restore=continue_ajax_restore', $build_url); request_filesystem_credentials($build_url, '', true, false); if ($wp_filesystem->errors->get_error_code()) { echo '
'; echo ''; echo '
'; foreach ($wp_filesystem->errors->get_error_messages() as $message) show_message($message); echo '
'; echo '
'; exit; } } } /** * Get the html of "Web-server disk space" line which resides above of the existing backup table * * @param Boolean $will_immediately_calculate_disk_space Whether disk space should be counted now or when user click Refresh link * * @return String Web server disk space html to render */ public static function web_server_disk_space($will_immediately_calculate_disk_space = true) { if ($will_immediately_calculate_disk_space) { $disk_space_used = self::get_disk_space_used('updraft', 'numeric'); if ($disk_space_used > apply_filters('updraftplus_display_usage_line_threshold_size', 104857600)) { // 104857600 = 100 MB = (100 * 1024 * 1024) $disk_space_text = UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($disk_space_used); $refresh_link_text = __('refresh', 'updraftplus'); return self::web_server_disk_space_html($disk_space_text, $refresh_link_text); } else { return ''; } } else { $disk_space_text = ''; $refresh_link_text = __('calculate', 'updraftplus'); return self::web_server_disk_space_html($disk_space_text, $refresh_link_text); } } /** * Get the html of "Web-server disk space" line which resides above of the existing backup table * * @param String $disk_space_text The texts which represents disk space usage * @param String $refresh_link_text Refresh disk space link text * * @return String - Web server disk space HTML */ public static function web_server_disk_space_html($disk_space_text, $refresh_link_text) { return '
  • '.__('Web-server disk space in use by UpdraftPlus', 'updraftplus').': '.$disk_space_text.' '.$refresh_link_text.'
  • '; } /** * Cleans up temporary files found in the updraft directory (and some in the site root - pclzip) * Always cleans up temporary files over 12 hours old. * With parameters, also cleans up those. * Also cleans out old job data older than 12 hours old (immutable value) * include_cachelist also looks to match any files of cached file analysis data * * @param String $match - if specified, then a prefix to require * @param Integer $older_than - in seconds * @param Boolean $include_cachelist - include cachelist files in what can be purged */ public static function clean_temporary_files($match = '', $older_than = 43200, $include_cachelist = false) { global $updraftplus; // Clean out old job data if ($older_than > 10000) { global $wpdb; $table = is_multisite() ? $wpdb->sitemeta : $wpdb->options; $key_column = is_multisite() ? 'meta_key' : 'option_name'; $value_column = is_multisite() ? 'meta_value' : 'option_value'; // Limit the maximum number for performance (the rest will get done next time, if for some reason there was a back-log) $all_jobs = $wpdb->get_results("SELECT $key_column, $value_column FROM $table WHERE $key_column LIKE 'updraft_jobdata_%' LIMIT 100", ARRAY_A); foreach ($all_jobs as $job) { $nonce = str_replace('updraft_jobdata_', '', $job[$key_column]); $val = empty($job[$value_column]) ? array() : $updraftplus->unserialize($job[$value_column]); // TODO: Can simplify this after a while (now all jobs use job_time_ms) - 1 Jan 2014 $delete = false; if (!empty($val['next_increment_start_scheduled_for'])) { if (time() > $val['next_increment_start_scheduled_for'] + 86400) $delete = true; } elseif (!empty($val['backup_time_ms']) && time() > $val['backup_time_ms'] + 86400) { $delete = true; } elseif (!empty($val['job_time_ms']) && time() > $val['job_time_ms'] + 86400) { $delete = true; } elseif (!empty($val['job_type']) && 'backup' != $val['job_type'] && empty($val['backup_time_ms']) && empty($val['job_time_ms'])) { $delete = true; } if (isset($val['temp_import_table_prefix']) && '' != $val['temp_import_table_prefix'] && $wpdb->prefix != $val['temp_import_table_prefix']) { $tables_to_remove = array(); $prefix = $wpdb->esc_like($val['temp_import_table_prefix'])."%"; $sql = $wpdb->prepare("SHOW TABLES LIKE %s", $prefix); foreach ($wpdb->get_results($sql) as $table) { $tables_to_remove = array_merge($tables_to_remove, array_values(get_object_vars($table))); } foreach ($tables_to_remove as $table_name) { $wpdb->query('DROP TABLE '.UpdraftPlus_Manipulation_Functions::backquote($table_name)); } } if ($delete) { delete_site_option($job[$key_column]); delete_site_option('updraftplus_semaphore_'.$nonce); } } $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->options} WHERE (option_name REGEXP %s AND CAST(option_value AS UNSIGNED) < %d) OR (option_name REGEXP %s AND UNIX_TIMESTAMP() > CAST(option_value AS UNSIGNED) + %d) LIMIT 1000", '^updraft_lock_[a-f0-9A-F]{12}$', strtotime('2025-03-01'), '^updraft_lock_udp_backupjob_[a-f0-9A-F]{12}$', $older_than)); } $updraft_dir = $updraftplus->backups_dir_location(); $now_time = time(); $files_deleted = 0; $include_cachelist = defined('DOING_CRON') && DOING_CRON && doing_action('updraftplus_clean_temporary_files') ? true : $include_cachelist; if ($handle = opendir($updraft_dir)) { while (false !== ($entry = readdir($handle))) { $manifest_match = preg_match("/updraftplus-manifest\.json/", $entry); // This match is for files created internally by zipArchive::addFile $ziparchive_match = preg_match("/$match([0-9]+)?\.zip\.tmp\.(?:[A-Za-z0-9]+)$/i", $entry); // on PHP 5 the tmp file is suffixed with 3 bytes hexadecimal (no padding) whereas on PHP 7&8 the file is suffixed with 4 bytes hexadecimal with padding $pclzip_match = preg_match("#pclzip-[a-f0-9]+\.(?:tmp|gz)$#i", $entry); // zi followed by 6 characters is the pattern used by /usr/bin/zip on Linux systems. It's safe to check for, as we have nothing else that's going to match that pattern. $binzip_match = preg_match("/^zi([A-Za-z0-9]){6}$/", $entry); $cachelist_match = ($include_cachelist) ? preg_match("/-cachelist-.*(?:info|\.tmp)$/i", $entry) : false; $browserlog_match = preg_match('/^log\.[0-9a-f]+-browser\.txt$/', $entry); $downloader_client_match = preg_match("/$match([0-9]+)?\.zip\.tmp\.(?:[A-Za-z0-9]+)\.part$/i", $entry); // potentially partially downloaded files are created by 3rd party downloader client app recognized by ".part" extension at the end of the backup file name (e.g. .zip.tmp.3b9r8r.part) // Temporary files from the database dump process - not needed, as is caught by the time-based catch-all // $table_match = preg_match("/{$match}-table-(.*)\.table(\.tmp)?\.gz$/i", $entry); // The gz goes in with the txt, because we *don't* want to reap the raw .txt files if ((preg_match("/$match\.(tmp|table|txt\.gz)(\.gz)?$/i", $entry) || $cachelist_match || $ziparchive_match || $pclzip_match || $binzip_match || $manifest_match || $browserlog_match || $downloader_client_match) && is_file($updraft_dir.'/'.$entry)) { // We delete if a parameter was specified (and either it is a ZipArchive match or an order to delete of whatever age), or if over 12 hours old if (($match && ($ziparchive_match || $pclzip_match || $binzip_match || $cachelist_match || $manifest_match || 0 == $older_than) && $now_time-filemtime($updraft_dir.'/'.$entry) >= $older_than) || $now_time-filemtime($updraft_dir.'/'.$entry)>43200) { $skip_dblog = (0 == $files_deleted % 25) ? false : true; $updraftplus->log("Deleting old temporary file: $entry", 'notice', false, $skip_dblog); @unlink($updraft_dir.'/'.$entry);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist. $files_deleted++; } } elseif (preg_match('/^log\.[0-9a-f]+\.txt$/', $entry) && $now_time-filemtime($updraft_dir.'/'.$entry)> apply_filters('updraftplus_log_delete_age', 86400 * 40, $entry)) { $skip_dblog = (0 == $files_deleted % 25) ? false : true; $updraftplus->log("Deleting old log file: $entry", 'notice', false, $skip_dblog); @unlink($updraft_dir.'/'.$entry);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist. $files_deleted++; } } @closedir($handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. } // Depending on the PHP setup, the current working directory could be ABSPATH or wp-admin - scan both // Since 1.9.32, we set them to go into $updraft_dir, so now we must check there too. Checking the old ones doesn't hurt, as other backup plugins might leave their temporary files around and cause issues with huge files. foreach (array(ABSPATH, ABSPATH.'wp-admin/', $updraft_dir.'/') as $path) { if ($handle = opendir($path)) { while (false !== ($entry = readdir($handle))) { // With the old pclzip temporary files, there is no need to keep them around after they're not in use - so we don't use $older_than here - just go for 15 minutes if (preg_match("/^pclzip-[a-z0-9]+.tmp$/", $entry) && $now_time-filemtime($path.$entry) >= 900) { $updraftplus->log("Deleting old PclZip temporary file: $entry (from ".basename($path).")"); @unlink($path.$entry);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist. } } @closedir($handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. } } } /** * Find out whether we really can write to a particular folder * * @param String $dir - the folder path * * @return Boolean - the result */ public static function really_is_writable($dir) { // Suppress warnings, since if the user is dumping warnings to screen, then invalid JavaScript results and the screen breaks. if (!@is_writable($dir)) return false;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. // Found a case - GoDaddy server, Windows, PHP 5.2.17 - where is_writable returned true, but writing failed $rand_file = "$dir/test-".md5(rand().time()).".txt"; while (file_exists($rand_file)) { $rand_file = "$dir/test-".md5(rand().time()).".txt"; } $ret = @file_put_contents($rand_file, 'testing...');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. @unlink($rand_file);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist. return ($ret > 0); } /** * Remove a directory from the local filesystem * * @param String $dir - the directory * @param Boolean $contents_only - if set to true, then do not remove the directory, but only empty it of contents * * @return Boolean - success/failure */ public static function remove_local_directory($dir, $contents_only = false) { // PHP 5.3+ only // foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $path) { // $path->isFile() ? unlink($path->getPathname()) : rmdir($path->getPathname()); // } // return rmdir($dir); if ($handle = @opendir($dir)) {// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. while (false !== ($entry = readdir($handle))) { if ('.' !== $entry && '..' !== $entry) { if (is_dir($dir.'/'.$entry)) { self::remove_local_directory($dir.'/'.$entry, false); } else { @unlink($dir.'/'.$entry);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise if the file doesn't exist. } } } @closedir($handle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. } return $contents_only ? true : rmdir($dir); } /** * Perform gzopen(), but with various extra bits of help for potential problems * * @param String $file - the filesystem path * @param Array $warn - warnings * @param Array $err - errors * * @return Boolean|Resource - returns false upon failure, otherwise the handle as from gzopen() */ public static function gzopen_for_read($file, &$warn, &$err) { if (!function_exists('gzopen') || !function_exists('gzread')) { $missing = ''; if (!function_exists('gzopen')) $missing .= 'gzopen'; if (!function_exists('gzread')) $missing .= ($missing) ? ', gzread' : 'gzread'; /* translators: %s: List of disabled PHP functions. */ $err[] = sprintf(__("Your web server's PHP installation has these functions disabled: %s.", 'updraftplus'), $missing).' '. sprintf( /* translators: %s: The process that requires the functions. */ __('Your hosting company must enable these functions before %s can work.', 'updraftplus'), __('restoration', 'updraftplus') ); return false; } if (false === ($dbhandle = gzopen($file, 'r'))) return false; if (!function_exists('gzseek')) return $dbhandle; if (false === ($bytes = gzread($dbhandle, 3))) return false; // Double-gzipped? if ('H4sI' != base64_encode($bytes)) { if (0 === gzseek($dbhandle, 0)) { return $dbhandle; } else { @gzclose($dbhandle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. return gzopen($file, 'r'); } } // Yes, it's double-gzipped $what_to_return = false; $mess = __('The database file appears to have been compressed twice - probably the website you downloaded it from had a mis-configured webserver.', 'updraftplus'); $messkey = 'doublecompress'; $err_msg = ''; if (false === ($fnew = fopen($file.".tmp", 'w')) || !is_resource($fnew)) { @gzclose($dbhandle);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. $err_msg = __('The attempt to undo the double-compression failed.', 'updraftplus'); } else { @fwrite($fnew, $bytes);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. $emptimes = 0; while (!gzeof($dbhandle)) { $bytes = @gzread($dbhandle, 262144);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. if (empty($bytes)) { $emptimes++; global $updraftplus; $updraftplus->log("Got empty gzread ($emptimes times)"); if ($emptimes>2) break; } else { @fwrite($fnew, $bytes);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the function. } } gzclose($dbhandle); fclose($fnew); // On some systems (all Windows?) you can't rename a gz file whilst it's gzopened if (!rename($file.".tmp", $file)) { $err_msg = __('The attempt to undo the double-compression failed.', 'updraftplus'); } else { $mess .= ' '.__('The attempt to undo the double-compression succeeded.', 'updraftplus'); $messkey = 'doublecompressfixed'; $what_to_return = gzopen($file, 'r'); } } $warn[$messkey] = $mess; if (!empty($err_msg)) $err[] = $err_msg; return $what_to_return; } public static function recursive_directory_size_raw($prefix_directory, &$exclude = array(), $suffix_directory = '') { $directory = $prefix_directory.('' == $suffix_directory ? '' : '/'.$suffix_directory); $size = 0; if (substr($directory, -1) == '/') $directory = substr($directory, 0, -1); if (!file_exists($directory) || !is_dir($directory) || !is_readable($directory)) return -1; if (file_exists($directory.'/.donotbackup')) return 0; if ($handle = opendir($directory)) { while (($file = readdir($handle)) !== false) { if ('.' != $file && '..' != $file) { $spath = ('' == $suffix_directory) ? $file : $suffix_directory.'/'.$file; if (false !== ($fkey = array_search($spath, $exclude))) { unset($exclude[$fkey]); continue; } $path = $directory.'/'.$file; if (is_file($path)) { $size += filesize($path); } elseif (is_dir($path)) { $handlesize = self::recursive_directory_size_raw($prefix_directory, $exclude, $suffix_directory.('' == $suffix_directory ? '' : '/').$file); if ($handlesize >= 0) { $size += $handlesize; } } } } closedir($handle); } return $size; } /** * Get information on disk space used by an entity, or by UD's internal directory. Returns as a human-readable string. * * @param String $entity - the entity (e.g. 'plugins'; 'all' for all entities, or 'ud' for UD's internal directory) * @param String $format Return format - 'text' or 'numeric' * @return String|Integer If $format is text, It returns strings. Otherwise integer value. */ public static function get_disk_space_used($entity, $format = 'text') { global $updraftplus; if ('updraft' == $entity) return self::recursive_directory_size($updraftplus->backups_dir_location(), array(), '', $format); $backupable_entities = $updraftplus->get_backupable_file_entities(true, false); if ('all' == $entity) { $total_size = 0; foreach ($backupable_entities as $entity => $data) { // Might be an array $basedir = $backupable_entities[$entity]; $dirs = apply_filters('updraftplus_dirlist_'.$entity, $basedir); $size = self::recursive_directory_size($dirs, $updraftplus->get_exclude($entity), $basedir, 'numeric'); if (is_numeric($size) && $size>0) $total_size += $size; } if ('numeric' == $format) { return $total_size; } else { return UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($total_size); } } elseif (!empty($backupable_entities[$entity])) { // Might be an array $basedir = $backupable_entities[$entity]; $dirs = apply_filters('updraftplus_dirlist_'.$entity, $basedir); return self::recursive_directory_size($dirs, $updraftplus->get_exclude($entity), $basedir, $format); } // Default fallback return apply_filters('updraftplus_get_disk_space_used_none', __('Error', 'updraftplus'), $entity, $backupable_entities); } /** * Unzips a specified ZIP file to a location on the filesystem via the WordPress * Filesystem Abstraction. Forked from WordPress core in version 5.1-alpha-44182, * to allow us to provide feedback on progress. * * Assumes that WP_Filesystem() has already been called and set up. Does not extract * a root-level __MACOSX directory, if present. * * Attempts to increase the PHP memory limit before uncompressing. However, * the most memory required shouldn't be much larger than the archive itself. * * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. * * @param String $file - Full path and filename of ZIP archive. * @param String $to - Full path on the filesystem to extract archive to. * @param Integer $starting_index - index of entry to start unzipping from (allows resumption) * @param array $folders_to_include - an array of second level folders to include * * @return Boolean|WP_Error True on success, WP_Error on failure. */ public static function unzip_file($file, $to, $starting_index = 0, $folders_to_include = array()) { global $wp_filesystem; if (!$wp_filesystem || !is_object($wp_filesystem)) { return new WP_Error('fs_unavailable', __('Could not access filesystem.'));// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } // Unzip can use a lot of memory, but not this much hopefully. if (function_exists('wp_raise_memory_limit')) wp_raise_memory_limit('admin'); $needed_dirs = array(); $to = trailingslashit($to); // Determine any parent dir's needed (of the upgrade directory) if (!$wp_filesystem->is_dir($to)) { // Only do parents if no children exist $path = preg_split('![/\\\]!', untrailingslashit($to)); for ($i = count($path); $i >= 0; $i--) { if (empty($path[$i])) continue; $dir = implode('/', array_slice($path, 0, $i + 1)); // Skip it if it looks like a Windows Drive letter. if (preg_match('!^[a-z]:$!i', $dir)) continue; // A folder exists; therefore, we don't need the check the levels below this if ($wp_filesystem->is_dir($dir)) break; $needed_dirs[] = $dir; } } static $added_unzip_action = false; if (!$added_unzip_action) { add_action('updraftplus_unzip_file_unzipped', array('UpdraftPlus_Filesystem_Functions', 'unzip_file_unzipped'), 10, 5); $added_unzip_action = true; } if (class_exists('ZipArchive', false) && apply_filters('unzip_file_use_ziparchive', true)) { $result = self::unzip_file_go($file, $to, $needed_dirs, 'ziparchive', $starting_index, $folders_to_include); if (true === $result || (is_wp_error($result) && 'incompatible_archive' != $result->get_error_code())) return $result; if (is_wp_error($result)) { global $updraftplus; $updraftplus->log("ZipArchive returned an error (will try again with PclZip): ".$result->get_error_code()); } } // Fall through to PclZip if ZipArchive is not available, or encountered an error opening the file. // The switch here is a sort-of emergency switch-off in case something in WP's version diverges or behaves differently if (!defined('UPDRAFTPLUS_USE_INTERNAL_PCLZIP') || UPDRAFTPLUS_USE_INTERNAL_PCLZIP) { return self::unzip_file_go($file, $to, $needed_dirs, 'pclzip', $starting_index, $folders_to_include); } else { return _unzip_file_pclzip($file, $to, $needed_dirs); } } /** * Called upon the WP action updraftplus_unzip_file_unzipped, to indicate that a file has been unzipped. * * @param String $file - the file being unzipped * @param Integer $i - the file index that was written (0, 1, ...) * @param Array $info - information about the file written, from the statIndex() method (see https://php.net/manual/en/ziparchive.statindex.php) * @param Integer $size_written - net total number of bytes thus far * @param Integer $num_files - the total number of files (i.e. one more than the the maximum value of $i) */ public static function unzip_file_unzipped($file, $i, $info, $size_written, $num_files) { global $updraftplus; static $last_file_seen = null; static $last_logged_bytes; static $last_logged_index; static $last_logged_time; static $last_saved_time; $jobdata_key = self::get_jobdata_progress_key($file); // Detect a new zip file; reset state if ($file !== $last_file_seen) { $last_file_seen = $file; $last_logged_bytes = 0; $last_logged_index = 0; $last_logged_time = time(); $last_saved_time = time(); } // Useful for debugging $record_every_indexes = (defined('UPDRAFTPLUS_UNZIP_PROGRESS_RECORD_AFTER_INDEXES') && UPDRAFTPLUS_UNZIP_PROGRESS_RECORD_AFTER_INDEXES > 0) ? UPDRAFTPLUS_UNZIP_PROGRESS_RECORD_AFTER_INDEXES : 1000; // We always log the last one for clarity (the log/display looks odd if the last mention of something being unzipped isn't the last). Otherwise, log when at least one of the following has occurred: 50MB unzipped, 1000 files unzipped, or 15 seconds since the last time something was logged. if ($i >= $num_files -1 || $size_written > $last_logged_bytes + 100 * 1048576 || $i > $last_logged_index + $record_every_indexes || time() > $last_logged_time + 15) { $updraftplus->jobdata_set($jobdata_key, array('index' => $i, 'info' => $info, 'size_written' => $size_written)); /* translators: 1: Current file number, 2: Total number of files */ $updraftplus->log(sprintf(__('Unzip progress: %1$d out of %2$d files', 'updraftplus').' (%3$s, %4$s)', $i+1, $num_files, UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($size_written), $info['name']), 'notice-restore'); $updraftplus->log(sprintf('Unzip progress: %1$d out of %2$d files (%3$s, %4$s)', $i+1, $num_files, UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($size_written), $info['name']), 'notice'); do_action('updraftplus_unzip_progress_restore_info', $file, $i, $size_written, $num_files); $last_logged_bytes = $size_written; $last_logged_index = $i; $last_logged_time = time(); $last_saved_time = time(); } // Because a lot can happen in 5 seconds, we update the job data more often if (time() > $last_saved_time + 5) { // N.B. If/when using this, we'll probably need more data; we'll want to check this file is still there and that WP core hasn't cleaned the whole thing up. $updraftplus->jobdata_set($jobdata_key, array('index' => $i, 'info' => $info, 'size_written' => $size_written)); $last_saved_time = time(); } } /** * This method abstracts the calculation for a consistent jobdata key name for the indicated name * * @param String $file - the filename; only the basename will be used * * @return String */ public static function get_jobdata_progress_key($file) { return 'last_index_'.md5(basename($file)); } /** * Compatibility function (exists in WP 4.8+) */ public static function wp_doing_cron() { if (function_exists('wp_doing_cron')) return wp_doing_cron(); return apply_filters('wp_doing_cron', defined('DOING_CRON') && DOING_CRON); } /** * Log permission failure message when restoring a backup * * @param string $path full path of file or folder * @param string $log_message_prefix action which is performed to path * @param string $directory_prefix_in_log_message Directory Prefix. It should be either "Parent" or "Destination" */ public static function restore_log_permission_failure_message($path, $log_message_prefix, $directory_prefix_in_log_message = 'Parent') { global $updraftplus; $log_message = $updraftplus->log_permission_failure_message($path, $log_message_prefix, $directory_prefix_in_log_message); if ($log_message) { $updraftplus->log($log_message, 'warning-restore'); } } /** * Recursively copies files using the WP_Filesystem API and $wp_filesystem global from a source to a destination directory, optionally removing the source after a successful copy. * * @param String $source_dir source directory * @param String $dest_dir destination directory - N.B. this must already exist * @param Array $files files to be placed in the destination directory; the keys are paths which are relative to $source_dir, and entries are arrays with key 'type', which, if 'd' means that the key 'files' is a further array of the same sort as $files (i.e. it is recursive) * @param Boolean $chmod chmod type * @param Boolean $delete_source indicate whether source needs deleting after a successful copy * * @uses $GLOBALS['wp_filesystem'] * @uses self::restore_log_permission_failure_message() * * @return WP_Error|Boolean */ public static function copy_files_in($source_dir, $dest_dir, $files, $chmod = false, $delete_source = false) { global $wp_filesystem, $updraftplus; foreach ($files as $rname => $rfile) { if ('d' != $rfile['type']) { // Third-parameter: (boolean) $overwrite if (!$wp_filesystem->move($source_dir.'/'.$rname, $dest_dir.'/'.$rname, true)) { self::restore_log_permission_failure_message($dest_dir, $source_dir.'/'.$rname.' -> '.$dest_dir.'/'.$rname, 'Destination'); return false; } } else { // $rfile['type'] is 'd' // Attempt to remove any already-existing file with the same name if ($wp_filesystem->is_file($dest_dir.'/'.$rname)) @$wp_filesystem->delete($dest_dir.'/'.$rname, false, 'f');// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- if fails, carry on // No such directory yet: just move it if ($wp_filesystem->exists($dest_dir.'/'.$rname) && !$wp_filesystem->is_dir($dest_dir.'/'.$rname) && !$wp_filesystem->move($source_dir.'/'.$rname, $dest_dir.'/'.$rname, false)) { self::restore_log_permission_failure_message($dest_dir, 'Move '.$source_dir.'/'.$rname.' -> '.$dest_dir.'/'.$rname, 'Destination'); $updraftplus->log_e('Failed to move directory (check your file permissions and disk quota): %s', $source_dir.'/'.$rname." -> ".$dest_dir.'/'.$rname); return false; } elseif (!empty($rfile['files'])) { if (!$wp_filesystem->exists($dest_dir.'/'.$rname)) $wp_filesystem->mkdir($dest_dir.'/'.$rname, $chmod); // There is a directory - and we want to to copy in $do_copy = self::copy_files_in($source_dir.'/'.$rname, $dest_dir.'/'.$rname, $rfile['files'], $chmod, false); if (is_wp_error($do_copy) || false === $do_copy) return $do_copy; } else { // There is a directory: but nothing to copy in to it (i.e. $file['files'] is empty). Just remove the directory. @$wp_filesystem->rmdir($source_dir.'/'.$rname);// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Silenced to suppress errors that may arise because of the method. } } } // We are meant to leave the working directory empty. Hence, need to rmdir() once a directory is empty. But not the root of it all in case of others/wpcore. if ($delete_source || false !== strpos($source_dir, '/')) { if (!$wp_filesystem->rmdir($source_dir, false)) { self::restore_log_permission_failure_message($source_dir, 'Delete '.$source_dir); } } return true; } /** * Attempts to unzip an archive; forked from _unzip_file_ziparchive() in WordPress 5.1-alpha-44182, and modified to use the UD zip classes. * * Assumes that WP_Filesystem() has already been called and set up. * * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. * * @param String $file - full path and filename of ZIP archive. * @param String $to - full path on the filesystem to extract archive to. * @param Array $needed_dirs - a partial list of required folders needed to be created. * @param String $method - either 'ziparchive' or 'pclzip'. * @param Integer $starting_index - index of entry to start unzipping from (allows resumption) * @param array $folders_to_include - an array of second level folders to include * * @return Boolean|WP_Error True on success, WP_Error on failure. */ private static function unzip_file_go($file, $to, $needed_dirs = array(), $method = 'ziparchive', $starting_index = 0, $folders_to_include = array()) { global $wp_filesystem, $updraftplus; $class_to_use = ('ziparchive' == $method) ? 'UpdraftPlus_ZipArchive' : 'UpdraftPlus_PclZip'; if (!class_exists($class_to_use)) updraft_try_include_file('includes/class-zip.php', 'require_once'); $updraftplus->log('Unzipping '.basename($file).' to '.$to.' using '.$class_to_use.', starting index '.$starting_index); $z = new $class_to_use; $flags = (version_compare(PHP_VERSION, '5.2.12', '>') && defined('ZIPARCHIVE::CHECKCONS')) ? ZIPARCHIVE::CHECKCONS : 4; // This is just for crazy people with mbstring.func_overload enabled (deprecated from PHP 7.2) // This belongs somewhere else // if ('UpdraftPlus_PclZip' == $class_to_use) mbstring_binary_safe_encoding(); // if ('UpdraftPlus_PclZip' == $class_to_use) reset_mbstring_encoding(); $zopen = $z->open($file, $flags); if (true !== $zopen) { return new WP_Error('incompatible_archive', __('Incompatible Archive.'), array($method.'_error' => $z->last_error));// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } $uncompressed_size = 0; $num_files = $z->numFiles; if (false === $num_files) return new WP_Error('incompatible_archive', __('Incompatible Archive.'), array($method.'_error' => $z->last_error));// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. for ($i = $starting_index; $i < $num_files; $i++) { if (!$info = $z->statIndex($i)) { return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.').' ('.$z->last_error.')');// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } // Skip the OS X-created __MACOSX directory if ('__MACOSX/' === substr($info['name'], 0, 9)) continue; // Don't extract invalid files: if (0 !== validate_file($info['name'])) continue; if (!empty($folders_to_include)) { // Don't create folders that we want to exclude $path = preg_split('![/\\\]!', untrailingslashit($info['name'])); if (isset($path[1]) && !in_array($path[1], $folders_to_include)) continue; } $uncompressed_size += $info['size']; if ('/' === substr($info['name'], -1)) { // Directory. $needed_dirs[] = $to . untrailingslashit($info['name']); } elseif ('.' !== ($dirname = dirname($info['name']))) { // Path to a file. $needed_dirs[] = $to . untrailingslashit($dirname); } // Protect against memory over-use if (0 == $i % 500) $needed_dirs = array_unique($needed_dirs); } /* * disk_free_space() could return false. Assume that any falsey value is an error. * A disk that has zero free bytes has bigger problems. * Require we have enough space to unzip the file and copy its contents, with a 10% buffer. */ if (self::wp_doing_cron()) { $available_space = function_exists('disk_free_space') ? @disk_free_space(WP_CONTENT_DIR) : false;// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- Call is speculative if ($available_space && ($uncompressed_size * 2.1) > $available_space) { return new WP_Error('disk_full_unzip_file', __('Could not copy files.').' '.__('You may have run out of disk space.'), compact('uncompressed_size', 'available_space'));// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } } $needed_dirs = array_unique($needed_dirs); foreach ($needed_dirs as $dir) { // Check the parent folders of the folders all exist within the creation array. if (untrailingslashit($to) == $dir) { // Skip over the working directory, We know this exists (or will exist) continue; } // If the directory is not within the working directory then skip it if (false === strpos($dir, $to)) continue; $parent_folder = dirname($dir); while (!empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs)) { $needed_dirs[] = $parent_folder; $parent_folder = dirname($parent_folder); } } asort($needed_dirs); // Create those directories if need be: foreach ($needed_dirs as $_dir) { // Only check to see if the Dir exists upon creation failure. Less I/O this way. if (!$wp_filesystem->mkdir($_dir, FS_CHMOD_DIR) && !$wp_filesystem->is_dir($_dir)) { return new WP_Error('mkdir_failed_'.$method, __('Could not create directory.'), substr($_dir, strlen($to)));// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } } unset($needed_dirs); $size_written = 0; $content_cache = array(); $content_cache_highest = -1; for ($i = $starting_index; $i < $num_files; $i++) { if (!$info = $z->statIndex($i)) { return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } // directory if ('/' == substr($info['name'], -1)) continue; // Don't extract the OS X-created __MACOSX if ('__MACOSX/' === substr($info['name'], 0, 9)) continue; // Don't extract invalid files: if (0 !== validate_file($info['name'])) continue; if (!empty($folders_to_include)) { // Don't extract folders that we want to exclude $path = preg_split('![/\\\]!', untrailingslashit($info['name'])); if (isset($path[1]) && !in_array($path[1], $folders_to_include)) continue; } // N.B. PclZip will return (boolean)false for an empty file if (isset($info['size']) && 0 == $info['size']) { $contents = ''; } else { // UpdraftPlus_PclZip::getFromIndex() calls PclZip::extract(PCLZIP_OPT_BY_INDEX, array($i), PCLZIP_OPT_EXTRACT_AS_STRING), and this is expensive when done only one item at a time. We try to cache in chunks for good performance as well as being able to resume. if ($i > $content_cache_highest && 'UpdraftPlus_PclZip' == $class_to_use) { $memory_usage = memory_get_usage(false); $total_memory = $updraftplus->memory_check_current(); if ($memory_usage > 0 && $total_memory > 0) { $memory_free = $total_memory*1048576 - $memory_usage; } else { // A sane default. Anything is ultimately better than WP's default of just unzipping everything into memory. $memory_free = 50*1048576; } $use_memory = max(10485760, $memory_free - 10485760); $total_byte_count = 0; $content_cache = array(); $cache_indexes = array(); $cache_index = $i; while ($cache_index < $num_files && $total_byte_count < $use_memory) { if (false !== ($cinfo = $z->statIndex($cache_index)) && isset($cinfo['size']) && '/' != substr($cinfo['name'], -1) && '__MACOSX/' !== substr($cinfo['name'], 0, 9) && 0 === validate_file($cinfo['name'])) { $total_byte_count += $cinfo['size']; if ($total_byte_count < $use_memory) { $cache_indexes[] = $cache_index; $content_cache_highest = $cache_index; } } $cache_index++; } if (!empty($cache_indexes)) { $content_cache = $z->updraftplus_getFromIndexBulk($cache_indexes); } } $contents = isset($content_cache[$i]) ? $content_cache[$i] : $z->getFromIndex($i); } if (false === $contents && ('pclzip' !== $method || 0 !== $info['size'])) { return new WP_Error('extract_failed_'.$method, __('Could not extract file from archive.').' '.$z->last_error, json_encode($info));// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } if (!$wp_filesystem->put_contents($to . $info['name'], $contents, FS_CHMOD_FILE)) { return new WP_Error('copy_failed_'.$method, __('Could not copy file.'), $info['name']);// phpcs:ignore WordPress.WP.I18n.MissingArgDomain -- The string exists within the WordPress core. } if (!empty($info['size'])) $size_written += $info['size']; do_action('updraftplus_unzip_file_unzipped', $file, $i, $info, $size_written, $num_files); } $z->close(); return true; } } David Richards dwr, Author at Smart Office https://smartoffice.com.au/author/david-richards-dwr/ Thu, 07 May 2020 02:56:26 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 Sonos Finally Enter Dolby Atmos Soundbar Market With Expensive New ARC Bar https://smartoffice.com.au/sonos-finally-enter-dolby-atmos-soundbar-market-expensive-new-arc-bar/ https://smartoffice.com.au/sonos-finally-enter-dolby-atmos-soundbar-market-expensive-new-arc-bar/#respond Thu, 07 May 2020 02:56:26 +0000 http://smartoffice.com.au/?p=97726 Struggling sound Company Sonos has jumped into the soundbar market in an effort to prop up sales of their networked sound offering with an expensive new TV audio offering. Earlier this year the Company was trying to nobble existing customers systems in an effort to generate new sales. Their latest offering which is set sell ... Read more

    The post Sonos Finally Enter Dolby Atmos Soundbar Market With Expensive New ARC Bar appeared first on Smart Office.

    ]]>
    Struggling sound Company Sonos has jumped into the soundbar market in an effort to prop up sales of their networked sound offering with an expensive new TV audio offering.

    Earlier this year the Company was trying to nobble existing customers systems in an effort to generate new sales.

    Their latest offering which is set sell for around $1,399 in Australia finally supports Dolby Atmos which has been a key feature of competitors soundbars for the past 18 months.In comparison Aldi recently sold a Dolby Atmos sound bar for $299.

    Called the Arc soundbar is a long, thin, speaker with rounded edges that can be placed below TVs. It fires sound in multiple directions, resulting in a three-dimensional effect.

    The Arc replaces the Playbase and Playbar, the company’s older soundbar models, the Company has also said that it will release a new app and operating system for its speakers in June.[wpdevart_youtube]Yu1NiZUbukA[/wpdevart_youtube]

    The problem with buying a Sonos product is that also have to contend with the 16bit proprietary Sonos operating system which is constantly having to be upgraded.

    Several competitors now use Google Voice and Alexa from Amazon without the need for a proprietary OS, they include soundbar brands such as LG, Samsung, Philips, and Polk.

    The Companies poor selling Playbase speaker, designed to fit underneath some TVs, is also being discontinued as of today.

    Significantly more expensive than the $995 Playbar, Sonos said that the new device will be released on June 10th and will only work with the new Sonos S2 app which will work on iOS, Android, Windows, and Mac.

    The Arc, third-generation Sub, and Sonos Five are the first products built on the company’s S2 platform which they had to develop due to complaints from existing owners of Sonos sound systems and the fact it only allowed for 16bit playback Vs 24 bit playback of audio.

    The new Arc will be available in either black or white, and it features an elongated, matte plastic design with 76,000 holes drilled into the casing.

    Inside that outer shell are 11 drivers that fire audio all around your room to create immersive, multidirectional sound.

    As with most soundbars, the centre channel focuses on dialogue clarity while the left and right channels, along with the surround and up-firing height speakers, increase the sense of spaciousness and immersion that comes out of the Arc.

    Like most of their competitors the ARC can play PCM stereo, Dolby Digital 5.1, Dolby Digital Plus, and Dolby Atmos audio. DTS and multichannel PCM audio are not supported.
    It automatically optimizes what the drivers are doing in each scenario, several cheaper brands such as the $799 Polk system does this.

    TV Owners will need a new generation TV with an eARC HDMI port or a 4K Blu-ray player — to take full advantage of the lossless Atmos playback that the Arc is capable of.

    The bottom line is this is simply a soundbar that is coming late to market with a lot of features found in other soundbars. The combination of an expensive $1000+ Sonos sub and ARC soundbar makes it a very expensive TV sound system.

    For me, the Sennheiser Ambeo is the premium soundbar to go for.

    The post Sonos Finally Enter Dolby Atmos Soundbar Market With Expensive New ARC Bar appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/sonos-finally-enter-dolby-atmos-soundbar-market-expensive-new-arc-bar/feed/ 0
    Samsung S20 5G Ultra+ Is It Worth 2K+, 100X Zoom, 108MP Camera? https://smartoffice.com.au/samsung-s20-5g-ultra-worth-2k-100x-zoom-108mp-camera/ https://smartoffice.com.au/samsung-s20-5g-ultra-worth-2k-100x-zoom-108mp-camera/#respond Tue, 11 Feb 2020 23:39:11 +0000 http://smartoffice.com.au/?p=97585 It was all camera at the 2020 launch of the new Samsung Galaxy S20 5G in San Francisco this morning, 8K shot footage, up to 100X zoom and artificial intelligence that sets the new benchmark for a premium smartphone and a massivly improved Google Duo. Bragging rights just kept coming from 8K footage that in ... Read more

    The post Samsung S20 5G Ultra+ Is It Worth 2K+, 100X Zoom, 108MP Camera? appeared first on Smart Office.

    ]]>
    It was all camera at the 2020 launch of the new Samsung Galaxy S20 5G in San Francisco this morning, 8K shot footage, up to 100X zoom and artificial intelligence that sets the new benchmark for a premium smartphone and a massivly improved Google Duo.

    Bragging rights just kept coming from 8K footage that in the past need a camera rig worth thousands, new “super zoom resolution” mode that delivers up to 100X capability and easily out performs the Huawei P30 with the biggest advantage that Samsung can guarantee that they have not worked with the Chinese Liberation Army to compromise security.

    This has all been achieved with the introduction of an exceptionally high-resolution sensor coupled with a cutting edge processor made by Samsung.


    Design wise the new S205G Ultra makes the old Note 10 Plus feel chunky, and Apples latest offering seriously old technology.

    The 6.9-inch screen with its 120Hz refresh rate makes shot images look beautiful colourful and bright.

    The 4x telephoto lens located behind the hole in the back of the S20G combines with a built in 48-megapixel sensor delivering “lossless hybrid optic” zoom. Lossless means that you won’t lose quality as you zoom similar to what was happening with the Huawei P30.

    The 100x zoom feature which is exclusive to the S20 Ultra allows users to easily flick to a zoom setting as was demonstrated by Samsung when standing on a cliff two kilometres away from the famous Alcatraz prison in San Francisco, one button push and the cameraman could easily zoom into the location.

    What Samsung has done that’s unique is dramatically improve the resolution and quality of an image

    The S20 Ultra’s periscope appears to make a massive difference when it comes to shooting, I want to test it against a top end Canon camera and one of their zoom lenses. The Canon rig alone will cost you over $5K making the new Samsung offering a cheap pro camera rig.

    The zoom capability also works at night, so a pool party suddenly becomes a lot more focused.

    In the past problems have occurred when shooting in low-light, Samsung claims to have found a solution to these problems using the power of their new processor combined with the AI speed of the sensor.

    Another massive improvement is that you can access Google Duo on the Galaxy S20 directly from the dialler. I love Google Duo for my personal calls, while I use Zoom for business calls, I ditched Skype for Duo. Only recently when in a boardroom meeting my phone rang, it was my 4-year-old granddaughter, she had her mother phone and decided to call me a real ‘Hello Grandpa moment”

    Now with a simple press of a button you can trigger a video call in full HD quality with up to eight people due to the new wide-angle camera. I really want to test this.

    Quick Conclusion

    With this device it appears you are going to get the best of everything and as Samsung said at the start of their event ‘It’s all about “premium” and that is what they have delivered with the S20Ultra.

    Apart from 5G which is basic, there is an incredible camera, 16GB of Samsung manufactured RAM and a massive display screen. This device is not cheap at $2,249 but is a pro camera, PC, smartphone and you can do Google Duo calls while also getting the best Netflix can offer.

    It also has an astonishing 16GB of RAM, which considering the amout of use you will get with this device is worth the money.

    Galaxy S20 Galaxy S20+ Galaxy S20 Ultra
    Operating System Android 10 Android 10 Android 10
    Display 6.2-inch Quad HD+ Dynamic AMOLED, 2X Infinity O Display (3200X1440), HDR10+, 120Hz 6.7-inch Quad HD+ Dynamic AMOLED, 2X Infinity O Display (3200X1440), HDR10+, 120Hz 6.9-inch Quad HD+ Dynamic AMOLED, 2X Infinity O Display (3200X1440), HDR10+, 120Hz
    Body 151.7 x 69.1 x 7.9mm, 163g 161.9 x 73.7 x 7.8mm, 188g 166.9 x 76.0 x 8.8mm, 222g
    Camera Rear:Ultra Wide 12MP F2.2, Wide-angle 12MP F1.8, Telephoto: 64MP. Front: 10MP F2.2 Rear:Ultra Wide 12MP F2.2, Wide-angle 12MP F1.8, Telephoto: 64MP, DepthVision sensor. Front: 10MP F2.2 Rear:Ultra Wide 12MP F2.2, Wide-angle 108MP F1.8, Telephoto: 48MP, DepthVision sensor. Front: 40MP F2.2
    Processor 7㎚ 64-bit Octa-Core 7㎚ 64-bit Octa-Core 7㎚ 64-bit Octa-Core
    Memory/Storage 8GB RAM/128GB storage (4G) or 12GB RAM/128GB storage (5G) 8GB RAM/128GB storage (4G) or 12GB RAM/ with 128GB/256GB/512GB storage (5G) 12GB RAM/128GB storage or 16GB/512GB storage (5G)
    Water Resistance IP68 IP68 IP68
    Battery 4,000 mAH with 25W fast charge and fast wireless charging 2.0 4,500 mAH with 25W fast charge and fast wireless charging 2.0 5,000 mAH with 45W fast charge and fast wireless charging 2.0
    Connectivity 4G or 5G 4G or 5G 5G
    Colours Cosmic Grey, Cloud Blue, Cloud Pink Cosmic Grey, Cloud Blue, Cosmic Black Cosmic Grey, Cosmic Black
    Price $1,349 for 8GB/128GB/4G, $1,499 for 12GB/128GB/5G $1,499 for 8GB/128GB/4G, $1,649 for 12GB/128GB/5G, $1,899 for 12GB/512GB/5G

    The post Samsung S20 5G Ultra+ Is It Worth 2K+, 100X Zoom, 108MP Camera? appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/samsung-s20-5g-ultra-worth-2k-100x-zoom-108mp-camera/feed/ 0
    New Samsung Galaxy S20, 5G, With 108MP 8K Camera Sets New Shooting Benchmark https://smartoffice.com.au/new-samsung-galaxy-s20-5g-108mp-8k-camera-sets-new-shooting-benchmark/ https://smartoffice.com.au/new-samsung-galaxy-s20-5g-108mp-8k-camera-sets-new-shooting-benchmark/#respond Tue, 11 Feb 2020 23:20:34 +0000 http://smartoffice.com.au/?p=97564 Samsung Electronics has moved to cement their position as the dominant player in the 5G market, with the roll out of an all new 5G flagship range of S20 smartphones that come with a 108-megapixel camera 8K shooting camera and 120MHz display. Simply the new Samsung S20 models are all about top end 5G performance ... Read more

    The post New Samsung Galaxy S20, 5G, With 108MP 8K Camera Sets New Shooting Benchmark appeared first on Smart Office.

    ]]>
    Samsung Electronics has moved to cement their position as the dominant player in the 5G market, with the roll out of an all new 5G flagship range of S20 smartphones that come with a 108-megapixel camera 8K shooting camera and 120MHz display.

    Simply the new Samsung S20 models are all about top end 5G performance and never before seen, camera technology in a smartphone, they start in price at $1,349 for the 8GB + 128GB expandable model with single SIM & eSIM to $2,249 for the Galaxy S20 Ultra 5G model with 16GB + 512GB of storage capability.

    This model also has a single SIM and eSIM capability.

    Launched at a gala event in San Francisco overnight Samsung has set a new benchmark for both performance and camera architecture using new software AI technology and a new capture sensor that allows users to shoot their own 8K movies.

    Dr. TM Roh, President and Head of Mobile Communications Business, Samsung Electronics told the audience, “As all three Galaxy S20 variants come with 5G connectivity and Samsung is now providing a next-generation device with an AI powered camera”.

    On top of that Samsung has gone all 5G for their premium model range with new mid-range models set to be launched later this year tipped to be 4G and affordable.

    Currently 9 out of ten 5G smartphones sold in Australia are made by Samsung.

    Samsung Australia has confirmed that the Galaxy S20 range of smartphones will be available to purchase from March 6, 2020.

    Customers who pre-order the Galaxy S20+, Galaxy S20+ 5G and Galaxy S20 Ultra 5G from participating retailers are eligible to redeem a complimentary pair of Samsung Galaxy Buds+ valued at $299 (RRP)1. The pre-order period commences at 09.00 AEDT February 12 and concludes at 11.59 AEDT March 5, 2020.

    The dramatically increased performance and shooting capability of their new 108MP camera which can now shoot 8K on the fly, has been achieved with the introduction of a new camera sensor made by Samsung.

    The Galaxy S20, Galaxy S20+ and Galaxy S20 Ultra are the first devices able to power new mobile experiences that take advantage of both sub-6 and mmWave technology.

    The Galaxy S20 supports sub-6 and three devices can deliver non-standalone and standalone 5G capabilities.

    CAMERA

    The new camera delivers crystal clear clarity due to the larger image sensor and significantly improved resolution over the current Galaxy range.

    The sensor has been designed to take in more light, so you get better low light shooting.

    The S20 Ultra allows users to shift dynamically between a high resolution 108MP mode and a 12MP mode, due to new to nona-binning technology which combines nine pixels into one at the sensor level.

    Also built in is new Space Zoom technology that uses a combination of Hybrid Optic Zoom and Super Resolution Zoom, which includes AI-powered digital zoom, even when you are far away you can zoom in close.

    In the past brands such as Huawei with their P30 smartphone have had 50X zoom which we found impossible to shoot without a tripod.

    With the new Samsung range users can shoot up to 30X zoom on the Galaxy S20 and S20+, or step-up to the revolutionary folded lenses on the S20 Ultra, which uses AI powered, multi-image processing to reduce quality loss at high zoom levels so that users can experience Super Resolution Zoom up to 100X with a clearer view ever than before claims Samsung.

    Other features include:

    Single Take, Multiple Possibilities: Single Take lets you stay in the moment, while you capture the moment. Thanks to its AI camera technologies, the Galaxy S20 can capture several photos and videos, such as Live focus, cropped, Ultra-Wide and more that captures your moment the best.

    Pro-Grade Filming Capability: The Galaxy S20 offers stunning 8K video shooting, so users can capture their world in true-to-life colour and quality. When you are done shooting, stream your video to a Samsung QLED 8K TV and enjoy its best-in-class viewing experience or grab a still from an 8K video and turn it into a high-res photo. And, even the bumpiest videos look like they were shot using an action cam, thanks to Super Steady and its anti-rolling stabilization and AI motion analysis.

    Samsung who acquired Harman, one of the world’s leading sound Companies who own brands such as JBL, Harman Kardon and AKG has also incorporated new audio output capabilities wrapped around AKG tuning technology.

    New capabilities include integration between Spotify and Bixby Routines.

    Music Share extend a paired Bluetooth connection to a car stereo or speaker via your device, so you and your friend can take turns DJ-ing during a road trip.

    Google Duo

    Also introduced is what Samsung is calling ‘Exceptional Video Chat on Google Duo’.

    The new Galaxy S20 enhances the video chatting experience through a deep integration with Google Duo, these are featuring that Google said are being seen for the first time in the Galaxy S20.

    From the dialler, you can tap Duo to start a video call and enjoy, for the first time ever, FHD quality. Google Duo is compatible across operating systems, so you are not limited in who you can video chat with up to 8 friends, at once.

    In cuddling up to Google Samsung has been able to further enhance YouTube on a 5G device with users being able to share your 8K videos via the Google owned platform.

    Samsung partnered with YouTube so you can upload your 8K videos directly to YouTube—and with integrated 5G capabilities, experience ultra-fast upload speeds.

    Gaming

    Because of significant 5G hardware improvements the Galaxy S20 takes mobile gaming to the next level.

    With a 120Hz display owners will have the ability to experience incredibly smooth gaming.

    Later this spring, Samsung partner, Microsoft, will launch its popular Forza Street in the Galaxy Store, marking the first time the game is coming to mobile.

    Combined with a fast processor, 12GB of RAM, audio tuned by AKG and a game booster working in the background to optimize settings for peak performance, the Galaxy S20 offers a powerful gaming experience.

    GALAXY BUDS+

    Also introduced are AKG tuned Samsung Galaxy Buds+, that feature 2-way speakers; 3 mics for unparalleled sound and voice quality; and an incredibly long battery life—up to 11 hours from Buds+ and an extra 11 hours in the case.

    Buds+ app, ‘Galaxy Buds+’, is now iOS compatible, so you can enjoy a great audio experience no matter which device you use. And with the Spotify partnership, listen to the tunes and podcasts you love more easily by hitting play with a single press.

    Galaxy S20 Galaxy S20+ Galaxy S20 Ultra
    Operating System Android 10 Android 10 Android 10
    Display 6.2-inch Quad HD+ Dynamic AMOLED, 2X Infinity O Display (3200X1440), HDR10+, 120Hz 6.7-inch Quad HD+ Dynamic AMOLED, 2X Infinity O Display (3200X1440), HDR10+, 120Hz 6.9-inch Quad HD+ Dynamic AMOLED, 2X Infinity O Display (3200X1440), HDR10+, 120Hz
    Body 151.7 x 69.1 x 7.9mm, 163g 161.9 x 73.7 x 7.8mm, 188g 166.9 x 76.0 x 8.8mm, 222g
    Camera Rear:Ultra Wide 12MP F2.2, Wide-angle 12MP F1.8, Telephoto: 64MP. Front: 10MP F2.2 Rear:Ultra Wide 12MP F2.2, Wide-angle 12MP F1.8, Telephoto: 64MP, DepthVision sensor. Front: 10MP F2.2 Rear:Ultra Wide 12MP F2.2, Wide-angle 108MP F1.8, Telephoto: 48MP, DepthVision sensor. Front: 40MP F2.2
    Processor 7㎚ 64-bit Octa-Core 7㎚ 64-bit Octa-Core 7㎚ 64-bit Octa-Core
    Memory/Storage 8GB RAM/128GB storage (4G) or 12GB RAM/128GB storage (5G) 8GB RAM/128GB storage (4G) or 12GB RAM/ with 128GB/256GB/512GB storage (5G) 12GB RAM/128GB storage or 16GB/512GB storage (5G)
    Water Resistance IP68 IP68 IP68
    Battery 4,000 mAH with 25W fast charge and fast wireless charging 2.0 4,500 mAH with 25W fast charge and fast wireless charging 2.0 5,000 mAH with 45W fast charge and fast wireless charging 2.0
    Connectivity 4G or 5G 4G or 5G 5G
    Colours Cosmic Grey, Cloud Blue, Cloud Pink Cosmic Grey, Cloud Blue, Cosmic Black Cosmic Grey, Cosmic Black
    Price $1,349 for 8GB/128GB/4G, $1,499 for 12GB/128GB/5G $1,499 for 8GB/128GB/4G, $1,649 for 12GB/128GB/5G, $1,899 for 12GB/512GB/5G $2,249

     

    The post New Samsung Galaxy S20, 5G, With 108MP 8K Camera Sets New Shooting Benchmark appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/new-samsung-galaxy-s20-5g-108mp-8k-camera-sets-new-shooting-benchmark/feed/ 0
    BlueParrott Tackles Top End BlueCollar Noise Cancelling Market https://smartoffice.com.au/blueparrot-tackles-top-end-bluecollar-noise-cancelling-market/ https://smartoffice.com.au/blueparrot-tackles-top-end-bluecollar-noise-cancelling-market/#respond Mon, 18 Feb 2019 05:40:58 +0000 http://smartoffice.com.au/?p=96240 BlueParrott is a fairly new entry to the Australian headphone market and their affordable premium enterprise noise cancelling range is now opening up new markets enterprise and B2b markets for the GN Group. The Company was acquired by the GN Group back in 2016, they also own top-end headphone brand Jabra, since the acquisition the ... Read more

    The post BlueParrott Tackles Top End BlueCollar Noise Cancelling Market appeared first on Smart Office.

    ]]>
    BlueParrott is a fairly new entry to the Australian headphone market and their affordable premium enterprise noise cancelling range is now opening up new markets enterprise and B2b markets for the GN Group.

    The Company was acquired by the GN Group back in 2016, they also own top-end headphone brand Jabra, since the acquisition the BlueParrott range of headphones which are specifically designed for loud noise environments where people want crystal clear communication has been upgraded with a new range recently released in Australia.

    Classic users are truck and crane drivers, warehouse staff and manufacturing staff who work in noisy environments and need clear communication when driving or walking around a noisy warehouse or factory.1

    The BlueParrott are not your normal Bluetooth headphones, they are intelligent, noise-cancelling audio devices that come in multiple forms.

    They incorporate cutting edge noise-cancelling technology that is designed to deliver superior call quality due to a processor that is designed to take out industrial background noise.

    In the USA where the BlueParrott range has been on sale for several years over 3 million professionals use the BlueParrott headsets.

    This includes 6 out of 10 commercial drivers across both independent or small fleet drivers.

    It’s also highly popular with emergency service and utility personnel who could well be up a pole fixing electricity lines.

    The new designs allow users to choose a wearing style and fit that gives them all-day comfort. They can also be customised to the individual using the upgraded Parrott Button.

    Another key feature is the VoiceControl feature that delivers hands-free access to a wide range of services.

    Multipoint Pairing means teams can seamlessly switch between two simultaneously connected devices, helping them stay productive and ensuring calls aren’t interrupted.

    Teams can stream audio and navigation directions from any Bluetooth device and enjoy more than 24 hours talk time and Micro-USB charging to keep the conversation going.

    The GN Group is made up of GN Hearing with the flagship hearing aid brand ReSound and GN Audio with the flagship brand Jabra, and now also including the VXi and BlueParrott brands.

    The marriage of multiple research and development skills has allowed GN Audio to enter a market with a superior commercial headphone brand that delivers for both large enterprise organisations and small business running warehouse or manufacturing operations were hearing a call is difficult” Said Sid Rashid Asia Pacific Marketing Manager.

    The latest in the BlueParrott range is the C300 XT.

    Among the BlueParrott noise cancelling headphones available in Australia is the all-new C300 XT. This device delivers 10 hours of battery life and 80% noise cancellation.

    Users can talk throughout the day even when doing long shifts, you also get up to 13 days of standby time.

    The C300-XT headset offers an integrated hardware/software solution via an open Software Development Kit.

    This kit allows users to customise the Parrott control Button to give you one-touch access to your favourite or most used features.

    This lightweight offering is also IP54 rated for water and dust resistance and all-day wearing, whether you work indoors or outdoors – in temperatures cold or hot.

    The post BlueParrott Tackles Top End BlueCollar Noise Cancelling Market appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/blueparrot-tackles-top-end-bluecollar-noise-cancelling-market/feed/ 0
    MGG Grand Las Vegas, Fast Becoming A Tired Old Tart https://smartoffice.com.au/mgg-grand-las-vegas-fast-becoming-tired-old-tart/ https://smartoffice.com.au/mgg-grand-las-vegas-fast-becoming-tired-old-tart/#respond Sat, 13 Jan 2018 04:34:04 +0000 http://smartoffice.com.au/?p=95899 Australians executives looking to stay at the MGM Grand in Las Vegas for CES may want to have second thoughts. The MGM is one of the older hotels in Las Vegas and it’s showing its age due in part to cost cutting and cost gouging by management, who appear to be obsessed at squeezing a ... Read more

    The post MGG Grand Las Vegas, Fast Becoming A Tired Old Tart appeared first on Smart Office.

    ]]>
    Australians executives looking to stay at the MGM Grand in Las Vegas for CES may want to have second thoughts.

    The MGM is one of the older hotels in Las Vegas and it’s showing its age due in part to cost cutting and cost gouging by management, who appear to be obsessed at squeezing a dollar out of anything they can including their rooms.

    I have attended 22 CES shows in Las Vegas, this is the worlds largest technology show, and over those 22 years I have stayed at the MGM for 20 of the 22 years.

    The cost per night Has gradually crept up and this year was A$618, for that you a Queen-sized bed in a room that only has one light between two queen sized beds.

    Of this amount there was a bed night room tax fee of 13.38% and then an additional US$44.36 or A$58 fee which was described as an MGM Resort fee tax.

     

    So far no one has explained what this is for.

    But you do get free Wi Fi, but you don’t get a robe in your room, breakfast, a kettle or coffee making facilities.

    You also have to pay A$6.00 for a small bottle of water.

    I strongly recommend that you run out to the ABC Convenience store where the sale bottle of water is A$1.00.

    What MGM advertising shows of the same room. Whats missing from the image is the screen on the window that restricts light to the room.

    In the room management are so tight that they only use low voltage lights resulting in the room being impossible to see in especially as the room is 41 square metres or 464 square feet.

    There was supposed to be a second light in the room as per the hotels publicity images used online, when I questioned management about this they sent a person to my room who said, “Sorry but we don’t have any additional lights”.

    “Yes, there is supposed to be one, but we have none. There is nothing I can do about it”. There was a desktop light over a desk but this was no good when one was trying to read.

    Then there was the issue of no hot water.

    After three cold showers I complained to the front desk, when a maintenance executive came to my room he ran the water for more than 9 minutes, he then informed me that to get hot water I had to run the taps for between 8-10 minutes.

    When I pointed out that in the mornings I don’t have time to run a shower for 10 minutes “just to get hot water” he said, “sorry It’s not my fault”.
    This is also a hotel that has put restrictors on their showers and basins to restrict water flow.

    From what I have seen the MGM has become a tired old hotel with the rooms more like a cheap 3 star motel than a premium hotel especially as they are asking a premium price for their rooms during the CES show.

    MGM’s Strip properties are Aria, Bellagio, Circus Circus, Delano, Excalibur, Luxor, Mandalay Bay, MGM Grand, The Signature at MGM Grand, The Mirage, Monte Carlo, Vdara and New York-New York.

    If you have had a bad experience at the MGM Grand email me with your story: dwr@4squaremedia.com

    The post MGG Grand Las Vegas, Fast Becoming A Tired Old Tart appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/mgg-grand-las-vegas-fast-becoming-tired-old-tart/feed/ 0
    COMMENT: Triple M Gives Triple J And Minority Groups Two Finger Salute Over Australia Day https://smartoffice.com.au/comment-triple-m-gives-triple-j-minority-groups-two-finger-salute-australia-day/ https://smartoffice.com.au/comment-triple-m-gives-triple-j-minority-groups-two-finger-salute-australia-day/#respond Thu, 21 Dec 2017 09:09:03 +0000 http://smartoffice.com.au/?p=95890 Triple M has got to be praised for standing up to a bunch of people who are trying to change the Australian way of life. When tax payer funded and socialist and left leaning radio station, Triple J, decided in their unwise wisdom, to drop putting to air their Hottest 100 songs on Australia Day, ... Read more

    The post COMMENT: Triple M Gives Triple J And Minority Groups Two Finger Salute Over Australia Day appeared first on Smart Office.

    ]]>
    Triple M has got to be praised for standing up to a bunch of people who are trying to change the Australian way of life.

    When tax payer funded and socialist and left leaning radio station, Triple J, decided in their unwise wisdom, to drop putting to air their Hottest 100 songs on Australia Day, a day they believe should not exist, Triple M has stood up to them by rolling out their own top 100.

    This has already got right up the noses of a bunch of radical left leaning individuals who believe that they have a right to change the way that millions of Australians want to lead their lives.

    They have already labelled Triple M “Rednecks” for simple giving this rabble of Indigenous Community and other hangers on the two-finger salute.

    At least Triple M are smart enough to realise that all the issue has done is given millions of Australian a reason to tune into Triple M on Australia Day.

    Let’s face it if Triple J believe that that they have influence and that we the majority in Australia should bow down to the thinking of a rabble, who I suspect are by majority either sponging off Government handouts, or are employed in public service jobs.

    One has to question why haven’t they started the top 100 Indigenous Community hits or the top 100 Muslim hits to replace the Hottest 100 songs they have traditionally played on Australia Day.

    Then there is the Fairfax media mob who are equally as socialist as Triple J.

    The Sydney Morning Herald claimed that Triple M ‘has sparked widespread outrage and even caused an internal rift over a controversial plan to broadcast their own version of the Hottest 100 on Australia Day”.

    What garbage. A small rabble of people and that’s what they are, have winged and complained and Fairfax like they do have suddenly got a headline that’s a million miles away from the truth.

    Then again Fairfax circulation is falling, and they are laying off journalist in the dozens which is not surprising as their editorial has become the parish newsletter for the deprived hard done to, public servants and an Indigenous Community not people with money which their glossy advertising is directed at.

    Fairfax claim that the announcement has triggered intense backlash on social media, with many accusing the radio station of being tone deaf as well as purposefully trying to offend Indigenous Australians.

    This is another piece of Fairfax garbage.

    Millions of Australians have not responded on social media because they could not be bothered to respond, they will have their say on the 26th of January when millions will come out and celebrate Australia Day, while Triple J and their small band of offended Indigenous Community members along with Triple M personality Will Anderson are getting their nickers in a twist over the horror that the bulk of Australians will be celebrating Australia Day.

    Will Anderson has said he is disappointed by Triple M’s decision to broadcast an “Ozzest 100” countdown on Australia Day.

    He bleated,”[I] have made that clear to management yesterday and will continue to hold and prosecute why I don’t think it’s a good idea,” he wrote. “I was as shocked and disappointed as you would imagine as someone who has vocally and on the record expressed how proud I was of triple J.”

    This whole issue blew up two months ago Triple J announced they’re changing the date of the annual music poll amid a growing debate about what January 26 means for Indigenous Australians.

    Triple J defended changing the date of the Hottest 100 on the grounds that 60 per cent of its listeners supported a change.

    Really, out of 18 stations listed in Sydney’s top 18. Triple J came in at 17th in the latest ratings announced after their decision to drop the 100 hottest songs. Their share of people in the 18-24 was down a staggering 18%.

    Prior to the announcement Triple J had 6.4% share this fell to 4.9% after the announcement. Back in Survey 2 the Government funded radio station had 7.8% share.

    This is information that Fairfax omitted from their story.

    Triple M on the other hand saw a modest amount of growth, climbing 0.7 points to a share of 6.2%.

    The post COMMENT: Triple M Gives Triple J And Minority Groups Two Finger Salute Over Australia Day appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/comment-triple-m-gives-triple-j-minority-groups-two-finger-salute-australia-day/feed/ 0
    Sheraton Hotel Melbourne, Free Loud Music & Screaming Women https://smartoffice.com.au/sheraton-hotel-melbourne-free-loud-music-screaming-women/ https://smartoffice.com.au/sheraton-hotel-melbourne-free-loud-music-screaming-women/#respond Sat, 09 Dec 2017 07:40:21 +0000 http://smartoffice.com.au/?p=95859 When you are paying $500 a night for a room, the least one expects is having to go to sleep with noise cancelling headphones on to kill the noise. This was the case at the Sheraton Hotel in Melbourne this week when some dumb events manager, decided that paying customers came second ahead of a ... Read more

    The post Sheraton Hotel Melbourne, Free Loud Music & Screaming Women appeared first on Smart Office.

    ]]>
    When you are paying $500 a night for a room, the least one expects is having to go to sleep with noise cancelling headphones on to kill the noise.

    This was the case at the Sheraton Hotel in Melbourne this week when some dumb events manager, decided that paying customers came second ahead of a bunch of screaming women and a disco set up outside on a 3rd floor balcony, then again the events staff are most probabally on events commisssion so why should they care about house guests.

    The only problem was that guests on the 1st to 12th floor where I was staying had to put up with not only the worst techno beat music for hours on end but a bunch of drunk screaming party guests who had no regard for paying guests.

    Even worse the Hotel Duty Manager who admitted that “many” guest had complained about the noise appeared to be powerless to stop the noise.

    He also failed to get the DJ running the outside disco to turn the noise down so that guests on every floor under and above the outside disco could sleep.

    At one stage a threat was made to call the police on the grounds that if this had been a residential property, the DJ would have been warned about the noise especially if residents 12 houses away could hear the noise clearly.

    The post Sheraton Hotel Melbourne, Free Loud Music & Screaming Women appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/sheraton-hotel-melbourne-free-loud-music-screaming-women/feed/ 0
    Is The iPhone 8 A Stunning New Phone Or A Glorified Update? https://smartoffice.com.au/iphone-8-stunning-new-phone-glorified-update/ https://smartoffice.com.au/iphone-8-stunning-new-phone-glorified-update/#respond Tue, 12 Sep 2017 23:42:26 +0000 http://smartoffice.com.au/?p=95432 Serious questions are being raised about the new Apple iPhone 8 offering with some saying it’s more an upgrade than a brand-new phone oozing new technology. Tim Cook Apple CEO Said “It’s truly amazing how much iPhone impacts the world each and every day. Our intention with iPhone has always been to create something so ... Read more

    The post Is The iPhone 8 A Stunning New Phone Or A Glorified Update? appeared first on Smart Office.

    ]]>
    Serious questions are being raised about the new Apple iPhone 8 offering with some saying it’s more an upgrade than a brand-new phone oozing new technology.

    Tim Cook Apple CEO Said “It’s truly amazing how much iPhone impacts the world each and every day. Our intention with iPhone has always been to create something so powerful, so immersive and so magical, that the hardware virtually disappears.”

    So far, the changes to iPhone 8 are what you’d expect from an annual smartphone upgrade. Stronger glass. Improved speakers. An A11 “bionic” chip.

    Glass on the front and back. Silver, space grey, and gold. “The design is all new” claims Cook, some said “Oh really”.

    “The first iPhone forever changed how we interact with technology by introducing multitouch.” said Cook.

    The show was then handed over to Tim Schiller.

    He said that the new device will have custom aluminium alloy, glass and a seven-layer colour process, internal steel and copper structure.

    “The glass is the most durable ever in a smartphone” The same was said at the HTC 11 launch and the Samsung Note launch.

    You get “New displays, with True Tone that adapts colour and temperature to ambient light”.

    There are “new stereo speakers that are 25 percent louder than iPhone 7. “Deeper bass” claims Shiller.

    We have still not seen any apple breakthrough with their iPhone 8.

    Tim pulls the “one more thing” card. This isn’t as much of a surprise as the iPod was, but it’s going to be quite big.

    Cook says it’ll “set the path of technology for the next decade”. We’ll see. It’s called the iPhone X. And it’s pronounced iPhone Ten.

    Schiller’s not done yet, and he returns to announce the biggest change coming to the iPhone 8: wireless charging something that both LG and Samsung have had for more than two years, the big winner out of this deal appears to be Belkin.

    The iPhone 8 and 8 Plus will now support the Qi wireless charging standard – that’s the one which is built into a lot of IKEA furniture. You’ll soon be able to charge your phone by just leaving it on your bedside table.

    the iPhone 8 looks a lot like the iPhone 7, but it’s now all-glass, and it comes in three colours (silver, grey and rose gold).

    There are some new features in this phone, including the True Tone tech carried over from the iPad.

    The camera itself gets a new sensor and new colour filter on the normal 8, while the 8 Plus gets two new sensors for its two new cameras, and the telephoto lens gets better in low light.

    the 8 Plus can now use the two cameras to build a depth map of a portrait photo, and artificially alter the lighting of the images.

    Schiller also calls the iPhone the first phone “designed for Augmented Reality” I think someone needs to remind him about Google’s Project Tango.

    Games developer Alti Mar, from Directive Games, arrives to show a multiplayer AR tower defence game. I’m bored already.

    The iPhone 8 and 8 Plus are upgrades to Apple’s current iPhone 7 and 7 Plus range, updating some of the main features found on Apple’s current products.

    Initially, most pundits thought the iPhone 8 would be Apple’s main new phone – however it instead released three smartphones as part of the 10th anniversary of the original iPhone.

    The iPhone 8 and iPhone 8 Plus are similar in appearance to the current iPhone 7 and 7 Plus.

    The smaller version has a 4.7-inch screen, while the larger phone has a 5.5-inch screen and a dual camera lens on the back.

    The processor is the A11 Bionic, “the most powerful and smartest chip ever in a smartphone,” Apple says.

    “The new iPhone will have the most durable glass ever in a smartphone,” says Schiller.

    Both models will have a HD retina display and feature a 12MP camera.

    The iPhone 8 will be available in silver, space grey and a new blush gold colour.

    Wireless charging, a big win for Belkin

    Like the iPhone X, the two-new iPhone 8 and 8 Plus phones will come with wireless charging capabilities.

    This means the phone can be charged by simply placing it on a power pad. It is the first time the technology has come to the iPhone range.

    “This is a simple thing. We do it every day. We use them every day and charge every night,” said Schiller.

    “Words can’t describe how much nicer it is to never plug in a cable again.”

    iOS 11

    The new iPhones will come with Apple’s new operating system iOS 11. iOS 11 includes hundreds of new features like a redesigned control centre, better multitasking, improvements to the camera, peer-to-peer Apple Pay and new safety features.

    Dual camera

    The iPhone 8 Plus will have a 12MP dual-lens camera, like the one featured on the iPhone 7 Plus released last year.

    It features a larger and faster sensor, a new colour filter and deeper pixels.

    Video

    Apple claims the new camera delivers “the highest quality video capture ever in a smartphone” with better video stabilisation and 4K video up to 60fps.

    While the demise of the home button and Touch ID on the iPhone X has been in the news, the iPhone 8 will maintain the button and Touch ID. It won’t, however, have facial recognition.

    iPhone 8 and 8 Plus is cheaper than the new iPhone X 10 and on sale sooner, and will be available in space grey, silver and gold. Again, there will be both 64GB and 256GB models. The 64GB models start at $1079 for iPhone 8 and $1229 for iPhone 8 Plus. Preorder begin this Friday, September 15, with the phone going on sale the following Friday, September 22.

    The post Is The iPhone 8 A Stunning New Phone Or A Glorified Update? appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/iphone-8-stunning-new-phone-glorified-update/feed/ 0
    New Apple iPhone X Is Lacking, When Compared To Samsung Note 8 Claim Observers https://smartoffice.com.au/new-apple-x-iphone-lacking-compared-samsung-note-8-claim-observers/ https://smartoffice.com.au/new-apple-x-iphone-lacking-compared-samsung-note-8-claim-observers/#respond Tue, 12 Sep 2017 23:32:46 +0000 http://smartoffice.com.au/?p=95420 The star of the Apple show overnight was the release of the much anticipated iPhone X, it will cost a massive $1,829 for a 256GB model. The new Apple premium flagship iPhone X or as some are calling it iPhone 10, is set to compete head on with the Samsung Note 8 features an edge-to-edge ... Read more

    The post New Apple iPhone X Is Lacking, When Compared To Samsung Note 8 Claim Observers appeared first on Smart Office.

    ]]>
    The star of the Apple show overnight was the release of the much anticipated iPhone X, it will cost a massive $1,829 for a 256GB model.

    The new Apple premium flagship iPhone X or as some are calling it iPhone 10, is set to compete head on with the Samsung Note 8 features an edge-to-edge screen with a notch at the top to accommodate the front-facing camera and new Face ID sensors.

    “Over the past decade, we’ve pushed forward with innovation after innovation, bringing us to this moment, when we can create devices that are far more intelligent, far more capable, and far more creative than ever before.” Apple CEO Tim Cook told his audience.
    The new top end Apple iPhone offering has glass on both the front and the back, and it has “surgical-grade” stainless around the sides which is no different from several other smartphones out there.

    It comes in two colours: space grey and silver. It also has the highest pixel-density (458ppi) display ever in an iPhone, with Apple calling it a Super Retina display, made by Samsung.

    It measures 5.8 inches in diagonal size and has a resolution of 2436 x 1125. It’s also the first OLED display that is, in Phil Schiller’s words, “the first OLED display great enough to be in an iPhone.” Like the iPhone 8, the iPhone X also has True Tone display technology.
    Apple has as tipped, removed the home button. what you now need to learn is how to do an upward swipe from the bottom of the phone.

    Also gone is fingerprint authentication.

    The new Apple security measure is called Face ID and does what the name suggests: it unlocks the phone just by having you look at it.

    It’s based on the tech in the notch at the top of the phone: it combines an IR system with the front camera and a so-called flood illuminator that beams a light at your face to help it be recognized even in the dark. Apple even went to the extra step of building a dedicated neural engine — based on a dual-core custom chip design — to process face recognition in real time.

    Face ID, according to Apple, is orders of magnitude more secure than Touch ID. The company claims a 1 in 1,000,000 chances of a random other person being able to look at your phone and unlock it through Face ID. The new facial authentication will also work will Apple Pay and all third-party apps that already supported Touch ID.

    Photos and video playback on this new iPhone will both wrap around the notch at the top of the device, which is liable to grow irritating over time. Multitasking will also be something people will need time to adapt to: to open the iOS Control Centre, for instance, you’ll have to swipe down from the top right corner. All the swipe-based interactions have been tried by other phone companies before, with varying degrees of success.

    • iPhone X will be available in silver and space grey in 64GB and 256GB models starting at Recommended Retail Price A$1579 inc. GST for the 64GB model and RRP A$1829 inc. GST for the 256GB model from apple.com/au and Apple Stores and is also available through Apple Authorised Resellers and carriers (prices may vary).

    • Customers will be able to order iPhone X beginning Friday, 27 October, with availability beginning Friday, 3 November in Australia.

    • Apple-designed accessories including leather and silicone cases in a range of colours will be available starting at RRP A$59 inc. GST, while a new iPhone X Leather Folio will be available for RRP A$145 inc. GST. Lightning® Docks in colour-matching metallic finishes will also be available for RRP A$75 inc. GST, prices may vary.

    • Every customer who buys iPhone X from Apple will be offered free Personal Setup, in-store or online, to help them customise their iPhone by setting up email, showing them new apps from the App Store.
    • Anyone who wants to start with the basics or go further with iPhone X or iOS 11 can sign up for free Today at Apple sessions at apple.com/au/today.

    The post New Apple iPhone X Is Lacking, When Compared To Samsung Note 8 Claim Observers appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/new-apple-x-iphone-lacking-compared-samsung-note-8-claim-observers/feed/ 0
    New Apple Watch 3 Series https://smartoffice.com.au/new-apple-watch-3-series/ https://smartoffice.com.au/new-apple-watch-3-series/#respond Tue, 12 Sep 2017 23:26:30 +0000 http://smartoffice.com.au/?p=95407 After retail stores Apple CEO Tim Cook moved to the new Apple Watch Series 3. He said “The Apple Watch is designed to help people stay active and motivated so they can have a better day.” He said sales had grown by 50% during the past 12 months. Apple Watch is now the number 1 ... Read more

    The post New Apple Watch 3 Series appeared first on Smart Office.

    ]]>
    After retail stores Apple CEO Tim Cook moved to the new Apple Watch Series 3.

    He said “The Apple Watch is designed to help people stay active and motivated so they can have a better day.” He said sales had grown by 50% during the past 12 months.

    Apple Watch is now the number 1 watch in the world, above Rolex, Fossil, Omega, Cartier claims Cook.

    “97 percent customer satisfaction rate. “This is blow-away!”

    “People write to us all the time and tell us how the Apple Watch is helping them lead a healthier life.”

    It appears that after a slow start a big reboot and refocus of the Watch on health and fitness seems to have worked. It’s also the big focus of a new video that Apple showed at their event.

    Jeff Williams, Apple COO then came onstage, he said “We’re adding smart activity coaching, a completely redesigned workout app, new features for swimmers.” GymKit to pair with gym machines.

    “We’re adding smart activity coaching, a completely redesigned workout app, new features for swimmers.” GymKit to pair with gym machines.

    New dual-core processor. Siri is faster, and Siri can talk now.

    Apple’s ad for the new watch is touting “40 million songs on your wrist.” But how often do I have my watch on but also not have my phone?

    “All day battery life,” he says — up to 18 hours. But what if you actually use the cellular connection?

    Orders start September 15th, available September 22nd at Optus, Vodafone and Telstra. There was no mention of JB Hi Fi or Harvey Norman.

    The post New Apple Watch 3 Series appeared first on Smart Office.

    ]]>
    https://smartoffice.com.au/new-apple-watch-3-series/feed/ 0