Как стать автором
Обновить
45
0
Vladimir @Keroro

embedder

Отправить сообщение

Фильтр Блума

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.8K



У каждого разработчика есть набор инструментов для решения различных задач. Однако со временем возникает необходимость расширять этот набор, чтобы эффективно справляться с более сложными задачами. В этой статье я хочу познакомить вас с инструментом, которым вы, скорее всего, раньше не пользовались. И хотя он подходит для решения узкого спектра задач, его использование может оказаться весьма полезным. Знакомьтесь — "фильтр Блума" (Bloom filter).

Читать дальше →
Всего голосов 38: ↑41 и ↓-3+44
Комментарии12

Метаболизм и долголетие. Личный опыт

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров9.6K

Этот текст - логическое продолжение описания моего инженерного подхода в вопросе долголетия. Если вы не читали предыдущую статью, то рекомендую ознакомиться. Текущая же статья потребует 10 минут вашего внимания, но может добавить 10 лет к вашей жизни (но может и не добавить 😁).

Упрощённо говоря, моя идея (о которой можно ознакомиться по ссылке выше) состоит в том, чтобы:

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

Читать далее
Всего голосов 48: ↑48 и ↓0+48
Комментарии70

Почему FAR — центр моей компьютерной вселенной

Время на прочтение4 мин
Количество просмотров48K

Какую программу вы обычно запускаете сразу после загрузки операционной системы? Кто-то сразу стартует браузер — поглядеть, кто там сегодня в Интернете (на Хабре) неправ. У многих — это редактор кода: «Я, как утром встал, сразу за дрель!». Возможно, вы сначала привычно открываете мессенджеры и почту — проверить, что там нового и важного.

Я обычно сразу после запуска операционки открываю свой Любимый Файловый Менеджер. Это «переходящее звание» — в разные периоды моего компьютерного прошлого этой чести «удостаивались» разные приложения с классическим двухпанельным интерфейсом. Сначала это был простой, но универсальный Norton Commander. Потом появился DOS Navigator со всяческими классными фичами: CD-плеер, телефонная книга с дозвоном по модему, встроенный табличный редактор и прочие прекрасные и поразительные для тех лет вещи.

Когда Windows прочно вытеснил DOS и все понемногу забыли про файл autoexec.bat, звание моего любимого файлового менеджера плавно перешло к Total Commander. Он продержался довольно долго, но в какой-то момент в мою жизнь буквально ворвался FAR...

Читать далее
Всего голосов 161: ↑165 и ↓-4+169
Комментарии553

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Уровень сложностиСредний
Время на прочтение54 мин
Количество просмотров76K

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

Публикую шпаргалку по SQL, которая долгое время помогала мне, да и сейчас я периодически в неё заглядываю.

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Всего голосов 125: ↑122 и ↓3+119
Комментарии7

Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров112K

> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через веб-архив.

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

Читать далее
Всего голосов 113: ↑111 и ↓2+109
Комментарии284

Эльфы и пингвины: что такое ELF и как он работает в Linux?

Уровень сложностиПростой
Время на прочтение37 мин
Количество просмотров21K

image


Всем привет! С вами как всегда я, Аргентум. Сегодня я расскажу и поведаю вам древние тайны, которые хранят горные старцы-сисадмины — тайны об эльфах, и как они взаимодействуют с древним народцем пингвинов. Дамы и господа, встречайте — статья о работе ELF и двоичных файлов в Linux!


Что такое ELF? Чем он отличается от PE в Windows? И многие другие ответы на ваши вопросы.


Перед тем как погрузиться в технические детали, будет нелишним объяснить, почему понимание формата ELF полезно. Это позволяет изучить внутреннюю работу операционной системы. Когда что-то пошло не так, эти знания помогут лучше понять, что именно случилось, и по какой причине. Также возможность изучения ELF-файлов может быть ценна для поиска дыр в безопасности и обнаружения подозрительных файлов. И наконец, для лучшего понимания процесса разработки. Даже если вы программируете на высокоуровневом языке типа Go или Rust, вы всё равно будет лучше знать, что происходит за сценой.


Итак, зачем изучать ELF?


  • Для общего понимания работы операционной системы
  • Для разработки ПО
  • Цифровая криминалистика и реагирование на инциденты (DFIR)
  • Исследование вредоносных программ (анализ бинарных файлов)
Читать дальше →
Всего голосов 58: ↑52 и ↓6+46
Комментарии22

Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров15K
image


Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии37

Как делается оптимизация трафика

Время на прочтение8 мин
Количество просмотров65K

