All streams
Search
Write a publication
Pull to refresh
48
0
Сергей Бронников @estet

Пользователь

Send message

Кто такие радиолюбители-коротковолновики

Reading time13 min
Views70K

И почему вы (не) захотите стать одним из нас


Радиолюбители-связисты (HAM radio operators) – отдельная каста в мире энтузиастов электроники (electronics), о тайной жизни которых среднестатистическому паяльщику и ардуиностроителю известно мало. Далее по тексту словами «радиолюбитель», «радиоаматор» будут называться именно радиолюбители-связисты.

image

Под катом невыразимо нудная статья без единой картинки для тех, кто хочет узнать немного больше, но пока не знает, с чего начать задавать вопросы, а также для тех, кто вопреки логике и здравому смыслу все же хочет присоединиться к этому броуновскому движению.
А также — про ультракороткие волны
Читать дальше →

Greybox-фаззинг: level up. Как улучшали фаззеры

Reading time13 min
Views3.8K


Автор: Иннокентий Сенновский


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

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

Китайские феи, или немного о «PIXIE»

Reading time7 min
Views13K

В радиолюбительском разнообразии имеется направление работы в эфире малой мощностью - QRP, т.е. с мощностью передатчика менее 10 Ватт. Но есть увлеченные радиолюбители, работающие в эфире мощностями менее 1 Ватта и при этом проводящие связи с корреспондентами, удаленными на тысячи километров.

Среди этой категории радиолюбителей очень популярны схемы трансиверов на основе простого трансивера "PIXIE", о его китайских клонах и разновидностях и пойдет речь в моем мини-обзоре.

Читать далее

Автопилот на Raspberry Pi для тракториста за 300$

Reading time7 min
Views16K


Автопилот больше не прерогатива крупных агрохолдингов с многомиллионными бюджетами. Мы разрабатываем доступную по цене и простую в сборке систему, которую может собрать и установить любой фермер. Всё, что нужно — Raspberry Pi 4 или 5, электромотор, несколько датчиков и немного инженерной смекалки.
Мы делаем технологии доступнее и теперь каждый фермер может превратить свой трактор или комбайн в умного помощника без переплаты — компоненты для сборки автопилота TractorPilot будут стоить от 300$ (программное обеспечение бесплатное), вместо 5000-10000$ за готовую систему, которая при этом ещё и будет уступать TractorPilot по функциональным возможностям.
Читать дальше →

Самые Эпичные Баги при Программировании Микроконтроллеров

Level of difficultyEasy
Reading time15 min
Views24K

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

Самый типичный баг - это зависание прошивки.

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

Читать далее

Перепрограммируем заводской датчик CO2 Zigbee от компании Tuya

Level of difficultyEasy
Reading time3 min
Views17K

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

Читать далее

Предотвращаем утечки памяти в Go, ч. 1. Ошибки бизнес-логики

Reading time11 min
Views20K

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

Но, по сообщениям некоторых пользователей, у программ, написанных на Go, течёт память. Issue-трекер языка Go на github по запросам «high memory usage», «memory leak», «out of memory» выдаёт сотни и тысячи тикетов. А в самом популярном вопросе на stackoverflow по словосочетанию «golang memory» автор пытается разобраться, почему потребление оперативной памяти в рантайме в 4 раза превышает количество реально сделанных аллокаций. Обращения, в которых люди рапортуют о перерасходе оперативной памяти в Go, стали массовым явлением.

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

Читать далее

Немного про современные технологии Greybox-фаззинга

Reading time20 min
Views9.3K


Автор: Иннокентий Сенновский


Как найти баги, о которых вы и не догадывались, или что такое фаззинг


Все уже привыкли, что программу надо покрывать тестами, чтобы потом не было стыдно. Но вот проблема: разработчик может защититься только от багов, которые он способен предугадать. Да и тестировщик вряд ли сможет перебрать все варианты входных данных, которые приводят к ошибке.


Чтобы справиться с этой проблемой, придумали фаззеры — инструменты тестирования, которые сами пытаются найти баги в программе. В этой статье я рассмотрю, какие они вообще бывают (для C/C++, потому что баги в таких программах особенно болезненны), но сделаю упор на Greybox-фаззеры (почему, расскажу в статье).

Обожаю статьи, где много букв

FUSE: как написать свою файловую систему

Level of difficultyHard
Reading time21 min
Views20K

