Обновить
1
@FineRadread⁠-⁠only

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

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

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

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели34K

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

Читать

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

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

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

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

Читать далее

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

Время на прочтение7 мин
Охват и читатели24K

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

Читать далее

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели24K

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

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

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

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

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

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

Читать далее

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

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели32K

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

Читать далее

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

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели17K

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

Всё про age в Linux

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели15K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели28K

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

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

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

Читать далее

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели3.2K

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

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

Читать далее

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

Время на прочтение3 мин
Охват и читатели19K

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


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



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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели31K

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

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

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

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

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

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