• Последние версии компиляторов D

    • Translation
    Группа разработчиков LDC закрыла ушедший год версией 1.19.0 компилятора D, использующего LLVM, а основная команда начала новый год версией 2.090.0 эталонного компилятора DMD. И если вы еще не слышали, не так давно появились важные новости о D-компиляторе на базе GCC, GDC. Наверстываем!
    Читать дальше →
  • Как я купил заблокированный ноутбук на eBay и попробовал сделать свой AntiTheft на базе IntelAMT



    TL;DR


    Absolute Computrace — технология, которая позволяет заблокировать машину(и не только), даже если на ней переустановили операционную систему или даже заменили жесткий диск, за $15 в год. Я купил ноутбук на eBay, который был залочен этой штукой. В статье описывается мой опыт, как я с ней боролся и пытался сделать то же самое на базе Intel AMT, но бесплатно.
    Читать дальше →
  • Чистим Dock и делаем приложение без xCode

    • Tutorial


    Мы сделаем программу для запуска приложений из панели статуса.
    Вам понадобится terminal, Swift версии 3.1 или выше и любой текстовый редактор.
    Я проверял работу на macOS Sierra 10.12.6 и macOS Catalina 10.15.
    Читать дальше →
    • +11
    • 1.5k
    • 5
  • Запустить Linux в браузере — поможет эмулятор jor1k (со встроенными Monkey Island, Doom и Frontier Elite II)

      В материале говорим о возможностях этого открытого инструмента и его технических параметрах. Также расскажем об аналогичных проектах, разрабатываемых в этой сфере.

      В предыдущих сериях:


      Читать дальше →
      • +10
      • 3.5k
      • 3
    • Телеграм как сервис

        Если вы когда-нибудь сталкивались с ограничениями которые свойственны Telegram Bot API, и восхищались теми возможностями которые дает Telegram Client API, но подумали что слишком сложно устанавливать TDLib, то Таас — для Вас!

        https://www.t-a-a-s.ru/

        Таас позволяет создать виртуальный клиент Телеграма в облаке, с доступом по API. Вы можете использовать все методы которые предоставляет Telegram API, без установки чего-либо.

        Чем это лучше чем бот?

        1. Можно отправлять сообщения даже тем людям, которые не начали первыми с вами общение.
        2. Возможность получить полную историю чата используя метод getChatHistory.
        3. И многое другое. Таас создает для вас настоящий Телеграм клиент управляемый через API.

        Читать дальше →
      • Вывод Telegram-канала на свой вебсайт

        • Tutorial
        Забьем еще один гвоздь в крышку гроба Роскомнадзора.

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

        Странно, что на Хабре еще не упоминался этот замечательный бот — Journalist (@JournalistBot). На сайте указано, что beta, но работает более чем стабильно.
        Читать дальше →
      • USB-звуковая карта на YM3812

        Я люблю старые компьютерные игры. Люблю старое железо, но не настолько, чтобы коллекционировать его дома. Другое дело – поковырять какой-нибудь старый чип и попробовать самому что-нибудь воспроизвести, совместить старое с новым. В данной статье история о том, как я подключил AVR-микроконтроллер к YM3812, применявшуюся в таких звуковых картах как Adlib, Sound Blaster и Pro AudioSpectrum. Я не создал что-то принципиально новое, просто объединил разные идеи. Возможно кому-то будет интересна моя реализация. А может мой опыт подтолкнет кого-нибудь на создание свого ретро-проекта.

        Читать дальше →
      • Умная лампа

        Привет, Хабр! Предлагаю вашему вниманию перевод статьи «DIY Smart Lamp» автора Maciej Matuszewski.

        Пошаговое руководство по переходу от придуманной идеи к работающему продукту.

        image

        Ожидание против реальности

        image

        Вы когда-нибудь задавали себе следующие вопросы?


        • Может ли горячий клей зафиксировать ВСЕ?
        • Сложно ли сделать умное оборудование?
        • Можете ли вы залить бетон в картонную форму?

        Если нет, может быть, пришло время. Но если ты это делал, то добро пожаловать в клуб! У нас недавно был внутренний хакатон в EL Passion, и у меня возникла сложная идея. Делаем лампу!
        Читать дальше →
      • REST сервер на Прологе, как это выглядит?

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

          В чем подвох? А все просто — будем делать на Прологе (в реализации SWI-prolog)…
          Посмотреть
          • +47
          • 5.6k
          • 9
        • Как была устроена графика NES

          • Translation
          image

          Выпущенная в 1983 году домашняя консоль Nintendo Entertainment System (NES) была дешёвой, но мощной машиной, достигшей феноменального успеха. При помощи блока обработки изображений (Picture Processing Unit, PPU) система могла создавать достаточно впечатляющую по тем временам графику, которая и сегодня в нужном контексте выглядит вполне неплохо. Самым важным аспектом была эффективность памяти — при создании графики приходилось обходиться как можно меньшим количеством байтов. Однако вместе с этим NES предоставила разработчикам мощные и простые в использовании функции, позволившие ей выделиться на фоне более старых домашних консолей. Поняв принципы создания графики NES, можно проникнуться техническим совершенством системы и осознать, насколько проще работать современным разработчикам игр.

          Фоновая графика NES собиралась из четырёх отдельных компонентов, комбинация которых образовывала изображение, которое мы видим на экране. Каждый компонент отвечал за отдельный аспект; цвет, расположение, «сырая» пиксельная графика и т.д. Такая система может показаться излишне сложной и громоздкой, но в конечном итоге она намного эффективнее использовала память и позволяла создавать простые эффекты в малом объёме кода. Если вы хотите понимать графику NES, то ключевой информацией будут эти четыре компонента.

          В этой статье подразумевается, что вы знакомы с компьютерной математикой, и в частности с тем, что 8 бит = 1 байт, а 8 бит могут обозначать 256 значений. Также необходимо понимание того, как работает шестнадцатеричная запись. Но даже без этих технических знаний статья может показаться интересной.
          Читать дальше →
        • Крохотные образы Docker, которые верили в себя*

          • Translation

          [отсылка к американской детской сказке "Маленький паровозик, который верил в себя " ("The Little Engine That Could") — прим. пер.]*



          Как автомагически создавать крохотные docker-образы для своих нужд


          Необычная одержимость


          Последние пару месяцев я был одержим навязчивой идеей: насколько можно уменьшить образ Docker, так чтобы при этом приложение работало?


          Понимаю, идея странная.


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


          Почему размер имеет значение


          Сокращая содержимое образа Docker, мы тем самым сокращаем список уязвимостей. Дополнительно мы делаем образы чище, ведь они содержат только то, что нужно для запуска приложений.

          Читать дальше →
        • С++, определен ли тип: предварительное декларирование нужных объектов

          • Translation
          В прошлый раз, мы использовали SFINAE, чтобы понять, есть ли у типа определение, и мы использовали это в сочетании с if constexpr и универсальными лямбда-выражениями, чтобы код мог использовать тип, если он определен, при этом все еще принимаясь компилятором (и отбрасываясь) если тип не определен.

          Однако в этом применении существует несколько проблем:

          • Каждый раз нужно писать struct.
          • Если тип не существует, то при присвоении ему имени этот тип вводится в текущее пространство имен, а не в пространство имен, в котором вы хотели, чтобы тип был.
          • Нужно использовать struct с неквалифицированным именем. Нельзя использовать его для проверки типа, который вы не импортировали в текущее пространство имен.

          Мы можем исправить все три проблемы с помощью одного решения: предварительно объявить тип в нужном пространстве имен.

          Читать дальше →
          • +13
          • 3.1k
          • 3
        • Hello, World! Глубокое погружение в Терминалы


            На написание данной статьи меня вдохновила статья об анализе Сишного printf. Однако, там был пропущен момент о том, какой путь проходят данные после того, как они попадают в терминальное устройство. В данной статье я хочу исправить этот недочет и проанализировать путь данных в терминале. Также мы разберемся, чем отличается Terminal от Shell, что такое Pseudoterminal, как работают эмуляторы терминалов и многое другое.

            Читать дальше →
          • Виртуальная машина на ESP8266 для запуска игр

              VM, написанная неуверенной рукой гуманитария в среде программирования Arduino с использованием быдлокода и велосипедов. А еще есть компилятор для нее из си-подобного языка, написанный на JavaScript теми же методами. Да. Уже можно спешить в комментарии, бросать камни. Ну а тех, кому все же интересно, приглашаю продолжить чтение.

              Троллейбус из буханки
              Читать дальше →
            • Linux-разработка в Windows с WSL и Visual Studio Code Remote

              • Translation
              Работа с VS Code Remote и Windows Subsystem for Linux (WSL) дает возможность использовать полнофункциональную среду разработки Linux на ноутбуке или десктопе с предустановленной Windows. В этом материале рассмотрим то, как использовать эти инструменты для разработки приложений на Python в Linux.

              image
              Читать дальше →
            • Telegram. Безлимитный сетевой диск. Бесплатный

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

                Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.

                TgCloud:


                • Виртуальная файловая система с открытым исходным г****кодом.
                • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
                • Данные хранятся в Telegram и загружаются только при работе с файлом
                • Размер и тип файлов не ограничен, можно использовать с любой ОС

                Подробности реализации и ссылка на репозиторий под катом.
                Читать дальше →
              • Магия SwiftUI или о Function builders


                  Вы пробовали добавить в VStack больше 10 вьюх?


                  var body: some View {
                          VStack {
                              Text("Placeholder1")
                              Text("Placeholder2")
                              // ... тут вьюшки с 3 по 10 . . .
                              Text("Placeholder11")
                          }
                      }

                  Я попробовал — это не компилируется. Да, я тоже сначала был удивлен и погрузился в изучение форума Swift и гитхаба. Результатом моего изучения стало — "все равно не компилируется ¯\_(ツ)_/¯ ". Но подождите, давайте разберемся почему.

                  Читать дальше →
                • MPPT контроллер заряда на STM32F334C8T6

                    В комментариях под моими предыдущими статьями неоднократно возникал вполне резонный вопрос: "Зачем делать dc/dc преобразователи на микроконтроллере, когда есть готовые?" и я в качестве ответа постоянно упоминал, как наиболее яркий пример, контроллер заряда с алгоритмом MPPT. Но сказать это одно, а показать… уже куда интереснее и нагляднее, поэтому сегодня расскажу о своем небольшом вялотекущем проекте такого контроллера.


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


                    Фото МРРТ

                    Читать дальше →
                  • Смотрим торенты на смарт ТВ без смс и регистрации

                    Доброго времени суток, Хабр.

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

                    Сразу оговорюсь, я ни в коем случае не призываю Вас использовать пиратский контент. Пиратство это зло. Всегда покупайте лицензионный контент.

                    Ну, а для тех кто хочет посмотреть торрент, не защищенный авторским правом, на своём смарт телевизоре, не дожидаясь скачивания, ниже интересный способ.
                    Читать дальше →
                  • Как я пишу конспекты по математике на LaTeX в Vim

                    • Translation
                    • Tutorial
                    Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу опубликовать несколько постов в блоге с описанием нового процесса. Это первая из статей.

                    Я начал использовать LaTeX для конспектирования во втором семестре курса математики, и с тех пор написал более 1700 страниц. Вот несколько примеров, как выглядит конспект:


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