Меня зовут Максим, я ведущий разработчик в VK. Занимаюсь инфраструктурой доставки электронной почты в проекте Mail.ru. Наша команда разработала и довела до эксплуатации файловую систему (ФС) на FUSE в рамках проекта распределённой почтовой очереди. В проекте требовалось реализовать сетевую ФС, которая сохраняет данные в трёх копиях, в разных ЦОДах. Цель — повысить отказоустойчивость, чтобы даже полный выход из строя одного ЦОДа не приводил к нарушениям SLA. Эта статья для всех, кто интересуется файловыми системами и хранением данных. Мы обсудим:

- зачем писать свою ФС;

- как написать свою ФС с помощью фреймворка FUSE;

- какие подводные камни есть у эксплуатации FUSE в production.

Эта статья — результат трёх лет разработки ФС. Сейчас самое время заварить чай, рассказ будет долгим. 

Заварить чай и читать

Go Channels Internals

Reading time12 min
Views30K
На Go можно реализовать тысячи goroutine одновременно без больших требований к железу. При этом горутины могут легко и просто обмениваться данными между собой и синхронизироваться с помощью каналов. Но как устроены каналы внутри? Об этом написано не так уж много, а в условиях многопоточки и асинхронного кода хорошо бы не просто работать с каналами, а понимать, как их использовать более практично и эффективно.

Егор Гришечко, старший разработчик в Insolar, разрабатывает блокчейн для b2b сегмента (по сути, стартап), и у команды как раз большая многопоточка и много асинхронного кода. Егор не только разобрался на практике, как работают каналы, что это такое и как они вообще устроены внутри. Он еще рассказал о каналах внутри команды, а потом, увидев интерес, поделился на конференции Golang Conf 2019.

Сегодня мы публикуем расшифровку его доклада.


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

Улучшаем BARSiC: как мы проверяли и совершенствовали алгоритм консенсуса в кластере

Reading time6 min
Views2.2K

Привет, Хабр! В команде ВКонтакте существует система управления репликацией и консенсусом в кластере, которая называется BARSiC (Binary Asynchronous Replication with Simple Consensus). Прежде всего она контролирует состав кластера, определяя, кто реплика, а кто — мастер. А при выходе мастера из строя реплики выбирают нового с непротиворечивой линейной историей. 

Для решения этой задачи команда ВКонтакте совместно с университетом ИТМО работали над научно-исследовательским проектом «Разработка моделей для верификации распределенных алгоритмов в системе BARSiC». В этой статье подробно расскажем о том, как мы в рамках проекта верифицировали выбранный для BARSiC алгоритм, и попутно исправили найденную в нём ошибку. 

Читать далее

Часть 6: Портирование MemTest86+ на RISC-V

Reading time21 min
Views8.6K

Наверное, мало какому айтишнику нужно объяснять, что такое Memtest86+ — пожалуй, он уже стал более-менее стандартом в тестировании оперативной памяти на ПК. Когда в одной из предыдущих частей я наткнулся на битую планку памяти, пришедшую в комплекте с платой, он (вместе с поддерживающим DDR2 нетбуком) казался очевидным решением. Другой вопрос, что там в принципе нестабильная работа системы была видна невооружённым глазом. В более хитрых случаях, слышал, что кроме банального «простукивания» ячеек памяти до бесконечности, этот инструмент использует некоторые специальные паттерны данных, на которых ошибки в работе DDR выявляются с большей вероятностью. В общем чудесная вещь, жаль, что даже в названии указано: 86 — «Только для x86-совместимых систем». Или нет?


Под катом вы увидите мои попытки портировать MemTest86+ v5.1 на RISC-V и промежуточный итог. Спойлер: оно шевелится!

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

Как подружить DynamoRIO и LibFuzzer

Level of difficultyMedium
Reading time15 min
Views1.8K

Приветствую всех обитателей Хабра и случайных гостей!
Этой статьёй я хотел бы начать цикл заметок, посвящённых моей научной работе в вузе, связанной с фаззинг-тестированием. Всего на данный момент я работаю над темой 2 семестра.

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

Надеюсь, кому-нибудь это да пригодится ;-)

Читать далее

Подборка полезностей для программиста под Linux

Reading time44 min
Views17K

Думаю, у каждого программиста есть набор любимых утилит, трюков и знаний. Некоторые он даже использует в работе. Скорее всего, у разных программистов они различаются. Значит, пришло время поделиться. Сегодня я расскажу о своей подборке того, что, вероятно, известно не настолько широко, как оно того заслуживает. Речь пойдёт преимущественно про платформу GNU/Linux.

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

Как мы раскрыли внутреннюю архитектуру Flutter и затащили его на собственную платформу

