• Наиболее точное скалярное произведение векторов типа double. Вычисление значения полинома

      В прошлой статье речь шла о том, как можно сложить массив из чисел типа double наиболее точно, то есть получить такую сумму, как если бы мы выполняли вычисления в рамках арифметики с бесконечной точностью, а затем один раз округлили бы результат. Был показан алгоритм, который эквивалентен применению типа данных double-double, в котором сложение происходит сразу в двух переменных: основная сумма и хвостик-погрешность. Опытные читатели сразу догадались, что сложение хвостиков-погрешностей также допускает по отношению к себе рекурсивное применение того же алгоритма, что приводит не к удвоенной, а к утроенной точности, и вообще, можно организовать каскад сложений произвольного размера, получая любую наперёд заданную точность расчётов, поэтому фактически в прошлой статье была показана предпосылка к так называемой «дробной длинной арифметике». Опытный программист без труда разберётся как её реализовать, ну а я обещал дать аналогичные фундаментальные основы для скалярного произведения и вычисления полинома в точке. Поскольку все базовые вводные слова уже были сказаны в двух предшествующих статьях, в этой будет меньше «воды» и «лишних», по мнению опытных математиков, сведений. Прошу под кат.

      Читать дальше →
    • Последнее обновление CentOS ломает GRUB2-efi загрузчики

        После запуска yum update на CentOS при последующей перезагрузке вас может поджидать сюрприз в виде окирпиченного сервера, который зависает на заставке биоса.


        О проблеме на форумах и багтрекерах начали писать вчера. Похоже, что проблема затрагивает все системы с UEFI загрузчиком и актуальна как минимум для версий CentOS 7.8 и 8.2. Вот и мне вчера под вечер не повезло обновиться и перезагрузить сервер, обеспечив себе ночь веселья.


        Проблема проявляет себя в момент перезагрузки сервера в виде зависшего экрана с заставкой биоса, от чего сначала вообще не понятно, что происходит — ни ошибок, ни консоли grub, только зависшая заставка bios.

        Читать дальше →
      • 15 базовых советов по Git для эффективной работы каждый день

        Привет, меня зовут Сергеев Сергей aka gurugray. Сейчас я «Mentor FrontEnd Community» в компании ManyChat. Вы могли видеть мои лекции по релизному циклу и регламенту работ с системами контроля версий в Школе Разработки Интерфейсов Яндекса (ШРИ).


        Меня часто спрашивают какие life-hacks или best-practices я использую при работе с Git'ом и репозиториями проекта.


        Эта заметка — попытка объяснить те базовые настройки и приёмы, которыми я пользуюсь каждый день. Рецепты не претендуют быть ноу-хау, но могут помочь с освоением ежедневной гигиены работы с репозиторием.


        Читать дальше →
      • Как разместить статический сайт с помощью Yandex.Cloud Object Storage

        Привет, Хабр!

        В этой статье, я расскажу как легко и просто разместить статический сайт с помощью технологий Яндекса, а именно Object Storage.


        В конце у вас будет размещенный в сети сайт, который будет доступен по внешней ссылке.


        Эта статья будет полезна, если вы


        • Начинающий разработчик, который только обучается программированию;
        • Разработчик, который сделал портфолио и хочет разместить его в открытом доступе, чтобы показать друзьям и работодателям.
        Читать дальше →
      • Вероятно, хватит рекомендовать «Чистый код»

        • Translation
        Возможно, мы никогда не сможем прийти к эмпирическому определению «хорошего кода» или «чистого кода». Это означает, что мнение одного человека о мнении другого человека о «чистом коде» обязательно очень субъективно. Я не могу рассматривать книгу Роберта Мартина «Чистый код» 2008 года с чужой точки зрения, только со своей.

        Тем не менее, для меня главная проблема этой книги заключается в том, что многие примеры кода в ней просто ужасны.
        Читать дальше →
      • rpm-gpg-repository-mirroring — Скрипт для скачивания RPM из репозиториев, для которых нельзя сделать yum proxy в Nexus

          В некоторых организациях с серверов нет доступа в интернет. В таких случаях делают зеркала основных репозиториев.


          Но что делать, если доступ с серверов ограничен, а нужные rpm пакеты нужно установить? Обычно используют reposync или скачивают руками и делают локальный репозиторий.
          Также можно добавить репозиторий, который будет ходить в интернет через прокси сервер. На прокcи сервер может быть большая нагрузка.


          Но можно использовать скрипт rpm-gpg-repository-mirroring, который скачает нужные rpm пакеты и сделает локальное зеркало.

          Читать дальше →
        • Экстренный VPN сервер Openconnect с двухфакторной авторизацией на Centos 8

          • Tutorial

          Предисловие


          Вечерком воскресенья в середине марта мне поступил телефонный звонок, суть которого заключалась а том, что 200+ человек не приедут в понедельник в офис, а переводятся на «удалёнку». Фраза: одни на «удаленку», а админы на «продлёнку», завертелась у меня в голове.

          Читать дальше →
        • В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 

          • Translation
          Недавнее исследование «Использование и атрибуция сниппетов кода Stack Overflow в проектах GitHub» внезапно обнаружило, что чаще всего в опенсорсных проектах встречается мой ответ, написанный почти десять лет назад. По иронии судьбы, там баг.

          Давным-давно…


          Еще в 2010 году я сидел в своём офисе и занимался ерундой: развлекался код-гольфингом и накручивал рейтинг на Stack Overflow.

          Моё внимание привлёк следующий вопрос: как вывести количество байт в удобочитаемом формате? То есть как преобразовать что-то вроде 123456789 байт в «123,5 МБ».


          Старый добрый интерфейс 2010 года, спасибо The Wayback Machine
          Читать дальше →
        • Справочник начинающего подкастера

          Эта статья — краткое руководство для тех, кто хочет запустить свой собственный подкаст. Когда я вместе с моим нынешним соведущим год назад запускал подкаст “В бесконечность и далее”, я не смог найти ни одной по-настоящему всеобъемлющей статьи. Поэтому я решил попытаться заполнить этот пробел и написать руководство для себя из прошлого.


          Немного о структуре — это руководство содержит 4 статьи:


          1. Общая философия
            1.1. Зачем делать подкаст?
            1.2. Целевая аудитория
            1.3. Выбор жанра
            1.4. Формат
          2. Технический базис
            2.1. Что такое подкаст с технической точки зрения
            2.2. Аудио-формат
            2.3. Про динамики, наушники и ламповый звук
            2.4. Про тихое помещение
          3. Делаем покупки
            3.1. Покупаем микрофон
            3.2. Выбираем аудиоредактор
            3.3. Выбираем программу для записи звука
            3.4. Выбираем хостинг подкаста
            3.5. Сайт-визитка
          4. Записываем и выпускаем
            4.1. Запись выпуска
            4.2. Редактирование выпуска
            4.3. Про джинглы и звуковые схемы
            4.4. Про фоновый шум
            4.5. Про фильтры
            4.6. Про Show Notes, а также про то, зачем слушать свой подкаст
            4.7. Публикация подкаста
            4.8. Монетизация
            4.9. Темы, которые есть, но о которых мы не говорили

          Каждый раздел статьи содержит три блока


          • Суть раздела — основная мысль, изложенная тезисно
          • Детальное описание “что, зачем и почему”. Обычно — много букв, которые поясняют основную мысль, и находятся они в скрытой секции “Дополнительная информация”
          • Ответ, который нашли мы

          Интересно — читайте все. Нет времени — читайте первый и последний абзац.



          1. Общая философия


          1.1. Зачем делать подкаст?


          Ответ может быть любым, но только не “потом посмотрим”, ”ещё не думал” или “не знаю”. Если ответа нет, весьма высока вероятность что

          Читать дальше →
        • DDS Синтезатор на Verilog


          В этом посте я поделюсь тем, как разбирался с написанием DDS синтезатора на Verilog. Он будет использован для генерации синусоидального колебания, частоту и начальную фазу которого можно регулировать и рассчитан для использования с 8-битным однополярным ЦАП. О том, как работает синтезатор хорошо написано в статье журнала Компоненты и Технологии. Для сокращения объема использованной памяти таблицы синуса использована симметрия.

          Читать дальше →
        • Жадный гном: Как я писал аналитику рынка в Lineage 2

            Вот и наступила осенне-зимняя пора. За окном дожди и желания проводить время на открытом воздухе все меньше и меньше. И вот приходит мне сообщение от товарища "А давай поиграем в Lineage 2?". И опять я, поддавшись ностальгии, согласился. Выбрали мы свеженький сервер на ру-офе и создали персонажей.



             
            В отличии от World of Warcraft в Lineage 2 совершенно другая система добычи игровой валюты. Нужно круглыми сутками охотиться на монстров с целью получения наживы. Для меня было даже открытием, что для некоторых людей RMT (Real money trading) является чем то вроде работы. Также, в игре присутствует экономика, которую формируют игроки. Иными словами, можно заработать на купи-продай или же покупать дешевые ресурсы, из них делать вещи и продавать с наценкой. Так как для нас игра остается чем то вроде отдыха именно такой способ получения игровой валюты был выбран нами.


            Чтобы покупать и продавать предметы игрок должен находиться online (Скриншот сверху). Соответсвенно, кто-то хочет побыстрее продать (дешевле) а кто-то побыстрее купить (дороже). А что если разница продать — купить положительная? Как раз этот пример и будет рассмотрен в статье как итог.


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


            Spoiler:
            В статье будут использованы следующие технологии
            Docker, DigitalOcean, NodeJs, Ktor, Prometheus, Grafana, Telegram bot notification

            Читать дальше →
          • Работаем в консоли быстро и эффективно

            В сети можно встретить много советов по эффективной работе в консоли. В большинстве таких статей авторы рассказывают про банальности типа "выучите горячие клавиши" или "sudo !! запустит последнюю команду под sudo". Я же расскажу о том, что делать, когда вы уже выучили горячие клавиши и знаете про sudo !!.

            Читать дальше →
          • Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

            • Tutorial

            Регулярные выражения в Python от простого к сложному




            Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
            Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

            Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
            Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

            Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
            Читать дальше →
          • Рекомендации по информационной безопасности для малого и среднего бизнеса (SMB)

            Привет, Хабр! Представляю вашему вниманию перевод и адаптацию статьи "CIS-Controls Implementation Guide for Small- and Medium-Sized Enterprises (SMEs)".

            image

            Введение


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

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

            Что же тогда делать всем остальным? Как организациям с небольшим бюджетом и ограниченным штатом сотрудников реагировать на увеличивающееся число кибер-преступлений? Данный документ разработан для того, чтобы предоставить владельцам SMB инструменты для защиты своего бизнеса, основанные на CIS Controls. CIS Controls — это комплексный набор хорошо зарекомендовавших себя методов защиты информации, которые противодействуют наиболее распространенным угрозам и уязвимостям. Данные методы защиты информации разработаны специалистами в предметной области.
            Читать дальше →
            • +19
            • 35.3k
            • 4
          • Дэниэль Лерх: «Стеганография – это инструмент, представляющий огромный интерес для кибер-преступников»

            • Translation


            Эллиот Алдерсон прятал секретную информацию в аудио-CD файлах. Однако, техника, использованная вымышленным хакером из сериала «Мистер Робот», далека от простой прихоти телевизионщиков. Это всего лишь один из многих методов стеганографии, используемых хакерами и кибер-преступниками для обхода систем безопасности.

            Произошедшее от греческих слов steganos (скрытый) и graphos (письмо), слово «стеганография» означает метод сокрытия данных. Чтобы понять, как лучше всего справиться с этой тайной угрозой, мы поговорили с Дэниэлем Лерхом, который имеет степень кандидата компьютерных наук в Университете Universitat Oberta de Catalunya (Каталония, Испания) и является одним из лучших экспертов по стеганографии в Испании.
            Читать дальше →
            • +13
            • 8.7k
            • 9
          • Чиним Plymouth в Debian 8 (а возможно и еще где-то)

              TL;DR Захотелось поставить на старый нетбук Debian 8, сказано — сделано. В целом все работает, но вот вместо красивой заставки при загрузке — бегущие строки загрузки ядра и сервисов. Не красиво. В чем же проблема? Будем разбираться.


              Читать дальше →
            • Пролетая над долиной Маринера



                Если в новогодние каникулы у вас окончательно испортилась погода, и посмотреть на небесные красоты нельзя, то есть еще минимум два интересных варианта. Можно открыть какую-нибудь из немаленького набора программ-планетариев. А можно, набравшись храбрости, преодолеть ненулевой порог вхождения и научиться летать с честной ньютоновской физикой в Orbiter. Благо, кроме недели отдыха, есть отличный повод — в этом году после шестилетнего перерыва вышла новая версия.
                Читать дальше →
              • Допустимые и недопустимые контакты металлов. Популярные метрические и дюймовые резьбы

                  Электронику часто называют наукой о контактах. Многие знают, что нельзя скручивать между собой медный и алюминиевый провода. Медная шина заземления или латунная стойка для платы плохо сочетаются с оцинкованными винтиками, купленными в ближайшем строительном супермаркете. Почему? Коррозия может уничтожить электрический контакт, и прибор перестанет работать. Если это защитное заземление корпуса, то прибор продолжит работу, но будет небезопасен. Голая алюминиевая деталь вообще может постепенно превратиться в прах, если к ней приложить даже низковольтное напряжение.

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

                  В советских ГОСТах было написано почти всё о допустимых контактах металлов, но если изучение чёрно-белых таблиц из 1000 ячеек мелким шрифтом утомляет, то правильный ответ на «медный» вопрос — нержавейка, либо никелированная сталь, из которой, кстати, и сделан почти весь «компьютерный» крепёж. В эпоху чёрно-белого телевидения были другие понятия об удобстве интерфейса, поэтому для уважаемых читателей (и для себя заодно) автор приготовил цветную шпаргалку.

                  И, раз уж зашла речь о металлообработке, заодно автор привёл таблицу с популярными в электронике резьбами и соответствующими свёрлами, отобрав из объёмных источников наиболее релевантное по тематике портала. Не все же здесь слесари и металлурги, экономьте своё время.
                  Читать дальше →
                • Эмуляция и перехват SIM-команд через SIM Toolkit на Android 5.1 и ниже (CVE-2015-3843)



                    Я обнаружил эту уязвимость, исследуя возможность перехвата одноразовых паролей, которые отправлялись банком поставщику телекоммуникационных услуг, а затем поступали на специальное приложение SIM-карты и выводились на пользовательский интерфейс Android.
                    Читать дальше →
                    • +23
                    • 37.4k
                    • 6
                  • Универсальный скрипт переключения 2-х каналов интернета Mikrotik

                    • Tutorial
                    Около 2,5 лет назад писал статью на тему автоматического переключения канала Интернет на резервный. Скрипт, конечно, и по сей день работает «на отлично», но его внешний вид и некоторые нюансы…

                    Итак, встала задача улучшить скрипт, максимально устранив побочные эффекты. Что ж, приступим.

                    image
                    Читать дальше →