«КПД» стандартного WAN – всего около 10%

Если заглянуть в практически любой канал связи между филиалом компании и дата-центром, то можно увидеть достаточно неоптимальную картину:
  • Во-первых, передается очень много (до 60–70% канала) избыточной информации, которая так или иначе уже запрашивалась.
  • Во-вторых, канал загружен «болтливыми» приложениями, рассчитанными на работу в локальной сети, — они обмениваются короткими сообщениями, что негативно сказывается на их производительности в канале связи.
  • В-третьих, сам протокол TCP изначально создавался для локальных сетей и отлично подходит для малых задержек RTT и при отсутствии потерь пакетов в сети. В реальных каналах при потерях пакетов скорость сильно деградирует и медленно восстанавливается за счет больших RTT.

Я работаю руководителем инженерной команды департамента телекоммуникаций КРОК и регулярно оптимизирую каналы связи дата-центров как наших, так и энергетических компаний, банков и других организаций. Ниже расскажу основы и приведу наиболее интересное, на мой взгляд, решение.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии39

Система водяных «тёплых полов» в квартире и частном доме. Что нужно знать, чтобы не пожалеть о содеянном?

Время на прочтение16 мин
Количество просмотров61K

«Тёплые полы» в квартирах- это модная тема в ремонте ещё с 1990-х.

Сейчас тема сильно развилась, так как резко увеличилось количество специалистов, желающих такие полы построить из современных материалов.

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

Кто тут прав?

Читать далее
Всего голосов 112: ↑108 и ↓4+104
Комментарии334

Проект «Селенит». Часть 5: Контроллер, встроенное ПО и квадратурный модулятор

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.2K

Аппаратура SDR (Software-defined Radio), как и следует из названия, представляет собой программно-аппаратный комплекс. В предыдущих частях цикла были рассмотрены преимущественно аппаратные решения радиотракта трансивера Selenite Lite. В большей части данной публикации будет рассмотрена та часть радиостанции, которая предназначена для управления «Radio» и его связи с «Software».

Речь пойдёт о контроллере, на котором реализовано составное устройство USB, включающее в себя звуковое устройство USB и виртуальный COM-порт. Данная конфигурация позволяет управлять трансивером извне по CAT-интерфейсу и производить обмен аудиопотоками с программой, которая производит обработку сигналов для работы в эфире.

Все части цикла статей о создании любительской радиостанции:

Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии10

DongShan Pi Pico-W: крошечный одноплатник с современным чипсетом за 600 рублей

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров23K
image

Китайские производители не перестают удивлять: многие видят явные перспективы рынка одноплатных компьютеров и стараются представить целую линейку девайсов на самых разных чипсетах, а разработчики стараются использовать уже привычное и поддерживаемое долгие годы железо. К ним относятся решения на чипсетах AllWinner, RockChip, Tegra. Другие же стараются взять малоизвестный, но дешевый чип для иного круга применений, развести на нем компактную плату и продавать по цене пачки сухарей, подобные решения появляются регулярно. Один из таких одноплатников я недавно купил на AliExpress — некий DongShan Pi Pico W, на базе экзотического чипсета SigmaStar SSD210, всего за 600 рублей. И тут действительно есть на что посмотреть: два ядра Cortex-A7, контроллер TTL матриц, 2D GPU, Wi-Fi, 64Мб ОЗУ и Embedded Linux на борту. Более того, девайс поставляется в виде System on Module с переходной Evaluation-платой, что позволяет использовать это устройство в составе других гаджетов! Что это за красавец и на что он способен? Читайте под катом!
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии64

Приёмник с чередованием во времени

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров12K

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

Во время курса по радиосигналам (по их приему и обработке) в моей голове представлялось это всё как конструктор, и я не видел в этом ничего сложного. По крайней мере, все модели, построенные в Mathcad и MATLAB, давали обнадеживающие результаты, но хотелось это всё проверить на практике и в качестве результата не увидеть первоначально промодулированную идеальную синусоиду, а услышать незнакомый аудиосигнал.

Читать далее
Всего голосов 64: ↑63 и ↓1+62
Комментарии28

Храним настройки правильно 2 или реестр параметров во флеш памяти программ

Время на прочтение7 мин
Количество просмотров2.9K

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

Я рассматривал задачу не только с точки зрения хранения данных, а еще и с точки зрения эффективного использования Епром для их изменения.

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии29

Моя реализация кольцевого буфера в NOR flash

Время на прочтение25 мин
Количество просмотров11K

Предыстория


