Pull to refresh
1
@FineRadread⁠-⁠only

User

Send message

Шпаргалка по поиску узких мест в Linux: топ утилит на все случаи жизни

Level of difficultyEasy
Reading time12 min
Reach and readers34K

Многие уже видели старенькую схему Брендана Грегга, где каждой подсистеме сопоставлены CLI-утилиты. Она правда полезная, но когда «горит», мы бежим в интернет, а не выискиваем систему и команду. В статье я собрал тулзы с картинки, а также добавил опенсорсных утилит, которые пригодятся для мониторинга. 

Читать

Какой Может быть CLI в Микроконтроллере (или Курс Молодого Бойца)

Level of difficultyEasy
Reading time8 min
Reach and readers13K

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

Прежде всего CLI — это первичный лог загрузки прошивки. Инициализация микроконтроллера — это многостадийный процесс, в котором многое может пойти не по плану. Поэтому первое, что вы должны увидеть в консоли — это зеленый лог загрузки программы.

Читать далее

10 полезных Python-библиотек для автоматизации повседневных задач

Reading time7 min
Reach and readers24K

Каждый раз, когда мы пишем «быстрый скрипт на коленке», мы тратим время на одни и те же вещи: настройку логов, парсинг конфигов и создание прогресс-баров. В этой статье разберем 10 легковесных утилит (от tqdm до beartype), которые закроют рутинные задачи и позволят вам сфокусироваться на логике, а не на «обвязке».

Читать далее

Создаем GUI на Python: от простого скрипта к Markdown-редактору с Flet

Level of difficultyMedium
Reading time9 min
Reach and readers18K

В этой статье мы познакомимся с Flet — революционным фреймворком, который позволяет делать именно это. Flet дает вам возможность создавать интерактивные GUI на чистом Python, а для отрисовки использует мощный движок Flutter. Результат — быстрые, красивые и нативные приложения для Windows, macOS, Linux и даже для веба, без необходимости писать ни строчки на Dart или JavaScript.

Читать далее

Почему библиотеки на С такие кривые

Level of difficultyEasy
Reading time4 min
Reach and readers24K

Библиотеки на С слишком сложны. И в этой статье я хочу подробно описать что конкретно под этим имеется в виду и почему оно происходит

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

Библиотеки не просто сложны, они выглядят намеренно переусложнёнными, как будто разработчики намеренно делали всё, чтобы то во что они вкладывали годами свой труд невозможно было использовать.

Для незнакомых с ситуацией вкратце - любая библиотека на С это в конечном счёте всего лишь набор .c файлов и набор .h файлов, а также опции компиляции которые записываются в современности в CMakeLists.txt. Для адекватных библиотек CMakeLists.txt обычно состоит из набора опций в самом верху (и только они нужны пользователю) и дальше описания таргетов (библиотеки, исполняемые файлы), зачастую это укладывается в сотню строк

Но по какой-то причине в реальности всё совсем не так и тут нужно смотреть на примеры

Типичным примером можно считать репозиторий OpenSSL. Взгляните на (ЧАСТЬ) того что видит перед собой человек, который хочет использовать OpenSSL:

Читать далее

Алгоритмическая угадайка от Google: 1 000 000$ как я решил задачу и улучшил свой алгоритм трижды

Level of difficultyHard
Reading time9 min
Reach and readers32K

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

Читать далее

Операционная система от А до Я: Таймер и HAL

Level of difficultyHard
Reading time11 min
Reach and readers17K

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

Читать далее

Кандидат сбежал в слезах. Про накрутку опыта

Level of difficultyEasy
Reading time13 min
Reach and readers168K

У него в резюме Python, Playwright, Pytest, Jenkins, Docker, Kafka, GitHub, GitLab, и он вёл QA-гильдию в Третьем Царстве. А потом пришёл на собес — и не смог объяснить, чем отличается UI-тест от интеграционного. Мы дали задачу. Он попытался её решить. Мы все плакали. Он — тоже.

Читать далее

Брелок с LED матрицей 8x8 на CH32V003

Level of difficultyMedium
Reading time9 min
Reach and readers45K

Решил наконец погрузиться в электронику как хобби. Изначальной целью была самодельная игровая консоль, но из-за сложностей я начал с более простого проекта — светодиодного брелка на микроконтроллере CH32V003F4P6. Почему именно он? Это дешевая (около 20 рублей за штуку) и доступная микросхема с 20 выводами — достаточно, чтобы управлять матрицей 8x8 без драйверов вроде MAX7219.

Читать далее

Всё про age в Linux

Level of difficultyEasy
Reading time4 min
Reach and readers15K

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

Сегодня мы рассмотрим age — современный инструмент файлового шифрования, который за последние пару лет стал твёрдым фаворитом всех, кому надо быстро и надёжно прятать данные.

Читать далее

Прошивка К1921ВГ015 без IDE и покупки JTAG программатора

Level of difficultyMedium
Reading time4 min
Reach and readers15K

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

Читать далее

Ethernet с дальностью до километра. 10BASE-T1L

Level of difficultyMedium
Reading time3 min
Reach and readers54K

Приветствую, Хабр!

