• Тихая революция и новый дикий запад в ComputerVision

      Казалось бы, революция с Computer Vision уже была. В 2012 году выстрелили алгоритмы основанные на сверточных нейронных сетях. Года с 2014 они дошли до продакшна, а года с 2016 заполонили все. Но, в конце 2020 года прошел новый виток. На этот раз не за 4 года, а за один. поговорим о Трансформерах в ComputerVision. В статье будет обзор новинок, которые появились в последний год.

      Читать далее
    • Загрузка Linux с VHD на компьютере с UEFI

      • Tutorial

      В статье о возможности загружать Linux с VHD был предложен способ загружать Linux на машине с Windows без необходимости разбивать диск на разделы. Но было одно существенное ограничение: рассматривался только вариант загрузки BIOS, т.е. legacy-загрузки. Сейчас появляется всё больше устройств без поддержки режима legacy (например, многие ноутбуки, выпущенные в 2020 году). Поэтому в этой статье будет рассмотрена загрузка Linux с VHD на компьютерах с UEFI.

      Читать далее
      • +28
      • 4.5k
      • 1
    • Полезные консольные Linux утилиты

        В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Kubernetes утилиты, так как у них есть своя подборка.


        Осторожно много скриншотов. Добавил до ката утилиту binenv.


        binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

        Читать дальше →
      • Google Earth Engine (GEE) как общедоступный суперкомпьютер

          Сервис Google Earth Engine предоставляет возможность бесплатно работать с огромными массивами пространственной информации. К примеру, в считанные минуты можно получить композитную мозаику (сборное изображение) по миллиону космоснимков. Считая, что каждая сцена (набор спектральных каналов) Landsat 8 занимает в сжатом виде 1 ГБ, при таком запросе обрабатывается объем информации порядка 1 ПБ. И все это доступно бесплатно, быстро, и в любое время. Но есть такое мнение (неправильное), что GEE на бесплатных аккаунтах позволяет обработать и экспортировать лишь небольшие наборы данных. На самом деле, такое впечатление вызвано лишь тем, что программировать на GEE можно начать, даже не читая документации сервиса, а вот извлечь много данных, все еще не читая документации, уже не получится. Далее мы рассмотрим три разных решения задачи векторизации растров и двумя разными способами напишем серверную GEE функцию для вычисления геохэша.


          Читать дальше →
        • Определение состояния Memory Pressure в Linux

            Memory pressure -- это состояние, когда системе не хватает свободной памяти. Обычно его разделяют на moderate и critical. Moderate -- это когда памяти "мало, но пока еще жить можно", и дальнейшие выделения памяти могут вызвать проблемы с отзывчивостью из-за активной работы со swap-файлов или сбросов системных буферов и кэшей. Critical -- этап уже более серьезный, означающий "еще чуть-чуть, придет OOM-killer и начнет убивать процессы".

            "Для чего нам это знать и контролировать?" -- на этот вопрос ответ будет в зависимости от того, что именно вы разрабатываете. Известный всем браузер Chromium (на котором основан Google Chrome), например, придерживается тактики "используем всю доступную память": если что-то можно забуферизовать и закэшировать в ОЗУ для ускорения работы, оно обязательно будет сделано. Зато при наступлении moderate memory pressure кэши и буферы очищаются, чтобы освободить пространство для работы других приложений, а при наступлении critical memory pressure браузер начинает выгружать фоновые вкладки, чтобы не допустить активации OOM-киллера.

            Итак, поехали.
          • Как построить свою систему поиска похожих изображений

              В интернете есть много информации о поиске похожих изображений и дубликатов. Но как построить свою систему? Какие современные подходы применять, на каких данных обучать, как валидировать качество поиска и куда смотреть при выводе в production?

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

              Читать далее
            • DIY автономный дрон с управлением через интернет. Часть 2 про ПО

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

                image

                А вот схема у продвинутых дронов:

                image
                Читать дальше →
              • Роскосмос объявил о создании андроида для работы в открытом космосе

                  ЦНИИмаш и Ракетно-космическая корпорация «Энергия» работают над созданием человекоподобного робота, который сможет выполнять работы в открытом космосе. Его планируется представить к 2025 году.

                  Читать далее
                • Лучшие open source альтернативы MS Project с диаграммами Ганта

                  • Translation
                  Если вы управляете большими и сложными проектами, попробуйте сначала решения на базе open source. Если не понравится — вернётесь к Microsoft Project.



                  Проектирование и конструирование спутников, создание роботов, запуск любого серьёзного продукта — всё это сложные большие проекты. Разработка ИТ-продуктов во многом относится к той же категории. Нам приходится привлекать, распределять и вкладывать большие суммы, взаимодействовать с поставщиками и подрядчиками (нередко это команды на аутсорсе). В результате формируются сложные зависимости, которые нужно отслеживать и корректировать.
                  Читать дальше →
                • Переполнение кучи в Linux для начинающих

                  Данный туториал для начинающих, но подразумевается, что читатель уже знаком с основами работы функции malloc библиотеки glibc. Подробно рассмотрим как эксплуатировать переполнение кучи в Linux на примере 32-разрядного Raspberry PI/ARM1176.  Так же разберем некоторые нюансы эксплуатации и в x86-x64 системах. Для этого будем использовать инструменты  GDB + GEF.

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

                  Читать далее
                  • +18
                  • 4.2k
                  • 3
                • Пишем модуль ядра Linux: I2C

                  • Tutorial
                  Хабр, привет!

                  Данная статья посвящена разработке I2C (Inter-Integrated Circuit) модуля ядра Linux. Далее описан процесс реализация базовой структуры I2C драйвера, в которую можно легко добавить реализацию необходимого функционала.

                  Опишем входные данные: I2C блок для нового процессора «зашитый» на ПЛИС, запущенный Linux версии 3.18.19 и периферийные устройства (EEPROM AT24C64 и BME280).

                  Принцип работы I2C достаточно прост, но если нужно освежить знания, то можно почитать тут.


                  Рисунок 1. Временная диаграмма сигналов шины I2C
                  Читать дальше →
                  • +52
                  • 24.1k
                  • 6
                • Использование быстрых клавиш в командной строке Linux (BASH)

                    Эта статья посвящена наиболее часто используемым комбинациям клавиш при работе в командной строке Linux (в основном в командном интерпретаторе bash).

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

                    Никогда не развивал навыка быстрой печати, но знание не одного десятка hotkey'ев, перечисленных в этом материале, позволяет набирать команды со скоростью мысли.

                    Я попытался продемонстрировать многие примеры при помощи анимированных gif'ок – иногда несколько кадров больше скажут, чем несколько абзацев текста.

                    Читать далее
                  • Не можете запомнить порядок слов в английском предложении? Вжарьте по нему «опсашком»

                      В русском языке порядок слов в предложении практически не важен. 

                      «Я тебя люблю», «Я люблю тебя», «Тебя я люблю», «Люблю я тебя». Нюансы есть, но при этом каждый из этих вариантов грамматически правильный. 

                      В английском все не совсем так. Есть фраза «I love you», а «You love I» — уже нет, так говорить неправильно. Вот только в английском есть свои способы, как сделать язык богаче и не привязываться к жесткой структуре «подлежащее-глагол-сказуемое».    

                      Об этом сегодня и поговорим. Как правильно организовать порядок слов в английском предложении и не показаться скучным. Спойлер: «опсашком» в заголовке — это не описка, а реальный мнемонический инструмент. Обо всем расскажем в статье. 

                      Читать далее
                    • Под капотом OpenVINO (Intel Neural Stick)

                        Привет, Habr! Сегодня я хочу рассказать немного об аппаратном ускорителе Neural Compute Stick. Расскажу с точки зрения hardware-разработчика. Известно, что OpenVINO взаимодействует с Neural Compute Stick, а сердцем самого стика является чип Movidius Myriad X. Некоторые характеристики данного чипа можно найти в блоге компании Intel. Сейчас мы остановимся на возможностях чипа и способах его применения немного подробнее.

                        Читать далее
                      • Systemd для продолжающих. Part 2 — Триггеры на различные события

                        • Tutorial

                        Продолжаем цикл популярного балета, под названием «Systemd для продолжающих». В этой части, являющейся логическим продолжением предыдущей, поговорим о различных триггерах не связанных со временем. Эта часть будет не такой объёмной, но, не менее интересной. Вперёд!

                        Попробовать стащить сыр!
                      • Шпаргалка полезных команд GDB

                          Для кого она нужна?


                          1) начинающих реверсеров, знающих особенности обратного проектирования, и желающих изучить такой отладчик как GDB


                          2) как подсказка тем кто постоянно работает с IDA, Ghidra или любым другим мощным и надежным инструментом, но в силу тех или иных обстоятельств решить задачу проще и быстрее с помощью GDB, и не очень хочется залезать в официальную документацию и снова все вспоминать

                          Читать дальше →
                        • Git, я хочу все отменить! Команды исправления допущенных ошибок

                          • Translation
                          image

                          Git — удобная, но довольно сложная система. Сложность, прежде всего, в том, что по невнимательности можно допустить ошибку, которую затем сложно или вообще невозможно исправить. Документация Git предоставляет описание множества команд, которые дают возможность исправить ошибку.

                          Но вся штука в том, что для исправления проблемы нужно знать точное название команды. И здесь у нас возникает типичная проблема курицы и яйца. В этой статье рассказывается о командах, которые помогают решить проблемные ситуации.
                          Читать дальше →
                        • 3D ML. Часть 5: Свертки на графах

                          • Tutorial


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


                          Наверное вы уже догадались, что речь сегодня пойдет о сверточных операторах на графах.

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

                          • Translation
                          Если вы считаете, что умеете готовить, то может, вы знаете о том, как сделать суфле или пахлаву, а может — и не знаете. Но есть кое-что такое, чему вы, вероятно, научились, просто готовя разные блюда. Например, вы, скорее всего, можете вскипятить воду, можете правильно разбить яйцо, можете поджарить мясо. Если говорить о работе в Linux или Unix, то тут тоже можно сделать похожие наблюдения. Возможно, вы не знаете о том, как установить сервер Wayland, или о том, как написать модуль ядра. Но есть определённые базовые навыки, вроде работы с файлами или редактирования текстов, которые люди осваивают независимо от того, чем они занимаются, навыки, которые помогают им в самых разных ситуациях. Один из навыков, полезных в самых разных ситуациях, овладение которым часто вызывает определённые сложности, это — умение пользоваться регулярными выражениями. Многие программы используют их в качестве средства описания шаблонов поиска чего-либо. Обычно — для поиска данных в строках, например — в файлах с каким-то текстом.



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

                          Разберём основы регулярных выражений, то, что нужно для того, чтобы хорошо их понимать и эффективно использовать.
                          Читать дальше →
                          • +33
                          • 12.2k
                          • 6