• Смотрим любое кино мгновенно

      После ареста серверов Moonwalk жить стало в разы труднее. Лично я уже совсем отвык от торрентов. Нужно что-то качать, ждать, чем-то открывать, куда-то кликать, иногда еще и место на диске кончается. Как можно ждать час пока скачается фильм? За час можно жизнь прожить. Пришлось искать решение, которое позволит смотреть кино также просто, как и раньше. Норматив: от идеи посмотреть что-нибудь до начала просмотра - не более минуты.

      Вы скажете: есть Popcorntime, не морочь нам голову. Все так, есть Popcorntime, идея классная, но реализация не совсем та, какую хотелось бы. Часто нет нужных дорожек, субтитров, все как-то непрозрачно работает. Вот бы можно было иметь интерфейс, который ищет необходимое кино по всем нужным трекерам и мгновенно его начинает крутить. Есть такой интерфейс.

      Читать далее
    • Скрипт удаляет «неудаляемые» мусорные приложения Android



        На Хабре уже публиковались инструкции, как удалить со смартфона «неудаляемый» мусор, который туда добавляют производители и операторы сотовой связи. Для этого не требуются рутовые права. Все операции можно выполнить вручную, подключив смартфон к компьютеру по ADB. Подробнее см. статью «Как удалить «неудаляемые» приложения со смартфона».

        Сейчас на Gitlab опубликован универсальный bash-скрипт Universal Android Debloater, который автоматизирует большинство операций на большинстве популярных моделей смартфонов.
        Читать дальше →
      • Вышло приложение Fake Contacts для замусоривания адресной книги Android

          Программист на пенсии Билл Дитрих выпустил полезное приложение Fake Contacts, которое забивает вашу адресную книгу Android вымышленными контактами. Таким образом, любые приложения или компании, которые скопируют адресную книгу для дальнейшей перепродажи данных, получат «отравленный» фид. В частности, это необходимо для регистрации в Clubhouse, чтобы не слить свою настоящую базу.

          Особенность программы в том, что фальшивые контакты по умолчанию создаются на букву Z, чтобы не мешать работе с настоящими контактами.
          Читать дальше →
        • Соглашение Эйнштейна и einsum

          Удивительное дело, но в русскоязычном сегменте интернета почти нет материала, разъясняющего понятным языком соглашение Эйнштейна о суммировании. Не менее удивительно то, что материалов, позволяющих понять принцип работы функции einsum в русскоязычном интернете ещё меньше. На английском есть довольно развёрнутый ответ о работе einsum на stack overflow, а на русском только некоторое число сайтов, предоставляющих кривой перевод этого самого ответа. Хочу исправить эту проблему с недостатком материалов, и всех, кому интересно приглашаю к прочтению!

          Погрузиться в einsum
          • +30
          • 7,7k
          • 8
        • Настройка собственного почтового сервера

          • Tutorial

          Зачем нужен собственный почтовый сервер можно почитать в оригинальной статье. А поскольку на "habr" обретает надежду всяк сюда входящий, то далее пошаговая инструкция как сделать все настройки, чтобы почтовый сервер функционировал правильно: мог достучаться до любого адресата и сообщения не помечались как спам.

          Читать далее
        • Серебряная пуля для кремлевского демона

            image


            Вот, наконец, в теме помех навигации мы и добрались до самого крутого и интересного. Причем, это интересное оказалось не таким уж сложным технически.

            Читать дальше →
          • На Украине запретили более 400 сайтов, включая РБК, ЖЖ и подраздел GitHub

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

              Читать далее
            • Часто встречающиеся ошибки

              Решил написать о часто встречающейся ошибке в сетевых приложениях и сетевых устройствах. Постараюсь объяснить проблему, на примере Linux стека. И буду больше рассуждать Абстрактно, пытаясь объяснить принцип. Ведь все приложения разные, хоть суть одна. (Переносят биты туда-сюда.) И к каждому сетевому приложению, или к сетевому устройству нужен свой подход, чтоб исправить допущенные в нём ошибки.

              Посмотрим
            • Лайфхак: как спарсить гигабайт double-ов в секунду



                Как в коде на C++ прочитать значение double из строки?

                std::stringstream in(mystring);
                while(in >> x) {
                   sum += x;
                }

                На Intel Skylake с компилятором GCC 8.3, такой код парсит 50 МБ/с. Жёсткие диски запросто обеспечивают последовательное чтение со скоростью в несколько ГБ/с, так что вне всякого сомнения, нас ограничивает не скорость чтения с диска, а именно скорость парсинга. Как его ускорить?

                Первое, что напрашивается – отказаться от удобств, предоставляемых потоками в C++, и вызывать strtod(3) напрямую:

                do {
                    number = strtod(s, &end);
                    if(end == s) break;
                    sum += number;
                    s = end; 
                } while (s < theend);

                Скорость вырастает до 90 МБ/с; профайлинг показывает, что при чтении из потока выполняется ~1600 инструкций на каждое читаемое число, при использовании strtod – ~1100 инструкций на число. Стандартные библиотеки Си и C++ можно оправдать требованиями универсальности и переносимости; но если ограничиться парсингом только double и только на x64, то можно написать намного более эффективный код: хватит 280 инструкций на число.
                Читать дальше →
              • Достучаться до небес, или FSM на шаблонах

                Здравствуйте! Меня зовут Александр, я работаю инженером-программистом микроконтроллеров.

                Пишу на С/С++, причем предпочитаю плюсы, ибо верую в их эволюционную неизбежность в embedded.

                Мир встроенного ПО, язык С++ динамично развиваются, поэтому разработчикам важно не отставать и поддерживать свои скиллы и наработки актуальными моменту.

                Я стараюсь следовать этому очевидному посылу, благо небожители ведущие С++ программисты и консультанты щедро делятся своим опытом и идеями на разных площадках (например здесь, или здесь).

                Некоторое время назад я посмотрел мощный доклад Сергея Федорова про построение конечного автомата с таблицей переходов на шаблонах.

                Читать далее
              • Трибьют Канзи, обезьяньему патриарху, который всех озадачил

                  28 октября 2020 года исполнилось 40 лет Канзи. Это самый известный представитель бонобо — карликовых шимпанзе, дикие популяции которых обитают в Экваториальной Африке на территории Демократической Республики Конго. Канзи известен как первый представитель своего вида (и человекообразных обезьян в принципе), самостоятельно освоивший языковое общение.

                  Канзи можно назвать «раскрученной» персоной в области антропологии. В частности, о нем рассказано в книге Светланы Бурлак «Происхождение языка. Факты, исследования, гипотезы», а еще в 1996 году вышла отдельная книга, посвященная этому примату. Канзи упоминается в книге Александра Маркова «Обезьяны, кости, гены», книге Франса де Вааля «Истоки морали», которая в оригинале называется «The Bonobo and The Atheist», а также в журнале «Троицкий вариант». Общее впечатление о Канзи можно составить по этой публикации с сайта «Антропогенез», а в особенности по книге З.А. Зориной и А.А. Смирновой «О чем рассказали говорящие обезьяны».

                  Читать далее
                • Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты

                  С каждым годом рекламы в интернете становится все больше, а подают ее с каждым разом все навязчивее. Дошло уже до почты: реклама в интерфейсе почтового ящика выглядит как первое непрочитанное письмо, которое машинально хочется открыть. Я не против рекламы, особенно когда она в тему и не сбивает с толку. Но маскировать её под непрочитанное письмо ‒ это перебор. Чувствуется, что следующим шагом рекламу начнут вставлять прямо в тело письма.

                  Читать далее
                • ARM и программирование без блокировок

                  • Перевод


                  Выпуск ARM-процессора Apple M1 вдохновил меня на то, чтобы написать в Твиттер про опасности программирования без блокировок (lock-free). Этот твит вызвал бурную дискуссию. Обсуждение прошло довольно неплохо, учитывая то, что попытки втиснуть в рамки Твиттера обсуждениие такой сложной темы, как модели памяти центрального процессора, — в принципе бессмысленны. Но у меня осталось желание немного раскрыть тему.

                  Этот пост задуман не только как обычная вводная статья про опасности программирования без блокировок (о которых я в последний раз писал около 15 лет назад), но и как объяснение, почему слабая модель памяти ARM ломает некоторый код, и почему этот код, вероятно, не работал изначально. Я также хочу объяснить, почему стандарт C++11 значительно улучшил ситуацию в программировании без блокировок (несмотря на возражения против противоположной точки зрения).
                  Читать дальше →
                • Понимание LDAP-протокола, иерархии данных и компонентов записей

                  Введение


                  LDAP, или Lightweight Directory Access Protocol, является открытым протоколом, используемым для хранения и получения данных из каталога с иерархической структурой. Обычно используемый для хранения информации об организации, ее активах и пользователях, LDAP является гибким решением для определения любого типа сущностей и их свойств.


                  Big Tree

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

                  Читать дальше →
                  • +15
                  • 11,5k
                  • 8
                • Как удалить «неудаляемые» приложения со смартфона



                    Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

                    Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

                    Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

                    Всё это надо зачистить.
                    Читать дальше →
                  • Безопасный Linux вместе с AppArmor



                      В предыдущей статье речь шла о SELinux. Моё впечатление об этой системе безопасности двоякое. С одной стороны безопасности в ИТ много не бывает, и SELinux содержит все необходимое для защиты ОС и приложений от несанкционированного доступа. С другой же стороны он выглядит чересчур громоздким и неоправданно сложным, что делает его применение непрактичным. Не раз и не два в руководствах пользователя по установке коммерческого ПО я видел рекомендации выполнить setenforce 0 перед началом установки.

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

                      Так же, как и SELinux AppArmor является реализацией системы Mandatory Access Control (MAC), основанной на архитектуре Linux Security Modules (LSM). Модель безопасности Apparmor заключается в привязке атрибутов контроля доступа не к пользователям, а к программам. AppArmor обеспечивает изоляцию с помощью профилей, загружаемых в ядро, как правило, при загрузке.

                      AppArmor отличается от остальных реализаций MAC в Linux принципом действия на основе путей, еще он позволяет смешивать профили принудительного исполнения и режима предупреждений. Кроме того AppArmor использует вложенные файлы для облегчения разработки и имеет гораздо более пологий барьер для входа, чем тот же SELinux.
                      Читать дальше →
                      • +35
                      • 7,7k
                      • 4
                    • Фристайлер ракомакофон! или почему иногда мы неправильно слышим слова песен на английском



                        В 2000 году сингл финской группы Bomfunk MC’s просто взорвал радио и танцполы. Уверены, вы помните его — Freestyler.

                        Вся молодежь его пела. Но вот в русскоговорящих странах правильно не пел никто. Вообще никто, и мы знаем, о чем говорим. В лучшем случае это было «Ф-ф-фристайло ракамакафон», а остальной текст песни превращался в набор непонятных звуков.

                        Как оказалось, это вполне нормально. И таким ослышкам даже придумали собственное название — мондегрин. Что за непонятное чудовище и можно ли научиться понимать слова на слух без лишних фантазий, читайте в статье.
                        Читать дальше →
                      • BPF для самых маленьких, часть вторая: разнообразие типов программ BPF

                          Продолжаем серию статей про BPF — универсальную виртуальную машину ядра Linux — и в этом выпуске расскажем о том, какие типы программ BPF существуют, и как они используются в реальном мире капиталистического чистогана. Кроме этого, в конце статьи приведено некоторое количество ссылок, в частности, на две с половиной существующие книжки про BPF.


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


                          Если вы хотите узнать, как именно BPF помогает эффективно решать задачи защиты от DDoS атак, распределения нагрузки на серверы, реализации сетевого стека kubernetes, защиты систем от нападения, эффективной трассировки систем 24x7 прямо в проде и многие другие, то добро пожаловать под кат.


                          image

                          Читать дальше →
                          • +31
                          • 4,4k
                          • 8
                        • Быстрый поиск касательных и пересечений у выпуклых многоугольников


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


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

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

                            • Перевод
                            Если, работая в Linux, нужно быстро взглянуть на сведения о работающих процессах — можно воспользоваться командой top, или — что немного лучше — командой htop. А как быть, если надо получить данные о состоянии дисковой подсистемы? Решить эту задачу помогут специализированные инструменты, некоторые из которых распространены далеко не так широко, как top.


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