Так много уже было сказано о стандарте 10BASE-T1L, но я не нашел ни одного решения (я именно про схемотехнику, которую можно применить в своем устройстве). И вот, как по заказу, потребовалась реализация передачи данных на длинные расстояния. Как альтернатива рассматривались, конечно, DSL и RS-485, но так как гнать нужно звук, я решил попробовать 10BASE-T1L.

Читать далее

Реализация частотного анализа линий передачи в САПР SimPCB Lite

Level of difficultyMedium
Reading time4 min
Reach and readers5.9K

В.А. Ухин,В.С. Кухарук, компания «ЭРЕМЕКС»

В статье рассматриваются математические и физические основы расчета параметров линий передачи в зависимости от частоты, реализованного в САПР SimPCB Lite от компании «ЭРЕМЕКС», приводится сравнение результатов вычислений с программой Ansys.

При проектировании высокоскоростной или высокочастотной электронной аппаратуры разработчик сталкивается с необходимостью вычисления волнового сопротивления линий передачи, как одиночных, так и дифференциальных. Импеданс должен соответствовать значению, указанному в описании к микросхеме либо в стандарте передачи данных. Это чаще всего 40-50 Ом или 80-100 Ом. 

Определяя импеданс линии или ее геометрические, электрофизические параметры под заданное значение волнового сопротивления, инженер, как правило, использует расчет без учета потерь. В этом случае модель линии передачи представляется так, как показано на рисунке 1 [1].

Читать далее

Embedded Linux для начинающих — Часть 2

Level of difficultyEasy
Reading time12 min
Reach and readers28K

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

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

Пришло время перейти от теории к практике!

Читать далее

Embedded Linux для начинающих — Часть 1

Level of difficultyEasy
Reading time10 min
Reach and readers49K

Однажды по работе мне прилетела задача по сборке и запуску Linux на одноплатном ПК. Тогда я, будучи разработчиком ПО для микроконтроллеров, встал в небольшой ступор — задачка явно не решалась установкой IDE и нажатием в ней кнопки «Собрать проект». Гугл помог узнать о том, что существует некий Buildroot. В материалах по теме всё выглядело довольно просто: скачай, настрой, дерни пару команд, загрузи результат на одноплатник — и можно запускать! Получается, процесс не многим сложнее установки дистрибутива Linux или Windows на обычный ПК? Конечно же, нет. Ведь если у тебя в руках кастомный одноплатник неизвестного китайского бренда, а не BeagleBone или Raspberry Pi, то зарыться в Buildroot придётся с головой...

Читать далее

Rust: как не утечь в Rc<RefCell

Level of difficultyEasy
Reading time3 min
Reach and readers3.2K

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

Сегодня рассмотрим проблемную тему в Rust: управление владением в структурах с циклическими ссылками, таких как графы и деревья. Особое внимание уделим комбинации Rc<RefCell<T>> и тому, как избежать зацикливания с помощью Weak.

Читать далее

Xilinx дорого-богато? Или ищем бюджетные варианты

Reading time3 min
Reach and readers19K

Свое изучение ПЛИС я начал с FPGA Altera Cyclone IV, с которой в комплекте шел копеечный USB ByteBlaster. В сторону Xilinx посматривал с опаской, если борода была не сильно дороже, то программатор начинался уже от 2 т.р. за копию на Алике, что от 10 раз дороже Альтеровского Бластера. Я прошел свой путь от относительно дорогих (не фирменные) до дешевых моделей и хочу с Вами поделиться изысканиями. Возможно, если бы я обладал этой информацией, то начал изучать Xilinx пораньше.


Про плату управления майнером EBAZ4205 не писал только ленивый, ее я и заказал первой на опыты с SOC XC7Z010. Поморгав диодами, заказал со второго раза специфичные разъемы для самодельной платы расширения (пришли только несколько дней назад), начал искать на просторах Али вариант поинтересней и главное, подешевле («а восемь шапок сможешь ?»). И вот, довольно быстро, ко мне пришла китайская слива, то бишь, встречаем Lichee Tang Hex.



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

5 листингов для лучшего понимания Python

Level of difficultyEasy
Reading time13 min
Reach and readers33K

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

Читать далее

Закат VMware: как технологический гигант утратил лидерство

Level of difficultyEasy
Reading time7 min
Reach and readers60K

В последние годы трон под VMware, королем виртуализации, зашатался. Компания, доминировавшая на рынке в середине нулевых, начала сдавать позиции и допустила ряд стратегических ошибок. А спорное поглощение компанией Broadcom только усилило неопределенность относительно ее будущего.

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

Читать далее

Как писать чистый код — советы для разработчиков с примерами

Level of difficultyEasy
Reading time16 min
Reach and readers31K

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

Теперь представьте, что вы пишете беспорядочный код – это не менее запутанно, если не хуже!

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

Давайте взглянем на этот график. Он показывает два разных подхода к написанию кода и их влияние на время, необходимое для добавления новых строк:

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

Information

Rating
Does not participate
Registered
Activity

Specialization

Инженер встраиваемых систем, Системный инженер
SystemVerilog
FPGA
RISC-V
Altium designer
STM32