Есть торговые автоматы собственной разработки. Внутри Raspberry Pi и немного обвязки на отдельной плате. Подключены монетоприёмник, купюроприёмник, банковский терминал… Управляет всем самописная программа. Вся история работы пишется в журнал на флешке (MicroSD), который потом передаётся через интернет (с помощью USB-модема) на сервер, там складывается в БД. Информация о продажах загружается в 1с, также есть простенький веб-интерфейс для мониторинга и т.п.


То есть журнал жизненно необходим — для учёта (там выручка, продажи и т.д.), мониторинга (всевозможные сбои и другие форс-мажорные обстоятельства); это, можно сказать, вся информация, которая у нас об этом автомате.


Проблема


Флешки показывают себя как очень ненадёжные устройства. Они с завидной регулярностью выходят из строя. Это приводит как к простоям автоматов, так и (если по каким-то причинам журнал не мог быть передан онлайн) к потерям данных.


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

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии83

Диспетчер Задач для Микроконтроллера

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров10K

В программировании микроконтроллеров часто нужно написать простые тестировочные прошивки. При этом надо некоторые функции вызывать чаще, а некоторые реже. Для этого, конечно, можно запустить FreeRTOS, однако тогда этот код не будет переносим на другие RTOS например Zephyr RTOS или TI-RTOS. Поэтому надо держать наготове какой-нибудь простенький NoRTOS планировщик.

В этот тексте я представил основные идеи алгоритма такого кооперативного планировщика.

Читать далее
Всего голосов 26: ↑24 и ↓2+22
Комментарии26

Xiaomi Mi Thermometer 2 не только Bluetooth, но и ZigBee

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров73K

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

Многим пользователям умного дома известен квадратный датчик температуры и влажности от Xiaomi LYWSD03MMC. Его очевидные плюсы — это LCD экран, подключение к системе умного дома MiHome и конечно же цена. Его без преувеличения можно назвать если не самым, то точно одним из самых дешевых "умных" датчиков, которые имеют интерфесы для подключения к умному дому. В данном случае это популярный bluetooth, который позволяет подключиться к датчику со смартфона и увидеть показания. Поэтому он завоевал своё место в сердцах строителей умных домов как дешевое и надёжное решение.

Читать далее
Всего голосов 91: ↑91 и ↓0+91
Комментарии152

FAQ по Shadowsocks/XRay/XTLS/Reality/Nekobox/etc. для обхода блокировок

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров106K

Эта статья - сборник разных вопросов и ответов на них, которые звучали в комментариях к моим предыдущим статьям (Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-всеBleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто и других из той же серии) и в личных сообщениях.

Читать далее
Всего голосов 62: ↑62 и ↓0+62
Комментарии173

Отладка Makefile /часть 2/

Время на прочтение6 мин
Количество просмотров15K

Методы отладки


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

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии5

Дамп разделов TV-бокса на чипе RK3528

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров15K

Заметил в продаже новенький TV-бокс H96 MAX M1 на чипсете Rockchip RK3528, с 4Гб памяти, новым 13-м Андроидом, и подозрительно дешевый. Зная, что на старых чипах Rockchip уже запускали Линукс, я решил заказать и попробовать.

Можете заметить разъёмы питания/USB/HDMI/AV... Как думаете, в чём подвох? Наверное на другом боку еще пара USB и слот для карты памяти, но нет - других разъёмов для вас нет. Сразу напишу - разработчикам такое покупать не стоит, это создаёт много проблем, но раз уж купил - то работаю с чем есть.

Для запуска Линукс первым делом надо получить оригинальный Device Tree, вытащив .dtb из boot или recovery раздела. Этим я и занялся. Rockchip устройств у меня еще не было и по отзывам у меня складывалось ощущение производителя, что не ставит палки в колёса разработчикам, но оказалось - это уже в прошлом.

Инструкции написаны для пользователей Линукс.

Читать далее
Всего голосов 60: ↑60 и ↓0+60
Комментарии31

Запуск сложных C++ приложений на микроконтроллерах

Время на прочтение8 мин
Количество просмотров12K
image Сегодня никого не удивить возможностью разрабатывать на C++ под микроконтроллеры. Проект mbed полностью ориентирован на этот язык. Ряд других RTOS предоставляют возможности разработки на С++. Это удобно, ведь программисту доступны средства объектно-ориентированного программирования. Вместе с тем, многие RTOS накладывают различные ограничения на использование C++. В данной статье мы рассмотрим внутреннюю организацию C++ и выясним причины этих ограничений.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии14
1
23 ...

Информация

В рейтинге
5 091-й
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

embedded engineer
Lead