• Что лучше, 2 ядра 4 Гц или 8 ядер 1.6 Гц (цифры рандом)?

    Melkij
    @Melkij
    PostgreSQL DBA
    То что в прикладной вашей задаче будет давать лучше результат.

    Когда-то давно, когда в десктопах были преимущество одноядерные CPU, маркетинг любил называть частоты. Потом полюбил козырять числом ядер. Потом ещё чем-нибудь. Одна характеристика чтобы доказать собственное превосходство над конкурентом (и что не менее важно - над предыдущим поколением собственной же продукции) - это же так здорово! Только нихрена это так просто не работает.

    Вот уже которое десятилетие единственный корректный ответ в выборе CPU - сравнить в конкретных условиях. Задача со звёздочкой: сравнить корректно.

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

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Никто вам ничего не гарантирует, но если на флэхе была важная инфа, то попробовать можно вот что:
    1. Вскрыть пластиковый корпус и обнажить плату, это поможет сделать дальнейшие процедуры более эффективными.
    2. Выкупать плату в чистой воде, чтобы вымыть остатки стирального порошка. Можно воду немного нагреть, не выше температуры стирки (всё равно ведь при стирке этот нагрев уже был). Пару-тройку раз сменить воду на свежую и повторить.
    3. Выкупать плату в этиловом спирте, поскольку он имеет сродство к воде и активно её растворяет. Чем концентрированнее спирт, тем лучше он растворяет воду (96% - самое то). Тоже повторить пару-тройку раз с заменой спирта на свежий.
    4. Тщательно высушить плату, можно под тепловентилятором, можно на отопительной батарее.
    5. Воткнуть плату в USB и проверить, видит ли её комп.
    6. Если видит и читает/пишет туда, собрать вокруг платы корпус и далее пользоваться. Если не видит, выкинуть и забыть. Если важной инфы там не было, то сразу выкинуть, чтобы не тратить время и спирт зря, поскольку флэшки нынче - расходный материал.
    Ответ написан
  • Случайно постирал флешку, что делать?

    mypage93
    @mypage93
    базовый верстальщик рисовальщик
    Ауевать и бегать.
    Да высуши и всё норм будет.
    Ответ написан
    Комментировать
  • Как искусственно увеличить размер диска?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Есть ли способы заставить считать, что на диске больше места чем есть на самом деле?
    1. Подменить в реестре букву системного диска (в пути системной папки).
    2. Можно свой хук написать, который вернёт нужный размер.
    3. Вообще, нужно попробовать открыть инсталлятор архиватором.
    Ответ написан
    2 комментария
  • QnA Habr RSS. Есть? Работает?

    HemulGM
    @HemulGM Автор вопроса
    Delphi Developer, сис. админ
    Нашёл rss в исходниках страницы
    Все вопросы: https://qna.habr.com/rss/questions_latest/
    Вопросы своего аккаунта: https://qna.habr.com/rss/feed/<идентификатор аккаунта типа 5343ef0c6....>
    Ответ написан
    Комментировать
  • QnA Habr RSS. Есть? Работает?

    Viktor_T2
    @Viktor_T2
    python developer
    По тегам тоже есть, например
    Node.js: https://qna.habr.com/rss/tag_questions/157899
    Tkinter: https://qna.habr.com/rss/tag_questions/229901
    Delphi: https://qna.habr.com/rss/tag_questions/604
    Ну и так далее.
    Находятся с помощью Feedbro, при заходе на страницу тега
    Ответ написан
    Комментировать
  • Как можно перебирать слова в C++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Раз у вас во вводе коды каждого символа разделены пробелами, то все просто. Заведите в программе map<wstring, wchar> и где-то в начале напишите 33 строчки вида:
    dict[L"•−"] = L'А';

    Потом входную строку разбейте на части по проблелам. Руками, циклом. Указатель-индекс будет указывать на первый необработанный символ. Найдите первый пробел или конец строки начиная с этой позиции. Кусок между двумя позициями - это текущий код. Его с помощью map'а выше переводите в символ. Сдвигайте индекс первого необработанного символа на позицию после пробела. Ну и аккуратно смотрите, если первый необработанный - пробел, то это пробел между словами - его как есть и выводите, сдвигая индекс необработанного символа на 1.
    Ответ написан
  • Почему нужно гуглить на английском?

    Adamos
    @Adamos
    Насколько я вижу, ваш вопрос в последнее время взялись активно порешать автоматически.
    Веб завален сайтами, представляющими собой корявый машинный перевод StackOverflow и других популярных англоязычных профессиональных сайтов.
    Понять, что они там напереводили, зачастую сложнее, чем просто прочесть оригинал.
    Ответ написан
    Комментировать
  • Используете ли вы витамины для "мозга"?

    Adamos
    @Adamos
    Во-первых, вы зря торопитесь. Посидите за компьютером лет пятнадцать-двадцать, начнутся проблемы со спиной, невролог вас будет кормить теми же витаминами В-группы в ударных дозах. Наедитесь еще.

    Во-вторых, на такие вопросы в интернетах чудовищное количество ответов, в основном оплаченных. Поэтому, когда вам будут настойчиво советовать пить обычный компливит, вспомните, что обычный ундевит от него отличается только ценой - раз в десять, правда... Ну, и найти его в аптеках труднее, особенно на витрине - там как раз красивые коробочки, прославленные телевизором.
    А так - попить витамины пару раз в год, для профилактики, никому еще не вредило. Но надеяться, что они дадут вам способности, которых у вас нет - как минимум наивно. Они разве что спасут от депрессии, хронической усталости и прочих состояний, граничащих с нерабочим. Подстегивать чем-то здоровый организм - это брать взаймы у собственного будущего. Очень не советую.
    Ответ написан
    8 комментариев
  • Как вы используете git при разработке в одиночку?

    Adamos
    @Adamos
    Для себя одного git, как мне кажется, нужен только как "машина времени" и "обратный роадмап".
    То есть, чтобы иметь возможность посмотреть более ранний вариант кода и чтобы в потоке коммитов найти, когда были какие-то конкретные изменения.
    По большому счету, ничего, кроме коммитов в мастер, тут и не требуется. Разве что желательны мелкие коммиты с осмысленным написанием изменений, а не куски того, о чем сам не вспомнишь через неделю.
    Ответ написан
    6 комментариев
  • Есть апп, задающий ребёнку развивающие задачки, а в случае успешного решения задачки ставящий мультик с ютуба?

    Adamos
    @Adamos
    Ваш "компромисс" не решает проблему, а обостряет ее. Решая задачки ради мультиков, ребенок их возненавидит (задачи, а не мультики). Вы ее просто превращаете в крысу, которой нужно давить на рычажок, чтобы стимулировать центр удовольствия в мозгу.

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

    Моей сейчас семь, мультики любит, но без фанатизма. Мы успешно прошли все подшивки "Школы семи гномов", рекомендую. Из развивающих игрушек использовали разве что GComprix, и то очень умеренно. Зато настольных игр у нее полный шкаф. Для вашего возраста уже кое-что можно брать - "Доббль", например.

    В четыре года мы взяли букварь, и дочь читала по странице каждый вечер. Потом - мы читаем сказку на ночь. До сих пор последний час перед сном - час чтения. Сначала дочь, потом мы. К семи годам читает бегло, с выражением, а главное - с удовольствием. Школьные уроки - в охотку и с интересом.

    Нельзя приставить к ребенку автомат и рассчитывать, что он будет развиваться. Ничего так не выйдет. Воспитание такого ребенка, каким хочешь его видеть - это труд, ежедневный и упорный. Если же вам всего лишь хочется, чтобы ребенок не мешал - ну, это-то устроить несложно. Сложности будут потом.
    Ответ написан
    6 комментариев
  • Что лучше использовать веб-разработчику: Linux Mint или Ubuntu?

    Adamos
    @Adamos
    Вы задаете вопрос, который ежемесячно обсасывается на Тостере вдоль и поперек.
    Значит, привычки гуглить и навыка читать нагугленное нет.
    Следовательно, Линукс противопоказан. Dixi.
    Ответ написан
    2 комментария
  • На чём написан язык программирования C?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Учтите, что язык программирования - это просто набор спецификаций и правил. Он написан на английском языке.

    Если же вас интересует на чем запрограммированы компиляторы языка С, то самые популярные нынче развивающиеся компиляторы написаны на C и C++ соответственно:
    gcc: https://github.com/gcc-mirror/gcc
    clang: https://github.com/llvm/llvm-project/tree/main/clang

    Вы спросите, а как компилятор языка Си написали на самом Си? Ответ прост - первые компиляторы были написаны на ассемблере. Они были очень простыми и тупыми, возможно не умели понимать все тонкости языка. Когда появился достаточно работающий компилятор с минимальным набором функций, можно было переписать его на Cи и скомпилировать первым компилятором. После этого стало можно компилировать компилятор на Си самим собой.

    Точно также в компиляторы добавляют новые возможности языка - реализуют код компиляции этих вещей без их использования в исходниках и получают компилятор, который умеет их компилировать. Потом можно исходный код компилятора переписать с использованием этих новых функций, используя полученный ранее исполняемый файл компилятора.

    А так, наверно, есть куча неподдерживаемых устаревших компиляторов Си на всевозможных языках.
    Ответ написан
    2 комментария
  • Как убрать действие preventDefault у ссылок в подмени?

    Lapita12
    @Lapita12
    Тесты, тесты?
    Чтобы убрать e.preventDefault() для ссылок в подменю, вам нужно добавить проверку на target с помощью if в теле функции handlerItem(). Ниже приведен измененный код:
    document.addEventListener('DOMContentLoaded', () => {
      const submenuItem = document.querySelectorAll(".header .menu-item-has-children");
      const menuBody = document.querySelector(".sub-menu");
    
      submenuItem.forEach((item) => {
        item.addEventListener('click', handlerItem);
    
        // слушаем клик вне меню
        document.addEventListener("click", function (e) {
          const target = e.target;
          const its_menu = target == menuBody || menuBody.contains(target);
          const its_btnMenu = target == menuBody;
          const menu_is_active = item.classList.contains("--show");
    
          if (!its_menu && !its_btnMenu && menu_is_active) {
            item.classList.toggle("--show");
          }
        });
    
        // слушаем скролл
        document.addEventListener("scroll", function () {
          //убираем класс если произошел скролл
          item.classList.remove("--show");
        });
      });
    
      function handlerItem(e) {
        if (e.target.classList.contains('sub-menu-link') || e.target.closest('.sub-menu-link')) {
          // если нажата ссылка в подменю, то предотвращаем действие по умолчанию только для нее
          return;
        }
    
        e.preventDefault();
        e.stopPropagation();
    
        this.classList.toggle("--show");
      }
    });


    Я добавил проверку на класс sub-menu-link для e.target и его ближайшего родителя с помощью метода closest(). Если элемент, на который был клик, имеет класс sub-menu-link или является его потомком, тогда e.preventDefault() не выполняется и действие по умолчанию будет выполнено.
    Ответ написан
    Комментировать
  • Почему выводятся не те символы, которые прописаны в коде?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    wcout << endl << "Результат: " << encrypt(s);

    ты потерял L перед "Результат" и выводишь в wcout обычную строку.

    А перед этим выводишь в cout. Приведи всё к выводу в wcout.

    Стандарт C++ об этом говорит вот что:
    Mixing operations on corresponding wide- and narrow-character streams follows the same semantics as mixing such operations on FILEs, as specified in the C standard library.

    А стандарт С в свою очередь говорит вот что (C11 7.21.2:4):

    Each stream has an orientation. After a stream is associated with an external file, but
    before any operations are performed on it, the stream is without orientation. Once a wide
    character input/output function has been applied to a stream without orientation, the
    stream becomes a wide-oriented stream. Similarly, once a byte input/output function has
    been applied to a stream without orientation, the stream becomes a byte-oriented stream.
    Only a call to the freopen function or the fwide function can otherwise alter the
    orientation of a stream. (A successful call to freopen removes any orientation.)

    Byte input/output functions shall not be applied to a wide-oriented stream and wide
    character input/output functions shall not be applied to a byte-oriented stream.
    Ответ написан
    7 комментариев
  • Нужен ли антивирус на linux server?

    @dronmaxman
    VoIP Administrator
    Тоже самое, ни разу не пригодился. Было пару пробитых серверов, ради интереса гонял на них разные антивирусы и скрипты, пытался найти трояна или зараженный файл - все глухо.

    Для себя сделал вывод, что это бестолковщина для linux сервера.

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

    Вот, что реально помогает, это правильно настроенный firewall и fail2ban. Так же хорошей практикой является запускать процессы которые слушают порты от безправных учеток. В Fail2ban уже заложено множество шаблонов под разные сервисы, их достаточно просто включить.

    Универсальной статьи нет, так как настройка зависит от ПО которое крутиться на сервере.
    Есть общие рекомендации:
    - настроить firewall, открывать только нужные порты
    - для SSH использовать ключи, изменить порт (например 2324), ограничить доступ с определенных IP
    - запретить вход от root на сервер по паролю
    - не использовать имена учетных записей которые попадают в перебор (типа admin, super, cisco и т.д.)
    - запускать сервисы от непривилегированных учетных записей
    - настроить бекапы
    - настроить контроль версий etckeeper
    - настроить fail2ban

    Следующий уровень паранои, это уже решения по типу Suricata IDS-IPS
    Ответ написан
    Комментировать
  • Нужен ли антивирус на linux server?

    Adamos
    @Adamos
    Вообще-то антивирус - достаточно вольно используемый термин.
    Антивирусы в том виде, как они есть для Windows, для Линукс-сервера, как правило, довольно бесполезны - разве что с этого сервера получают файлы Windows-пользователи или запускают их через Wine, скажем.

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

    @AlexVWill
    на файлопомойке или почтовике - да, в прочих случаях почти что всегда нет, если не предполагается возможность загрузки и обмена сторонними исполняемыми файлами
    Ответ написан
    Комментировать
  • Нужен ли антивирус на linux server?

    @pfg21
    ex-турист
    для операционки линукса антивирь не нужен, как таковой.
    бинари и статичные файлы эффективнее проверить по хеш-подписям из репозитория (debsums и иже с ним) и оттуда же обновить.
    то что микрософтеры промозговали систему репозиториев, это конечно глупость, ну да не первая в их стане... потому и появились сторонние системы.
    конфиги не проверишь никак :) только бекап и еще раз бекап... ну и к примеру автоматический диф изменений с проверкой.

    антивирь ставится для проверки транзитных файлов и соединений, а это от операционки не зависит никак.
    Ответ написан
    Комментировать
  • Нужен ли антивирус на linux server?

    vabka
    @vabka
    Токсичный шарпист
    А вот нужен ли он например на веб-сервере или локальном сервере?

    Что такое "локальный сервер"? На веб-сервере не нужен, тк он не должен иметь прав на запись и тем более на запуск произвольного кода.

    Сервере базы данных?

    Он тоже не должен иметь доступ на запись туда, куда ему не нужно. И тем более он не должен иметь прав на запуск исполняемых файлов.

    И файловом сервере?

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

    В итоге получается, что единственный риск - если злоумышленник вдруг найдёт RCE для СУБД или файлового хранилища, и то тут весь риск - потеря данных и майнеры.

    А на почтовые сервера антивирус ставят не для защиты сервера, а для защиты пользователей.
    Ответ написан