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



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

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

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

      Всё это надо зачистить.
      Читать дальше →
    • Использование алгоритма Прима для генерации соединённых друг с другом пещер

      • Translation


      Я решил объяснить один из алгоритмов генерации карты, используемых в моей игре In the House of Silence. Главное преимущество этого способа заключается в том, что в отличие от других алгоритмов, он никаким образом не может сгенерировать карту с разделёнными частями.

      Генерация идеального лабиринта



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

      Для понятности я привёл псевдокод, описывающий алгоритм Прима. Будет довольно просто приспособить его под любой язык программирования.
      Читать дальше →
      • +45
      • 4.8k
      • 4
    • Как мы ржавели. История внедрения и обучения

        Все говорили – переходи на rust! Начинай пользоваться самым-самым языком, который самый любимый язык на stackoverflow и всё такое.

        Я тяжело вздохнул и огляделся. Ну опять двадцать-пять. Ладно, давайте разбираться, как правильно покрывать всё ржавчиной.

        Профессионально я программирую уже 17 лет. В далёкие-предалёкие времена я начал изучать программирование с x86 Assembly. Такой жестокий подход к изучению компьютера дал мне глубокое понимание того как работает процессор и что делают другие языки программирования. Учить новые языки для меня никогда не было проблемой. Я их просто учил. C, C++, шарпы, ГО, тысячи разных скриптов и фреймворков. Чего уж там, ещё один язык, можно и выучить.

        Ага.

        Только вот не с этой ржавой развалюхой. Я просидел две недели над официальным руководством, пялился в VSCode и не мог выдавить из себя больше чем fn main() {}. Ну какого же чёрта? Я просто закрыл глаза, открыл руководство на рандомной странице и начал его читать. И прикол в том, что я понял о чём там говориться. И тут до меня дошло… Руководство написано наизнанку. Начало и конец ничуть не лучше чем в Мементо Кристофера Нолана. Они как-то умудрились запутать в общем-то нормальное руководство. После этого всё пошло получше.

        Ржавые шестерёнки заскрипели и начали крутиться. Программа пошла-поехала. Если хотите знать как я внедрил rust в продакшин, как я ему научился и что из этого вышло – добро пожаловать под кат. Реальные люди, коммиты, примеры и никаких todo-list и хеллоу-ворлдов.

        Ржаветь так ржаветь.
      • Парадокс Ферми: где все инопланетяне?

        • Translation

        Первая статья из серии, где подробно изучается известный «парадокс Ферми» — отсутствие видимых следов деятельности инопланетных цивилизаций, которые должны были бы расселиться по всей Вселенной за миллиарды лет её развития




        «Одна из основных тем, на которой мы сконцентрировались – это понятие экзистенциального риска, и представление о вероятности вымирания человечества», — писал Эндрю Снайдер-Битти в материале "Великий фильтр", опубликованном в журнале Ars Technica. Материал рассказывал об открытии экзопланеты Кеплер-186f, находящейся в "зоне обитаемости".

        "Великий фильтр" – это ответ на вопрос о том, почему мы до сих пор не увидели признаков деятельности инопланетных цивилизаций. «Великий фильтр» решает те же вопросы, что и уравнение Дрейка, определяющее вероятность связаться с внеземной цивилизацией, и парадокс Ферми, который спрашивает, а где все цивилизации.
        Читать дальше →
      • Доббль: практичный подход с OpenCV и NumPy

        О чём мы вспоминаем в первую очередь, когда слышим про распознавание образов? Сложные нейронные сети, мощные видеокарты, объёмные наборы данных. Всего этого не будет в моей истории - я расскажу, как с помощью OpenCV и NumPy можно за 1 вечер решить задачу классификации 57 символов из игры Доббль, используя менее 500 их изображений без дополнительной аугментации. Разный масштаб, произвольный угол поворота - всё это не имеет значения, когда для описания символа достаточно четырёх чисел.

        Читать далее
        • +11
        • 2.5k
        • 2
      • Перспективы радарных систем на наноспутниках

          Я раньше не очень интересовался cubesat. Они казались мне чем-то неземным, сложным, далеким. Но все изменилось, когда недавно нам пришел заказ на разработку одной подсистемы для наноспутника. Я стал интересоваться, а какое же радиооборудование люди умудряются ставить на этих малышей. К своему удивлению, я увидел даже примеры создания радарных систем на cubesat. Эта техника показалась мне настолько крутой, что мы c k_const составили себе труд присмотреться к некоторым примерам спутниковой радарной обработки с синтезированной апертурой.

          Читать дальше →
          • +22
          • 4.4k
          • 7
        • Как делают вакцины

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

            Под катом — расшифровка лекции специалиста по промышленным биотехнологиям, которая прошла при поддержке ярославской Точки при ЯрГУ. В ней — подробно о типах вакцин, механизмах их работы и способах массового производства.

            Читать далее
          • Пора избавляться от мышки или Hand Pose Estimation на базе LiDAR за 30 минут

            • Tutorial
            image

            Всем привет! Пока киберпанк еще не настолько вошел в нашу жизнь, и нейроинтерфейсы далеки от идеала, первым этапом на пути к будущему манипуляторов могут стать LiDAR. Поэтому, чтобы не скучать на праздниках, я решил немного пофантазировать на тему средств управления компьютером и, предположительно, любым устройством, вплоть до экскаватора, космического корабля, дрона или кухонной плиты.
            Читать дальше →
          • Давайте напишем командную оболочку Linux

            • Tutorial

            Всем привет!

            Хочу поделиться своим опытом написания собственной командной оболочки Linux используя Posix API. Усаживайтесь поудобнее.

            Что должен уметь наша командная оболочка?

            1. Запуск процессов в foreground и background режиме

            2. Завершение background процессов

            3. Поддержка перемещения по директориям

            Читать далее
          • Пишем макет 16-битного ядра на C/C++

            • Translation


            В первой и второй статьях я лишь коротко представил процесс написания загрузчика на ассемблере и C. Для меня это было хоть и непросто, но в то же время интересно, так что я остался доволен. Однако создания загрузчика мне показалось мало, и я увлекся идеей его расширения дополнительной функциональностью. Но так как в итоге размер готовой программы превысил 512 байт, то при попытке запуска системы с несущего ее загрузочного диска я столкнулся с проблемой “This is not a bootable disk”.
            Читать дальше →
            • +36
            • 5.6k
            • 5
          • Пишем драйвер фреймбуфера для Raspberry Pi с LCD

            • Tutorial

            Прочитав монументальную серию статей о подключении LCD экрана к роутеру мне захотелось сделать то же самое. Однако многообразие используемого стека (openwrt, stm32, usb) в сочетании с отсутствием полных исходников кода но может плохо искал несколько затруднило задачу. Я решил начать с малого — написать свою реализацию framebuffer для raspberry и вывести графическую среду raspberry на LCD. Что из этого получилось, описываю далее.

            Читать дальше →
            • +39
            • 6.7k
            • 5
          • FPGA для программиста, простые рецепты

            Приоритетная структура кода


            В разработке электронных устройств грань между разработчиком-схемотехником и разработчиком-программистом очень размыта. Что уж говорит о том, кто должен писать RTL под FPGA.


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


            Производители микросхем тоже не отстают, стали паковать ПЛИС в один корпус с процессором, даже Intel выпустил процессор для PC с FPGA внутри, купив для этого известного производителя ПЛИС Altera.


            Думаю всем истинным программистам Вселенная шлет сигналы, что им просто необходимо изучить RTL и начать писать “код” для FPGA не хуже, чем под их привычные процессоры.
            Когда-то давно, я проходил этот путь и позволю себе дать несколько советов для ускорения.


            Читать дальше →
          • Как прогнозировать результаты спортивных матчей с помощью проекта ML на Python Pandas, Keras, Flask, Docker и Heroku

            • Translation
            • Tutorial
            Во время Чемпионата мира по регби в 2019 году я сделал небольшой научный проект Data Science, чтобы попытаться спрогнозировать результаты матчей, написав о нем здесь. Я развил проект до примера от начала до конца, чтобы продемонстрировать, как развернуть модель машинного обучения в виде интерактивного веб-приложения.

            Приятного чтения
          • Отладка Makefile /часть 1/

            Отладка makefile - это что-то из черной магии. К несчастью, не существует такой вещи как makefile отладчик, чтобы изучить ход выполнения конкретного правила или как разворачивается переменная. Большую часть отладки можно выполнить с помощью обычных print’ов и проверкой makefile. Конечно, GNU make немного помогает своими встроенными методами и опциями командной строки. Один из лучших методов отладки makefile это добавить отладочные перехваты (hooks) и использовать техники безопасного программирования, на которые можно будет опереться, когда дела пойдут совсем плохо. Далее представлено несколько основных техник отладки и практик безопасного программирования, которые будут, на мой взгляд, наиболее полезными.

            Дай две!
            • +31
            • 4.5k
            • 4
          • Лучшее в мире видео-объяснение нейронных сетей, глубокого обучения, градиентного спуска и обратного распространения

              image

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

              Из комментариев к прошлым публикациям мне стало понятно, что есть большое количество людей, кто не знает про канал, поэтому хочу поделиться четырьмя видео (+ русские субтитры и дубляж) и сэкономить время школьникам, родителям и учителям, чтобы они могли иметь быстрый доступ к самому интересному и качественному объяснению одной из самых важных тем современности.
              Читать дальше →
            • Самодельная портативная консоль microByte

              • Translation

              В реальности качество изображения лучше, но это сложно передать на фотографии.

              Введение


              В феврале этого года ко мне прибыл дисплейный модуль ST7789; качество картинки и цветов, несмотря на маленький размер, было впечатляющим, поэтому в голову пришла одна идея…

              Может, разработать брелок, на котором можно будет играть в Pokemon?

              В этот момент зародилась примитивная идея microByte. Спустя более семи месяцев идея брелока эволюционировала в полнофункциональную портативную консоль, способную эмулировать:

              • NES
              • GameBoy
              • GameBoy Color
              • Sega Master System
              • GameGear

              И всё это в крошечном размере картриджа первого GameBoy. Самое важное, что тексты в игре читаемы, нужна только лупа. Размеры устройства: 78x17x40 мм
              Читать дальше →
              • +41
              • 6.3k
              • 9
            • Пишем простой шахматный движок на Go

              • Translation
              Всем, кто сейчас смотрит нашумевший сериал «Ход королевы» (The Queen's Gambit), посвящается. Еще больше шахматных терминов в нашем новом переводе.

              В данной статье мы постараемся разобраться, как работают шахматные движки путем портирования шахматного движка sunfish на Go. Sunfish примечателен своей простотой и небольшим размером, но при этом он все-таки способен сыграть достойную шахматную партию. Go в свою очередь известен как простой и хорошо читаемый язык программирования, поэтому я надеюсь, что вместе они составят отличную пару.
              Читать дальше →
            • Rust crashcourse. Итераторы

              • Translation
              Ниже представлен перевод одной из частей серии статей Rust Crash Course от Майкла Сноймана, которая посвящена итераторам. Мне материал показался удачным в плане доступности изложения, поэтому перевод, сделанный для себя, решил опубликовать. Надеюсь, что это кому-то пригодится. Если данный материал будет интересен, то опубликую ещё несколько переводов из этой серии.

              Так же постарался переводить максимально близко к авторскому стилю, но сократил немного междомедий и восклицаний, не сильно значимых для смысла.
              Читать дальше →
              • +27
              • 2.7k
              • 5
            • Изучаем RISC-V с нуля, часть 1: Ассемблер и соглашения


                Издеваться мы будем над микросхемой GD32VF103CBT6, являющейся аналогом широко известной STM32F103, с небольшим, но важным отличием: вместо ядра ARM там используется ядро RISC-V. Чем это грозит нам, как программистам, попробуем разобраться.


                Кратко перечислю характеристики контроллера:


                • Напряжение питания: 2.6 — 3.6 В
                  • Максимальная тактовая частота: 108 МГц
                  • Объем ПЗУ (flash): 128 кБ
                  • Объем ОЗУ (ram): 32 кБ
                  • Объем Backup регистров (сохраняемых после сброса): 42 х 16 бит = 84 байта.
                  • АЦП+ЦАП: 2 штуки АЦП по 10 каналов и 12 бит каждый плюс 2 ЦАП по 12 бит.
                  • Разумеется, куча прочей периферии вроде таймеров, SPI, I2C, UART и т. д.
                Читать дальше →
              • Как бы я изучал Data Science, если бы начал пару лет назад, или Руководство по эффективному изучению науки о данных

                • Translation
                Когда я только начал своё путешествие к науке о данных, я потратил много времени на то, чтобы понять, с чего начать, что я должен узнать в первую очередь и какие ресурсы должен использовать. За последние два года я узнал несколько вещей, о которых хотел знать раньше, например о том, стоит ли сначала сосредоточиться на программировании или статистике, какие ресурсы я должен использовать для изучения новых навыков, как я должен подходить к изучению этих навыков и так далее. Таким образом, эта статья написана, чтобы дать направления и идеи для тех, кто изучает Data Science.

                Приятного чтения!
                • +35
                • 16.1k
                • 3