Reading time13 min
Views8.7K
Если вы разрабатываете мобильные приложения, то почти наверняка сталкивались с Flutter — мегапопулярным открытым фреймворком от Google. Наша команда Mobile SDK and Applications Development, конечно, тоже захотела использовать Flutter при создании приложений для KasperskyOS — собственной микроядерной операционной системы «Лаборатории Касперского» — но был нюанс…



Особенности архитектуры KasperskyOS задают условия, при которых мы не можем пойти проторенными дорожками и свободно интегрировать фреймворк на своей платформе. Подсмотреть решения где-то вовне мы не можем тоже — таких кейсов в индустрии просто не было. А сам Google практически не раскрывает внутреннюю архитектуру Flutter. Так что интеграцию требовалось выстраивать с нуля.

И мы залезли под капот Flutter и нашли решения, которые, с одной стороны, были бы удобны разработчикам, а с другой — устраивали бы нас с точки зрения безопасности и производительности.

Если вы тоже разрабатываете приложения, где требуется разбираться во внутренней архитектуре Flutter, статья точно будет вам полезна — ныряйте под кат!
Читать дальше →

Ленточные накопители: фантастические твари мира архивирования

Reading time8 min
Views77K

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

Читать далее

Старые добрые ленточные хранилища делают камбэк. Откуда взрыв популярности?

Reading time6 min
Views17K

Накопители с магнитной лентой могут показаться какими-то динозаврами из эпохи дискет, чудом дожившими до наших дней. Информацию на такие записывали еще наши деды — вспомним советские аудиокассеты МК-44, которые нужно было проматывать, вставив карандаш. Собственно, кто-то еще помнит само слово «магнитофон», и откуда оно появилось?

Магнитные ленты постепенно отходили на второй план, вытесняемые SSD, HDD и так далее. Олдскульный формат хранения данных находился в упадке. Отгрузки накопителей снизились с 800 000 единиц в 2008 году до 400 000 единиц в 2010 году. И менее чем до 250 000 единиц к концу 2016 года.

И правда, кому он нужен, этот формат прошлого века, если у нас для всего сейчас есть флешки и облака?

Читать далее

Восстанавливаем данные с кассеты от старого стримера

Level of difficultyMedium
Reading time8 min
Views10K
Приветствую всех! Многие давно привыкли, что ленточные накопители — что-то высоконадёжное и предназначенное для долговременного использования. Но есть один стандарт, про который сказать так как-то не получается, и имя ему — QIC. Странная конструкция стримера и кассеты, не слишком уж долгий срок хранения — всё это про него.

Так получилось, что как-то раз ко мне попал стример такого типа и кассета к нему, на которой ещё оставались какие-то данные. Что же с ним можно сделать? Давайте разбираться.



Итак, в сегодняшней статье поговорим про стримеры стандарта QIC и miniQIC. Попутно разберёмся, как они работают и в чём их фатальный недостаток, попробуем восстановить данные с архива тридцатилетней давности и узнаем, почему нельзя пользоваться проприетарным софтом для резервного копирования.
Читать дальше →

Ленточные накопители в домашнем ПК

Level of difficultyEasy
Reading time11 min
Views31K
Приветствую всех!
Однажды перед каждым из нас встаёт вопрос: где хранить сотни гигабайт столь важной информации? Кто-то продлевает подписку в облаке, кто-то покупает ещё один винт, кто-то собирает NAS, а кто-то, как и я, присматривается к чуть более экзотическим решениям.
Вдохновившись постом двухгодичной давности про серверное железо в обычном ПК, я решил, что самое время рассказать про ещё один атрибут подобных систем — стримеры.



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

«Врубай на Максиму!» или учимся решать математические задания для 6 и 7 классов в WxMaxima

Reading time4 min
Views11K

Практически 10 лет и 50 статей назад, я набросал материал о моём знакомстве с замечательной системой компьютерной алгебры Maxima. Время шло, ничто не предвещало беды, но неожиданно я осознал, что дети имеют свойство взрослеть и скоро я не смогу решать школьные задачки в уме.

Пришло время сдуть пыль с "комплюхтера" установить себе Maxima и попутно еще раз напомнить сообществу о ней.

Сегодня мы не будем всё усложнять и бегло рассмотрим простейшие примеры для 6 и 7 классов по следующим темам:

наименьшее общее кратное

наибольший общий делитель

операции с дробями

упрощение выражений с одночленами и многочленами

линейные уравнение

системы линейных уравнений

построение графиков функции

Читать далее

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity