• Компьютер не работает после «удара»?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Если у вас в компьютере есть жёсткий диск (HDD), то прислушайтесь не издаёт ли он посторонних звуков при включении. Если они есть, отключайте диск и прекращайте любые самостоятельные попытки взаимодействия с ним.

    Если звуков нет, и компьютер получится запустить, то как минимум проверьте SMART диска, например, в Р.тестере: https://rlab.ru/tools/rtester.html
    В нём же можно сделать автоматическую диагностику и запустить тесты. То же самое также можно сделать, подключив диск к другому компьютеру с Windows.
    Ответ написан
  • Как разместить основной сайт на поддомене?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Сделайте бэкап всего - и файлов и базы.

    Дальше действуйте согласно инструкции по переносу сайта на новый домен, где новым доменом будет поддомен:
    - https://wordpress.org/support/article/moving-wordpress/
    - https://wordpress.org/support/article/changing-the...
    Ответ написан
  • Какое направление выбрать, если не хочешь до конца жизни пилить формочки и гонять json?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Мне не очень нравится идея давать советы людям, о которых я ничего не знаю, но если вкратце, то я считаю, что отец прав.

    Давая совет кому-то, кого я знаю, я бы посоветовал математику.
    Именно специальности наподобие примата максимально развивают ваши способности и учат учиться, постигать и углубляться. После них вы сможете осилить гораздо более широкий круг задач, в том числе и за пределами IT (как минимум, прямого им занятия).

    Однако, это всё применимо если вы действительно готовы учиться. На той же прикладной математике халявы не будет.
    Ответ написан
  • Как показать самые просматриваемые посты за определенный срок?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Задача вроде простая но все-же не знаю куда смотреть

    Если и правда считаете, что простая, то посмотрите, например, на это, полагаю, что разберётесь быстро :)

    Создайте таблицу с вашим префиксом:
    CREATE TABLE {$prefix}post_views (
      post_id bigint(20) NOT NULL,
      entry_day datetime NOT NULL,
      num_views int NOT NULL,
      PRIMARY KEY  (post_id,entry_day),
      KEY idx_pv_ed (entry_day)
    );

    Возьмите класс-обработчик:

    [ Класс для самых просматриваемых постов ]
    class My_Most_Viewed_Posts {
        protected $errors = null;
        protected $notices = null;
        protected $debug = false;
    
        # This just sets up the errors, notices, and debug variables able
        function __construct($debug = false) {
            $this->clear_all();
            if ( $debug ) {
                $this->debug = true;
            }
        }
    
        # This lets you add notices about what is going on so you can display them later
        protected function add_notice($msg = '') {
            if ( is_array($msg) || is_object($msg) ) {
                $this->notices[] = print_r($msg, true);
            } else {
                $this->notices[] = $msg;
            }
        }
    
        # Get an array of the most viewed posts as an array of the form ( post_id => number_of_views )
        # - $oldest_date : should be of the form YYYY-MM-DD
        # - $newest_date : should be of the form YYYY-MM-DD ( if null is provided, it will default to the current day )
        # - $num_to_get  : the number of results to return (e.g. 4 highest by default)
        function get_highest_posts_in_range( $oldest_date, $newest_date = null, $num_to_get = 4 ) {
            # Set up our return value
            $found = array();
    
            # Debug notice noting what was passed in
            if ( $this->debug ) {
                $this->add_notice( "Starting get_highest_posts_in_range( '{$oldest_date}', '{$newest_date}', {$num_to_get} )" );
            }
    
            # Do all real processing in a try / catch block to ensure can log problems instead of just throwing errors
            try {
                # Get a handle to the global database connection
                global $wpdb;
    
                # Verify that the provided $oldest_date is 10 characters long
                if ( 10 !== strlen($oldest_date) ) {
                    throw new Exception("Parameter 1: Must be of the form YYYY-MM-DD", 10001);
                } else {
                    # Appends time to the oldest date to make any between query include everything on the date
                    $oldest_date .= ' 00:00:00';
                }
    
                # Initialize the $newest_date variable OR validate that any non null value could be in the right format
                if ( is_null( $newest_date ) ) {
                    $newest_date = date('Y-m-d') . ' 23:59:59';
                } else if ( 10 !== strlen( $newest_date ) ) {
                    # Error
                    throw new Exception("Parameter 2: Must be null or in the form YYYY-MM-DD", 10002);
                } else {
                    # Appends time to make any between query contain everything entered that day
                    $newest_date .= ' 23:59:59';
                }
    
                # Make sure that the number of records to get is sane
                $num_to_get = (int) $num_to_get;
                if ( $num_to_get <= 0 ) {
                    throw new Exception("Parameter 3: Must be a positive integer", 10003);
                }
    
                # Debug message to note the final values of provided variables after validation
                if ( $this->debug ) {
                    $this->add_notice( "After Validation - Oldest: {$oldest_date}, Newest: {$newest_date}, Number to get: {$num_to_get}" );
                }
    
                # Build our query
                # It will return the post_id and number of views (as views_in_period) for the most viewed items in the given date range
                $query = <<<SQL
    SELECT post_id, SUM(num_views) as views_in_period
     FROM {$wpdb->prefix}post_views 
     WHERE entry_day BETWEEN %s AND %s
     GROUP BY post_id
     ORDER BY views_in_period DESC
     LIMIT %d
    SQL;
    
                # Add our variables to the mysql query above safely
                $query = $wpdb->prepare( $query, $oldest_date, $newest_date, $num_to_get );
    
                # Debug message to note what the final prepared query is
                if ( $this->debug ) {
                    $this->add_notice( "Prepared Query:<br />{$query}" );
                }
    
                # Run the query and get the results
                $results = $wpdb->query( $query );
                if ( false === $results ) {
                    $error = $wpdb->last_error;
                    throw new Exception("Bad Database query: {$query}, DB Error: {$error}", 10004);
                } else if ( 0 < count($results) ) {
                    # There is at least one result. Add a debug message to show what the results are
                    $this->add_notice("Results detected:");
                    $this->add_notice( $results );
    
                    # Cycle through each result and add it to our return value
                    foreach ( $results as $row ) {
                        $found["{$row['post_id']}"] = $row['views'];
                    }
                } else if ( $this->debug ) {
                    # No results returned, add a notice if in debug mode
                    $this->add_notice("Found no results for query");
                }
            } catch ( Exception $e ) {
                # Exception detected, add it to the array of errors
                $this->errors[] = $e;
            }
            return $found;
        }
    
        # This adds a new row to the post views table OR updates an existing row's num_views by 1
        # The record is automatically added as viewed on the current day
        function add_post_view( $post_id ) {
            # Log how we were called
            if ( $this->debug ) {
                $this->add_notice("Called add_post_view( {$post_id} )");
            }
            # Initialize our return value
            $added = 0;
    
            try {
                # Get hold of the database
                global $wpdb;
    
                # Add a new record. If there is a key violation, update the number of views instead.
                # ( the unique key on the table is on the post_id and entry_day )
                $query = <<<SQL
    INSERT INTO {$wpdb->prefix}post_views (
        post_id, entry_day, num_views
     ) VALUES (
        %d, UTC_DATE(), 1
     ) ON DUPLICATE KEY UPDATE num_views = num_views + 1
    SQL;
    
                # Add our variables to the query in a safe manner
                $query = $wpdb->prepare( $query, $post_id );
    
                # Log the query to be ran so we can look at it if needed
                if ( $this->debug ) {
                    $this->add_notice("Prepared Query: {$query}");
                }
    
                # Determine our results
                $result = $wpdb->query( $query );
                if ( false === $result ) {
                    # Error
                    $error = $wpdb->last_error;
                    throw new Exception("Bad Query: {$query}, Database Claims: {$error}", 10001);
                } else if ( 0 === $result ) {
                    # Should never happen - would be an error as result is numer affected and there should be at least 1 row affected
                    throw new Exception("Bad Query: {$query}, Database claims no records updated!", 10002);
                } else {
                    # Note how many changes were made (anything over 1 is fine)
                    if ( $this->debug ) {
                        $this->add_notice("Query completed with {$result} results");
                    }
                    $added = $added + $result;
                }
            } catch ( Exception $e ) {
                # Make note of the exception
                $this->errors[] = "Exception Ahoy!";
                $this->errors[] = $e;
            }
            if ( $this->debug ) {
                $this->add_notice("Leaving add_post_view");
            }
            return $added;
        }
    
        # Get the list of all errors as an array
        function get_errors() {
            if ( is_null( $this->errors ) ) {
                $errors = array();
            } else {
                $errors = $this->errors;
            }
            return $errors;
        }
    
        # Get the list of all notices as an array
        function get_notices() {
            if ( is_null( $this->notices ) ) {
                $notices = array();
            } else {
                $notices = $this->notices;
            }
            return $notices;
        }
    
        # Clear all errors and notices
        # Used on initialization and between calls
        function clear_all() {
            $this->notices = array();
            $this->errors = array();
        }
    }

    1. И сделайте на основе него плагин;
    2. Или добавьте его в конец вашего functions.php;
    3. Или добавьте его в начало шаблона;
    4. Или даже сделайте на основе него library file с названием в духе most-viewed-posts.php и вызывайте его так, как описано в первом комментарии к этому ответу.

    Либо используйте что-то наподобие Top 10.
    Ответ написан
  • Как создать установочную флешку win10 на маке?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Нужна ли какая то специальная программа

    Ответ написан
  • Как включить в URL подкатегории?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Насколько я помню, чтобы подкатегория появилась в УРЛе, вам надо присвоить посту только её, т.е. если у вас есть категория "Домашние животные", а в ней подкатегория "Муравьеды", то посту про Сальвадора Дали надо присвоить только последнюю. Паттерн для УРЛ у вас правильный.

    Либо попробуйте плагины наподобие Better permalinks, или возможно, Yoast SEO. Насчёт последнего доуточните сами - я успел подзабыть все подробности относительно того, что он умеет в плане URL.
    Ответ написан
  • Как узнать количество циклов перезаписи ssd на esxi?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Попробуйте, пож-та, на вашем конфиге: увидит ли SMART диска Ртестер.
    Если да, то это должно быть подходящим решением.
    Ответ написан
  • Переезд домена влияет на позиции в поисковых системах?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Если у вас всё пройдёт "бесшовно", т.е. сайт продолжит нормально работать, то на позиции никак повлиять не должно - не вижу причин почему это может пройзойти. Вы же не дропаете домен и не регистрируете его снова.

    на новый рег.ру

    Рекомендую сильно подумать. Рег.ру и ник.ру - это два регистратора, которых лично я бы предпочёл всячески избегать.
    Ответ написан
  • Как верстается каркас страницы?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    у ютуба

    Полагаю, что у ютьюба под капотом столько хитрой логики, что вы сильно замучаетесь её повторять.

    Вероятнее всего, вам надо смотреть в сторону фреймворков наподобие React или Angular, обращая внимание на то, что они могут в плане single-page application (SPA). Дальше строить работу с API, проверяя и подгружая то, что не загружено для запрашиваемой страницы (новый визит), либо то, что изменилось (переходы по сайту).

    Чтобы внешне было совсем как на Youtube, можете прикрутить что-то в духе этого: https://ricostacruz.com/nprogress/

    учитывая, что нормальный вид страницы уже полностью сверстан

    И на мой взгляд, проще будет сделать такую штуку вообще с нуля, посмотреть осилите ли вы такое, и нужно ли оно вам вообще, и уже затем смотреть сможете ли вы доработать готовый сайт.

    Будет интересно увидеть, если кто-то предложит готовый вариант, но я с трудом представляю что-то универсальное в данном направлении.
    Ответ написан
  • Открытый бесплатный месенджер?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    бесплатный месенджер
    https://conversations.im/

    сервер которого я мог бы развернуть у себя
    https://prosody.im/
    Ответ написан
  • Где можно хранить свои заметки из книг?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    где я могу держать заметки и цитаты из книг в электронном виде с высокой гарантией их сохранности

    Метод своеобразный, плюс не совсем ясно на чём вы читаете, но если это Android, то в программе FBReader есть закладки, которые создаются выделением текста прямо при чтении. Попробуйте - бесплатная версия у них есть, а ограничений в ней почти нет.

    У них также есть некая FBReader Book Network, позволяющая многое синхронизировать (в т.ч. закладки) через google drive. Сам я пока её не пробовал.

    Кроме того, ФБРидер существует для целого набора ОС и устройств, но что поддерживается в каждом конкретном варианте, лучше смотреть уже вам.
    Ответ написан
  • Как вернуть данные с форматированной флешки?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    есть НЮАНС: данные которые я восстановил, были просто удалены, а другие данные, которые я не смог восстановить, я форматнул при загрузке на эту флешку windows

    Если я правильно понял описание, то у вас были нужные данные, затем вы записали на флешку Виндоус, затем ещё какие-то данные (которые удалось найти), и после этого ищете самые ранние. Ситуация, прямо скажем, не очень. Чем меньше ёмкость флешки и больше размер файлов, тем хуже.

    Скачайте бесплатный Р.сейвер, распакуйте его, и сделайте полное сканирование флешки. Сохранять и распаковывать программу надо на другой диск. На диск, с которого делается восстановление, ничего сохранять нельзя.

    Те файлы, которые на самом деле были перезаписаны (байты, поверх которых легли другие), восстановить нельзя. Так что хорошая программа для восстановления данных покажет результат, близкий к максимальному.

    Есть определённый шанс, что профессионал сможет вытащить больше, но этот шанс невысок, а вот необходимость ручной работы для копания в остатках файлов - как раз наоборот. Соответственно, повышенная цена за небольшое улучшение в виде отдельных файлов.
    Ответ написан
  • Меню свернулось в бургер как вернуть нормальное?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Оно свернулось из-за custom title bar.

    Как я понимаю, на Sublime Text 4 у вас два варианта:
    • Перестать использовать адаптивную тему (Adaptive theme), и перейти на стандартную (Default theme) или дефолтную тёмную (Default Dark theme);
    • Установить добавленную в ST4 настройку disable_custom_title_bar в true. После этого гамбургер исчезнет, и у вас появится "классическое" меню, которое можно стилизовать как “light”, “dark” или “system”.
    Ответ написан
  • Существуют ли стоки для приложений ios?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    где-то можно продать подобное приложение?
    Ответ написан
  • Как скопировать каталог в виде xml-файла?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Ровно под вашу задачу. Бесплатная программа для создания списка файлов и папок: https://rlab.ru/tools/rviewer.html
    Потом сможете просматривать как в эксплорере.
    И результат ещё не просто XML, а со сжатием, чтобы места меньше занимал.
    Ответ написан
  • Мак не видит флешку, что делать?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Мало информации.

    После неудачной попытки установки линукса
    В чём именно проявилась неудачность попытки?

    мак перестал ее видеть
    Накопитель не виден каким образом: как логический диск, как правильно определяемое устройство?

    Кроме того, с учётом произошедшей "неудачности" и специфики макинтошей, есть ли у вас под рукой компьютер с Windows?

    Если да, скачайте R.tester и посмотрите как он определит флешку - будет ли виден объём, модель, и т.п.

    Но в общем и целом игра вряд ли стоит свеч. Если флэшка дала сбой, значит память уже отжила своё. Доверять что-либо хоть сколько-то ценное такому накопителю не стоит.

    Вы можете попробовать оживить её с помощью технологических утилит, подбираемых по VID/PID, но после этого использовать только для мусора.

    Если вам нужны данные с флешки, то нужно обращаться к специалистам, а к технологическим утилитам даже не прикасаться.
    Если нет, то лучше всего воспользоваться гарантией.
    Ответ написан
  • Как сделать редирект с домена на домен на все страницы?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Вопрос сформулирован не до конца точно, и нет вашего кода, но вот код для переезда с сохранением путей в URL'ах:
    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^(?:www\.)OldDomain\.ru$ [NC]
    RewriteRule ^ https://NewDomain.ru%{REQUEST_URI} [L,R=301]
    Ответ написан
  • Нормально ли потянет Windows 7 такое железо?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Xeon E5-2699 V4
    First Seen on Charts: Q2 2016

    У вас процессор, который первые пользователи увидели во втором квартале 2016-го.
    ОС и SP1 вышли на 6.5 / 5 лет раньше:

    General availability: October 22, 2009;
    Latest release: Service Pack 1 (6.1.7601.24499) / February 9, 2011

    DDR4 64 ГБ 2666 МГц - 4 шт ... хватит ли оперативки или взять 8 шт.

    Хватит даже, чтобы на RAMDisk ОС поставить:

    If you want to run Windows 7 on your PC, here's what it takes:
    • 1 gigahertz (GHz) or faster 32-bit (x86) or 64-bit (x64) processor*
    • 1 gigabyte (GB) RAM (32-bit) or 2 GB RAM (64-bit)
    • 16 GB available hard disk space (32-bit) or 20 GB (64-bit)
    • DirectX 9 graphics device with WDDM 1.0 or higher driver
    Ответ написан
  • Где лучше всего хранить файлы различного размера?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    развернуть собственный сервер-хранилище (эта идея была практически сразу откинута)

    Не совсем ясно, отбросили ли вы исключительно "железный" отдельный сервер, или в т.ч. и виртуальные.
    В любом случае - один из вариантов - это "storage VPS", что-то наподобие вот этого (по ссылке просто пример): https://hosthatch.com/storage-vps

    Также можете использовать предназначенные для хранения сервисы:
    -- https://www.hetzner.com/storage/storage-box (ФТП и подобное);
    -- https://www.hetzner.com/storage/storage-share (NextCloud).

    Последние два варианта по цене побить, наверное, можно, но полагаю, что немногие из известных игроков предложат дешевле (хотя не проверял). Это уже готовые решения, которые вполне себе дёшевы и сердиты.
    Ответ написан