Рубрика «Блог компании RUVDS.com» - 122

Реверс-инжиниринг трафика на шине CAN - 1


Необработанный сигнал шины CAN

Шина CAN (Controller Area Network) стала стандартом в автомобилестроении: все новые автомобили обязаны поддерживать CAN (с 2001 в Европе и с 2008 в США). Кроме автомобилей, CAN применяется и в широком ряде других устройств. Производители диагностического оборудования для CAN рекламируют его применение, кроме разнообразной автомобильной техники, в мотоциклах, автопогрузчиках, судах, шахтных поездах, батискафах, беспилотных самолетах и пр. Давайте разберемся, что из себя представляет CAN.
Читать полностью »

Анонс: прямой эфир с Пашей Жовнером, создателем Flipper Zero - 1


Завтра, в 20:00 в наших соцсетях пройдет прямой эфир с любимцем публики Пашей Жовнером zhovner, создателем Flipper Zero, гиком и богомолом.

Стрим можно будет посмотреть в любых наших соцсетях — где удобно, там и смотрите.

Анонс: прямой эфир с Пашей Жовнером, создателем Flipper Zero - 2Анонс: прямой эфир с Пашей Жовнером, создателем Flipper Zero - 3Анонс: прямой эфир с Пашей Жовнером, создателем Flipper Zero - 4Анонс: прямой эфир с Пашей Жовнером, создателем Flipper Zero - 5

О чем пойдет речь?

Мы пробуем новый формат, нечто среднее между Ted Talks, стендапом и подкастом. В эту пятницу будем обсуждать с Пашей:

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

Читать полностью »

Как создавался бекенд хакерской игры про уничтожение сервера - 1


Продолжаем рассказывать, как был устроен наш лазерный квест с уничтожением сервера. Начало в предыдущей статье про разгадку квеста.

Всего у бекенда игры было 6 архитектурных единиц, которые мы и разберём в этой статье:

  1. Бекенд игровых сущностей, которые отвечали за игровые механизмы
  2. Шина обмена данных бекенда и площадки на VPS
  3. Транслятор из запросов бекенда (игровых элементов) на ардуино и железо на площадке
  4. Ардуино, которая занималась управлением релешками, получала команды с транслятора и делала фактическую работу
  5. Фактические устройства: вентилятор, гирлянды, торшеры и прочее
  6. Фронтенд — сам сайт Сокола, с которого игроки управляли устройствами

Давайте пройдёмся по каждой из них.
Читать полностью »

Эта статья посвящена разбору моего эксперимента по написанию небольшого инструмента командной строки с использованием двух языков, в программировании на которых у меня не особенно много опыта. Речь идёт о Go и Rust.

Разработка инструмента командной строки: сравнение Go и Rust - 1

Если вам не терпится увидеть код и самостоятельно сравнить один вариант моей программы с другим — то вот репозиторий Go-варианта проекта, а вот — репозиторий его варианта, написанного на Rust.
Читать полностью »

VPN в домашнюю локалку - 1

TL;DR: я устанавливаю Wireguard на VPS, подключаюсь к нему с домашнего роутера на OpenWRT, и получаю доступ к домашней подсети с телефона.

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

Вместо этого я настроил VPN с доступом в домашнюю локалку. Плюсы такого решения:

  • Прозрачность: чувствую себя как дома при любых обстоятельствах.
  • Простота: настроил и забыл, не надо думать о пробросе каждого порта.
  • Цена: у меня уже есть VPS, для таких задач современный VPN почти бесплатен по ресурсам.
  • Безопасность: ничего не торчит наружу, можно оставить MongoDB без пароля и никто не утащит данные.

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

Вам когда-нибудь было интересно узнать о том, как работает сокращённое CSS-свойство flex? Оно позволяет задавать значения свойств flex-grow, flex-shrink и flex-basis. Я обратил внимание на то, что данное свойство чаще всего используют в виде flex: 1, что позволяет flex-элементу растягиваться, занимая доступное пространство.

Исследование CSS-свойства flex - 1

В этом материале я хочу поговорить о сокращённом свойстве flex и о тех свойствах, значения которых устанавливают с его помощью. Я собираюсь рассказать о том, когда и почему можно пользоваться этими свойствами, приведу практические примеры.
Читать полностью »

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

Если бы я ранжировал инструменты фондового рынка и иные инвестиции по степени их консерватизма, то облигации занимали бы уверенное второе место после банковского депозита. Это популярный консервативный инструмент, который направлен на сохранение средств и получение небольшой доходности (+-значение инфляции, если нет кризиса). Однако если бы всё было так просто, то не стоило посвящать облигациям целую большую статью, всё ограничилось бы инструкцией: облигации РЖД и ОФЗ хорошие, а облигации компаний микрозаймов плохие, выбирайте хорошие, ждите доход. Предлагаю отвлечься от всех дел на 20-30 минут и погрузиться в тему облигаций, тем более что вопрос сохранения денег стоит перед многими нашими читателями. 

Новичкам фондового рынка: честный разговор об облигациях - 1

Читать полностью »

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

Ненужные расширения для VS Code - 1

Здесь речь пойдёт о шести сферах применения расширений, в которых эти расширения могут быть заменены стандартными механизмами VS Code.
Читать полностью »

Чек-лист разумной защиты своего ноутбука - 1
Важный компонент защиты от несанкционированного доступа

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

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

Я постараюсь пройтись по основным угрозам и методам защиты. Например, люди часто забывают, что вводить пароль под камерой — плохая идея. Буду крайне признателен вашим дополнениям.
Читать полностью »

Пользуетесь ли вы структурами данных и алгоритмами в повседневной работе? Я обратил внимание на то, что всё больше и больше людей считает алгоритмы чем-то таким, чем, без особой связи с реальностью, технические компании, лишь по собственной прихоти, интересуются на собеседованиях. Многие жалуются на то, что задачи на алгоритмы — это нечто из области теории, имеющей слабое отношение к настоящей работе. Такой взгляд на вещи, определённо, распространился после того, как Макс Хауэлл, автор Homebrew, опубликовал твит о том, что произошло с ним на собеседовании в Google:

Google: 90% наших инженеров пользуются программой, которую вы написали (Homebrew), но вы не можете инвертировать бинарное дерево на доске, поэтому — прощайте.

Хотя и у меня никогда не возникало нужды в инверсии бинарного дерева, я сталкивался с примерами реального использования структур данных и алгоритмов в повседневной работе, когда трудился в Skype/Microsoft, Skyscanner и Uber. Сюда входило написание кода и принятие решений, основанное на особенностях структур данных и алгоритмов. Но соответствующие знания я, по большей части, использовал для того чтобы понять то, как созданы некие системы, и то, почему они созданы именно так. Знание соответствующих концепций упрощает понимание архитектуры и реализации систем, в которых эти концепции используются.

Структуры данных и алгоритмы, которыми я пользовался, работая в технологических компаниях - 1

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js