• (Не)официальное приложение Хабра — HabrApp 2.0: получение доступа

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



      Было решено: нужно что-то удобное, приятное, своё. Что насчёт своего приложения для Хабра?
      Читать дальше →
    • Сети для самых маленьких. Часть ой, всё

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



        Я не могу похвастаться тем, что за 7 лет я затронул все темы сетевой сферы или тем, что хотя бы одну из них раскрыл полностью. Но это и не было целью. А целью этой серии статей было ввести юного студента за руку в этот мир и проводить его шаг за шагом по основной галерее, давая общее представление, и уберечь от болезненных скитаний по тёмным уголкам сознания Олифера и Олифера в мучительных попытках найти ответ на вопрос, как всё это применить в жизни.
        СДСМ планировался коротким практическим курсом «как научиться в сети за месяц», а вылился в 16 (на самом деле 19) длинных выпусков, которые мы уже даже переименовали в «Сети Для Самых Суровых». Общее количество символов перевалило за 1 000 000.
        Читать дальше →
      • Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

          Состоялся очередной бета-релиз AvaloniaUI.



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

          Читать дальше →
        • Извините, но все ваши базы принадлежат Google. Презентация Google на Game Development Conference 2019, проект Stadia

            Вчера вечером, 19 марта, Google провели собственную презентацию в рамках Game Developers Conference. Суть происходящего — новый видеостриминговый сервис, позволяющий играть с любого устройства без необходимости иметь мощный компьютер или консоль, и специальный геймпад для него.



            Если этого мало, то Google представляет новую игровую студию, которой управляет Джейд Рэймонд, бывший исполнительный продюсер Ubisoft Montreal и управляющий директор Ubisoft Toronto.

            Быстрый обзор презентации со скриншотами — под катом. Подробная текстовая расшифровка, возможно будет чуть позже.

            Обратите внимание, что под катом будет множество изображений в разрешении 1920x1080, создающих неплохой такой трафик. Олсо, я предупреждал.

            Читать дальше →
          • 10 шагов к успешному Python-проекту

            • Перевод
            Материал, перевод которого мы сегодня публикуем, посвящён инструментам, которые позволяют оснащать Python-проекты средствами форматирования кода, тестирования, непрерывной интеграции и анализа зависимостей. Это помогает ускорить процесс разработки, способствует повышению качества, единообразия и безопасности кода. Предполагается, что у читателя этого материала уже есть некоторый опыт Python-разработки и проект на Python, с которым он, в ходе чтения, будет экспериментировать. Если такого проекта у вас нет — здесь можно узнать о том, как подготовить среду разработки и создать Python-пакет. Примеры, которые будут здесь приводиться, подготовлены с использованием macOS и Python 3.7.


            Читать дальше →
            • +27
            • 11,2k
            • 4
          • Ctrl-Alt-Del: запланированное устаревание программистов

            • Перевод


            Каждый год на нью-йоркской конференции PyGotham собирается около 600 программистов. Организаторы знают, что IT-индустрия представлена в основном белыми и мужчинами, поэтому прилагают особые усилия, чтобы собрать разнообразную линейку докладчиков. Они продвигают это мероприятие в списках рассылок для женщин и цветных, проводят семинары, всячески их заманивают. Все докладчики заполняют опросник, а организаторы отслеживают ежегодную статистику по демографическому разнообразию конференции.

            Я работаю в комитете конференции, и по окончании нынешнего PyGotham понял, что не приложил никаких усилий для устранения недопредставленности одной конкретной демографической группы: пожилых кодеров. По сравнению с недопредставленностью женщин и меньшинств в сфере технологий, обычно ускользает от внимания дефицит программистов в возрасте за сорок. В Нью-Йорке для них нет ни встреч, ни списков рассылки, ни известных организаций, представляющих их интересы. В следующем году я обязательно буду искать возрастных программистов для выступления на PyGotham. Но пока я не знаю, где их искать.
            Читать дальше →
          • Каждый может с легкостью выучить английский язык


              В современном мире знание английского языка приравнивается к элементарным, базовым знаниям. Это так же важно, как знать родной язык, уметь пользоваться компьютером и смартфоном. Английский сегодня нужен абсолютно каждому. Конкретно вам он тоже нужен, даже если вы об этом пока не догадываетесь.

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

              Я составил для вас памятку, которая обязательная поможет в изучении английского. Самая радостная новость: английский можно освоить полностью комфортно и не прилагая адских усилий.
              Читать дальше →
            • Как подступиться к fullstack-разработке сегодня, если ты проспал десять лет



              Привет, Хабр! Несколько месяцев назад у меня остро встал вопрос смены профиля деятельности и я обнаружил, что для претендента на вакансию web-разработчика сейчас недостаточно навыков десятилетней давности (какая неожиданность!). Пришлось срочно актуализировать свои знания. Заодно я решил составить шпаргалку с описанием большинства современных технологий, чтобы в случае чего кидать жаждущим новых знаний линк на эту статью, да и самому не забывать.
              Читать дальше →
            • Пример разбора C++ кода с помощью libclang на Python

                На одном личном проекте на C++ мне потребовалось получать информацию о типах объектов во время выполнения приложения. В C++ есть встроенный механизм Run-Time Type Information (RTTI), и конечно же первая мысль была использовать именно его, но я решил написать свою реализацию, потому что не хотел тянуть весь встроенный механизм, ведь мне нужна была лишь малая часть его функционала. А еще хотелось попробовать на практике новые возможности C++ 17, с которыми я был не особо знаком.


                В этом посте представлю пример работы с парсером libclang на языке Python.

                Читать дальше →
              • Алан Кей: «Могли ли древние римляне построить компьютер?»

                • Перевод
                Это очень интересный вопрос — похож на тот, что я обычно задавал на уроке по компьютерному дизайну: «Какой компьютер капитан Немо разработал бы для «Наутилуса»? — Нарисуйте его дизайн!»

                Сегодняшний вопрос может быть понят по-разному: например, в значении «С технологиями, доступными в то время, мог ли полный гений, похлеще Леонардо, додуматься до устройства, которое мы бы назвали цифровым компьютером?»

                image

                Hublot's miniature replica of the Antikythera mechanism

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

                Давайте не будем принимать во внимание то, что одна из проблем рабства заключается в том, что оно не мотивирует людей на изобретение механизмов для выполнения большого количества элементарной работы, включая вычисления. И давайте не принимать во внимание вопрос о «накоплении» идей предшественников, которые нужны и используются даже гениями — суть вопроса на самом деле звучит как «Можно ли построить что-то?» в данный момент нашей истории.
                Читать дальше →
              • Пишем собственную виртуальную машину

                • Перевод
                • Tutorial
                В этом руководстве я расскажу, как написать собственную виртуальную машину (VM), способную запускать программы на ассемблере, такие как 2048 (моего друга) или Roguelike (моя). Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера и как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться немного страшным, но я обещаю, что тема удивительно простая и поучительная.

                Окончательный код составляет около 250 строк на C. Достаточно знать лишь основы C или C++, такие как двоичная арифметика. Для сборки и запуска подходит любая Unix-система (включая macOS). Несколько API Unix используются для настройки ввода и отображения консоли, но они не являются существенными для основного кода. (Реализация поддержки Windows приветствуется).

                Примечание: эта VM — грамотная программа. То есть вы прямо сейчас уже читаете её исходный код! Каждый фрагмент кода будет показан и подробно объяснён, так что можете быть уверены: ничего не упущено. Окончательный код создан сплетением блоков кода. Репозиторий проекта тут.
                Читать дальше →
              • Руководство по материалам электротехники для всех. Часть 1

                • Tutorial
                Привет гиктаймс! Я решил опубликовать по частям свое руководство по материалам, используемым не только в электротехнике, но и вообще в технике, в том числе самодельщиками. С описанием, примерами применения, заметками по работе. Руководство написано максимально просто, и будет понятно всем, от школьника до пенсионера.

                В этой части начинаем разбирать проводники — Серебро, Медь, Алюминий.

                image

                Добро пожаловать под кат (ТРАФИК)
                узнать о материалах
              • Инвертор с чистым синусом за 15 минут или «силовая электроника — каждому»

                  Что такое силовая электроника? Без сомнения — это целый мир! Современный и полный комфорта. Многие представляют себе силовую электронику как что-то «магическое» и далекое, но посмотрите вокруг — почти все, что нас окружает содержит в себе силовой преобразователь: блок питания для ноутбука, светодиодная лампа, UPS, различные регуляторы, стабилизаторы напряжения, частотники (ПЧ) в вентиляции или лифте и многое другое. Большинство из этого оборудования делает нашу жизнь комфортной и безопасной.

                  Разработка силовой электроники по ряду причин является одной из сложнейших областей электроники — цена ошибки тут очень высока, при этом разработка силовых преобразователей всегда привлекала любителей, DIYщиков и не только. Наверняка вам хотелось собрать мощный блок питания для какого-то своего проекта? Или может быть online UPS на пару кВт и не разориться? А может частотник в мастерскую?

                  Сегодня я расскажу о своем небольшом открытом проекте, а точнее о его части, который позволит шагнуть в мир разработки силовой электроники любому желающему и при этом остаться в живых. В качестве демонстрации возможностей я покажу как за 15 минут собрать инвертор напряжения из 12В DC в 230В AC с синусом на выходе. Заинтриговал? Поехали!


                  Читать дальше →
                • Бэкдоры в микрокоде ассемблерных инструкций процессоров x86

                    Софту мы не доверяем уже давно, и поэтому осуществляем его аудит, проводим обратную инженерию, прогоняем в пошаговом режиме, запускаем в песочнице. Что же насчёт процессора, на котором выполняется наш софт? – Мы слепо и беззаветно доверяем этому маленькому кусочку кремния. Однако современное железо имеет те же самые проблемы, что и софт: секретную недокументированную функциональность, ошибки, уязвимости, малварь, трояны, руткиты, бэкдоры.



                    ISA (Instruction Set Architecture) x86 – одна из самых долгих непрерывно изменяющихся «архитектур набора команд» в истории. Начиная с дизайна 8086, разработанного в 1976 году, ISA претерпевает постоянные изменения и обновления; сохраняя при этом обратную совместимость и поддержку исходной спецификации. За 40 лет своего взросления, архитектура ISA обросла и продолжает обрастать множеством новых режимов и наборов инструкций, каждый из которых добавляет к предшествующему дизайну, и без того перегруженному, новый слой. Из-за политики полной обратной совместимости, в современных процессорах x86 присутствуют даже те инструкции и режимы, которые на сегодняшний день уже преданы полному забвению. В результате мы имеем архитектуру процессора, которая представляет собой сложно переплетающийся лабиринт новых и антикварных технологий. Такая чрезвычайно сложная среда – порождает множество проблем с кибербезопасностью процессора. Поэтому процессоры x86 не могут претендовать на роль доверенного корня критической киберинфраструктуры.

                    Читать дальше →
                  • Лекции Техносферы. Подготовительный курс «Алгоритмы и структуры данных» (весна 2016)

                    • Tutorial


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

                    Курс ведет Сергей Бабичев, доцент кафедр информатики и вычислительной математики, а также теоретической и прикладной информатики в МФТИ. Под катом вас ждет восемь лекций:

                    • Лекция 1. «Введение. Исполнители. Абстракции интерфейсов. Рекурсия»
                    • Лекция 2. «Жадные алгоритмы»
                    • Лекция 3. «Сортировки»
                    • Лекция 4. «Поиск. Списки»
                    • Лекция 5. «Деревья»
                    • Лекция 6. «Хеш-таблицы»
                    • Лекция 7. «Динамическое программирование»
                    • Лекция 8. «Алгоритмы на графах»
                    Читать дальше →
                    • +52
                    • 31,4k
                    • 7
                  • Под капотом Graveyard Keeper: Как реализованы графические эффекты

                      Всем привет! Целых 4 года я не писал на Хабр. Последняя моя серия постов была о различных инструментах и приемах, которые мы применяли на нашей прошлой игре (разрабатывая ее на Unity). С тех пор игру ту мы благополучно выпустили, а также выпустили и новую. Так что теперь можно немного выдохнуть и написать несколько новых статей, которые могут быть кому-то полезны.


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

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

                      Для начала, кратко перечислю из чего собирается картинка в нашей игре:
                      Читать дальше →
                    • Краткое введение в разработку приложений для микроконтроллеров stm32

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

                      На примере микроконтроллера stm32f103c8t6 и модуля Blue pill мы рассмотрим структуру типового проекта для среды разработки IAR и создадим работающую прошивку.

                      Всем, кому интересно начать работать с stm32, добро пожаловать под кат.
                      Читать дальше →
                    • Операционные системы с нуля; Уровень 0

                      • Перевод
                      • Tutorial

                      Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


                      Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

                      Читать дальше →
                    • Низкоуровневый взлом банкоматов NCR



                        Изображение: Sascha Kohlmann, CC BY-SA 2.0

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

                        Взять хотя бы банкоматы (АТМ). Нередки случаи, когда к АТМ подходят неизвестные, подключают ноутбук, забирают деньги и уходят, не оставляя каких-либо логов в системе. А недавние истории с «котлетами» (вредоносное ПО под названием Cutlet Maker) и подавно подтверждают, что неуязвимых систем нет — есть недоисследованные.
                        Читать дальше →
                      • Модернизация IDA Pro. Учимся писать загрузчики на Python

                        • Tutorial


                        Привет всем,


                        цикл статей по написанию разных полезных штук для IDA Pro продолжается. В прошлый раз мы исправляли процессорный модуль, а сегодня речь пойдёт о написании модуля-загрузчика (лоадера) для одной винтажной операционной системы, а именно — для AmigaOS. Писать будем на Python. Также я постараюсь раскрыть некоторые тонкости при работе с релоками (они же relocations), которые встречаются во многих исполняемых файлах (PE, ELF, MS-DOS и т.п.).

                        Читать дальше →
                        • +23
                        • 7,1k
                        • 3