В предыдущей статье рассматривался принцип, как можно прокинуть периферию микроконтроллера (UART, I2C, CAN bus etc) в обычную ПК программу, так как если бы она входила в состав нашего компьютера и висела на обшей шине с памятью. В той публикации рассматривается теория и инструменты, которые позволяют это сделать. В этой части мы рассмотрим, как на практике осуществляется подготовка кода драйверов к инструментизации ADIN LLVM pass и последующей сборке в отдельную динамическую библиотеку, которую вы можете использовать в своих проектах
User
Хардварный проброс
Оказывается пробрасывать можно не только сетевые порты, а еще и регистры периферии микроконтроллера(МК). Идея та же самая - открыть периферию для использования вне микроконтроллера. В случае проброса периферии, внешними клиентами будут выступать программы на ПК, и для них мы будем давать доступ к внутренним регистрам микроконтроллера. Для программ это будет выглядеть так, как будто регистры периферии находятся в адресном пространстве компьютера(ПК). Все равно, что эти самые регистры периферии висели бы на одной шине с памятью и другими устройствами ввода-вывода
Как Kinect только Pinect
На мундиале 2018 году в России. Футбольные болельщики со всего мира могли бы увидеть и поиграть в наш отечественный игровой контроллер для писуаров. Не хочется писать по каким организационным причинам этого не случилось. Здесь я хочу рассказать как происходила разработка этого нестандартного игрового аппарата.
GraphQL, что ты такое?
Привет! Сегодня у нашей статьи два автора — бэкенд-разработчик Артём и фронтенд-разработчик Илья.
Примерно год назад мы решили попробовать внедрить graphQL у себя в проекте и сейчас хотим поделиться, как это происходило. Расскажем, что такое GraphQL, как его внедряли, почему мы вообще решили с ним подружиться и как начать взаимодействовать с API бэкенда словно вы граф, а не холоп.
Если лень читать или больше нравится видеоформат — вам сюда.
Как работают браузеры. Часть 2: парсинг и выполнение JS
Примечание переводчиков: статья предназначена для начинающих разработчиков и интересующихся разработкой. Здесь нет глубоких технических деталей, хотя, возможно, вы найдете что-то новое для себя.
В прошлой статье мы обсудили навигацию и получение данных. Сегодня поговорим о HTML- и CSS-парсинге и выполнении JavaScript.
Содержание:
1. HTML-парсинг:
— Парсинг
— Браузерные движки
— Токенизация
— Построение DOM
— Предварительные загрузчики и ускорение страницы
2. CSS-парсинг:
— Токенизация и построение CSSOM
3. Выполнение JavaScript:
— Движки JavaScript
— Компиляция
— Интерпретация
— Комплияция Just-In-Time
— Как обрабатывается код JavaScript
Штраф в 150% от стоимости проданной квартиры: ужасы валютных нарушений, и как их избежать
В июле вступают в действие поправки, которые значительно смягчают наказание за нарушение валютного законодательства РФ – что может быть крайне актуально для любого инвестора или релоцирующегося айтишника. В этой статье мы разбираем леденящие душу кулстори о возникающих из-за валютного регулирования проблемах, а также пытаемся разобраться – насколько нам станет легче жить с новыми поправками?
Охота за багами: как прокачаться этичному хакеру, чтобы больше зарабатывать на поиске уязвимостей
Мы расспросили шестерых прокачанных багхантеров, на счету которых сотни обнаруженных уязвимостей в системах известных компаний (в том числе с присвоенными CVE) и которые одними из первых присоединились к The Standoff 365 Bug Bounty, о том, какие ресурсы помогают им прокачивать навыки в offensive security и оперативно узнавать о новых ресерчах, техниках и эксплойтах. Надеемся, подборки Circuit, Ustinov, Zctym92, Fi5t, Impact и еще одного исследователя, пожелавшего сохранить инкогнито, помогут обнаружить те самые баги, которые принесут вам солидное денежное вознаграждение, признание комьюнити и публичную благодарность от известных компаний.
17 убойных репозиториев GitHub, которые нужно сохранить
Здесь собраны лучшие и самые полезные репозитории Github, которые будут служить вам долгое время.
Математика для 3D-приложений. Урок 1
Это первый, вводный урок по линейной алгебре для разработки 3D-приложений от Александра Паничева — ведущего разработчика логики в UNIGINE. В этом уроке разберемся зачем 3D-разработчикам вообще нужна линейная алгебра, а также рассмотрим основные операции над векторами.
Кариес зубов. Что это и откуда берется?
Начнем статью с небольшого факта, Вы знали, что кариес - это самое распространенное заболевание на всем земном шаре? Около 90% взрослого населения либо сталкивалось, либо прямо сейчас живет с ним. Но что же это вообще такое?
[Карьера в IT] Не HH единым: где искать вакансии, как с ними работать и при чем тут нетворкинг
Где искать вакансии и как сделать так, чтобы рекрутеры сами вас находили? В прошлой статье нашей серии «Карьера в IT» мы обсудили составление резюме. Теперь поговорим о том, куда с этим резюме идти: где искать вакансии, в том числе в зарубежные компании, и как искать работу более активно. Будет очень много ссылок на разные ресурсы и телеграм-каналы, плюс поговорим про личный бренд и нетворкинг — они, на наш взгляд, важная часть поиска.
Linux и TinyСC в браузере
Несмотря на то, что Clang in Browser довольно впечатляет, большинство существующих браузерных компиляторов все же находятся в экспериментальной стадии. Я же в этом проекте вместо портирования компилятора в WASM собираюсь пойти своим излюбленным путем – задействовать виртуальные машины. Этот способ не такой уж быстрый, особенно ввиду использования мной JS-эмулятора ЦПУ, но при этом все же позволяет добиться отличной производительности с помощью шустрого компилятора вроде Tiny С Compiler и кастомизированного Linux.
7 причин почему вы не худеете. Ожирение, инсулинорезистентность и диабет простыми словами
С лишним весом я на ты. Со 115 кг я «сбросился» до 72, затем в течение 3-х лет вернулся обратно к 94-м, а сейчас опять худею (уже грамотно) и в данный момент вешу 88.7 кг (ещё 7 скину и остановлюсь). Таких историй много, поэтому об этом я не буду, а вот причины (биологические и поведенческие), по которым вы можете не худеть, не видел, чтобы кто-то описывал в полном объёме и понятным языком. Сегодня я постараюсь сделать это для вас, обобщив все свои знания о лишнем весе.
Искренне надеюсь, что этот материал может вынуть чью-то надоедливую занозу или пролить свет на новые пути решения старых проблем.
RVO и NRVO в C++17
Предположим, что в программе на C++ вы возвращаете из функции локальную переменную. Что происходит при вызове оператора return
: копирование, перемещение или ни то, ни другое? От этого зависит длительность вызова функции и эффективность наших программ. Я постарался разобраться с этим вопросом и дам рекомендации по написанию функций так, чтобы повысить шансы на применение этой оптимизации компиляторами. Ну, а сокращения в названии статьи — это Return Value Optimization (RVO) и Named Return Value Optimization (NRVO).
[Карьера в IT] Как составить резюме, чтобы взяли в Долину. С плохими и хорошими примерами из практики
Какое резюме точно зацепит рекрутеров и из стартапов, и из FAANG? Этой статьей запускаем серию материалов с универсальными карьерными советами. Разберем весь процесс: от резюме и поиска работы до принятия оффера. Особенно актуально для тех, кто ищет работу за рубежом, но и для российских компаний подойдет. Внутри этой статьи — чек-лист, взгляд профессиональных рекрутеров, примеры и практический опыт разработчиков. Пишите в комментариях, на какие еще карьерные вопросы вы хотели бы получить ответы — постараемся рассказать об этом в следующих статьях.
Как Витамин C и Железо делают нашу кожу свежей?
Большая часть витаминов применяется в организме широко – то здесь, то там, – и сегодня мы разберёмся пускай и в одном процессе, зато очень важном. Как Витамин С и Железо делают нашу кожу лучше и способствуют более быстрому заживлению порезов? К делу.
Давайте знакомиться. Я руковожу производством электровакуумных приборов
А ещё я являюсь инженером электронной техники, который вместе с несколькими другими инженерами и партнёрами сохранил и отчасти приумножил советские электровакуумные технологии.
Это вводная статья, поэтому хотело бы начать с нашей истории, которая неразрывно связана с историей электронной промышленности постсоветской России, вернее сказать, с историей фактической гибели советской электронной промышленности.
Итак, в СССР на 1990 год действовали несколько крупных заводов по производству телевизионных кинескопов в городах Львов, Паневежис, Воронеж, Елец, Москва, Запрудня МО, Новосибирск, Новгород, Брянск, Нальчик. Ряд специальных ЭЛТ так же производился в нескольких НИИ. Это был достаточно мощный сравнительной высокотехнологичный индустриальный кластер, где работали более 70 тысяч человек (а со смежной цепочкой кооперации более 100 тысяч!). Ряд упомянутых заводов параллельно делали ещё другие электровакуумные приборы, в том числе осциллографические ЭЛТ и другие "приборные", ФЭУ, ЭОПы, имели свои сборочные производства телевизоров, компьютерных мониторов и разных стеклянных изделий бытового назначения.
Но всё равно, весь этот индустриальный кластер держался на массовом выпуске бытовых кинескопов, который с развалом СССР и началом реформ Гайдара-Ельцина начал резко стагнировать и уменьшаться в первую очередь из за очевидного проигрыша иностранным массовым образцам кинескопов по технико-экономическим параметрам. Наиболее длительно существовать на уменьшающемся рынке смогли заводы, которые либо выпускали только чёрно-белые бытовые кинескопы (для конкуренции с которыми западных массовых образцов приборов уже не было на рынке) и электровакуумные приборы для специальных применений, либо заводы, у которых была как большая номенклатура и цветных ( ЦЭЛТ ), и чёрно-белых кинескопов, а так же диверсификация в направлении другой бытовой и специальной техники. Массовое производство цветных кинескопов в РФ фактически остановилось в 1997-98 годах. После единственным и достаточно успешным наследником кинескопной промышленности СССР стал литовский завод "Экранас" ( г. Паневежис ). Его специалисты для увеличения мощности производства на европейские кредиты смогли фактически по цене металлолома скупить значительную часть советского оборудования последней модификации с остановившихся предприятий аналогичного профиля и провести работу модернизации такого оборудования на базе западной автоматики. Так же качество выпускаемых литовцами кинескопов резко возросло в связи с переходом предприятия на снабжение западными материалами и комплектующими. "Экранас" проработал до 2006 года и на пике в 2003-2004 годах выпускал цветных кинескопов порядка 5-6 миллионов в год, что было соизмеримо с мощностью всех советских кинескопных заводов вместе взятых.
Релокация в Индию
После известных событий нас временно релоцировали в Индию (Hyderabad). Не всех, а часть, кто хотел, просто чтобы все яйца не находились в одной корзине (в Питере). Я не претендую на лавры трэвэл блоггера, а просто хочу рассказать о впечатлениях с точки зрения айтишника и современных реалий.
Это не первый мой визит в Индию, первый раз я был в Гоа в 2019 году, когда еще был теплый ламповый доковидный мир, потому я примерно представлял себе, что увижу. тем более, Индия у меня не вызывает отторжения - в Гоа я чувствовал себя уютно, как дома, как будто жил там в предыдущей инкарнации.
Фаззинг Linux через WTF
Недавно появился фаззер What The Fuzz, который (кроме названия) интересен тем, что это:
- blackbox фаззер;
- snapshot-based фаззер.
То есть он может исследовать бинарь без исходников на любом интересном участке кода.
Например, сам автор фаззера натравил WTF на Ida Pro и нашел там кучу багов. Благодаря подходу с snapshot'ами, WTF умеет работать с самыми тяжелыми приложениями.
Ключевые особенности WTF, на которые стоит обратить внимание:
- работает только с бинарями под x86;
- запустить фаззинг можно и на Linux, и на Windows;
- исследуемым бинарем может быть только бинарь под Windows.
Получается, нельзя фаззить ELF?
На самом деле, можно. Просто нет инструкции, как сделать snapshot для Linux. Все-таки главная мишень — это программы для Windows.
Эта статья появилась из желания обойти это ограничение.
Имитация деятельности в стартапе
Аарон Харрис — бывший глава по инвестициям Series A в Y Combinator
Недавно у меня было несколько разговоров с фаундерами, которые после окончания YC чувствовали себя немного потерянными в отношении того, что делать дальше. Во время YC ответ на вопрос, что делать, довольно прост — мы говорим им писать код и общаться с пользователями. Интеллектуально они знают, что после YC нужно продолжать строить свой бизнес, но внезапно они сталкиваются с множеством различных возможностей, потребностей и тратой своего времени.
Это непростое время для основателей, потому что легко спутать вещи, которые выглядят как работа, с настоящей работой. Работа может означать нечто большее, чем просто написание кода и общение с пользователями, но она должна включать в себя только то, что помогает вашей компании расти и становиться лучше. Легко убедить себя, что другие виды деятельности делают вашу компанию лучше, но это неверно. Эти вещи в основном предназначены для отдыха. Если хотите, относитесь к ним именно так, но не путайте их с тем, что действительно поможет вашему стартапу.
Вещи, которые выглядят как работа над стартапом, но таковой не являются:
Information
- Rating
- Does not participate
- Registered
- Activity