Как стать автором
Обновить
1
0.1

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

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

Linux Pipes – медленные

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

Я пишу программу для сверхбыстрого кодирования/декодирования азбуки Морзе и использую pipe для передачи данных. При этом pipe работает очень медленно. Давайте разберемся почему.

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

Как подключить мультиметр к компьютеру

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

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

В бюджетных мультиметрах ZT102 и ZT301, которые построены на чипе DTM0660, можно реализовать подключение к компьютеру, но для этого придётся редактировать EEPROM и вносить изменения на печатную плату. Это несложно и Kerry Wong описывал как это сделать на примере мультиметра ennoLogic eM860T.

В тоже время у моего настольного мультиметра Agilent U3402A на задней панели уже есть порт RS232, но на нём указано "используется только для калибровки". Аналогичное предупреждение есть и в инструкции пользователя на русском и английских языках.

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

Как сделать анализатор кода за два дня

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

Статический анализ — это очень мощный инструмент, позволяющий следить за качеством кода. Предлагаем вместе попробовать написать простой Lua анализатор на Java, чтобы понять, как устроены статические анализаторы кода внутри.

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

Светящиеся конденсаторы и дисплеи на их основе (в том числе DIY) на любой поверхности? Почему нет…

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

Что, если я скажу вам, что существуют светящиеся конденсаторы, которые могут быть использованы в качестве элементов дисплеев?

Несмотря на странное, на первый взгляд, утверждение, всё более, чем реально, и, мало того, известно около века…
Читать дальше →
Всего голосов 54: ↑52 и ↓2+70
Комментарии24

Тысяча и одна библиотека С++

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

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Всего голосов 82: ↑81 и ↓1+92
Комментарии23

Разработка сложных процессорных систем на примере модуля SMARC

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

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

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

Статья получилась большая, но, как говорится, из песни слова не выкинешь. Если вам все еще не страшно — добро пожаловать под кат!
Читать дальше →
Всего голосов 72: ↑72 и ↓0+91
Комментарии40

USB монитор из Futaba GP1160A02A

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

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

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

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

Про один из таких дисплеев, изготовленный по этой технологии и будет рассказано в этой статье, а именно про дисплейный модуль Futaba GP1160A02A.

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

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

Поиск по префиксу или тайные операторы PostgreSQL

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

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

Интересно, что там?
Всего голосов 15: ↑15 и ↓0+20
Комментарии8

Постройка простой проволочной КВ антенны с согласующим устройством

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

Живя вне города с его чудовищной помеховой обстановкой и периодически проводя время с паяльником в руках, грешно не прикоснуться и к миру радио, естественным образом начинающегося с антенны и заземления. Антенно-мачтовое хозяйство — пожалуй, самое крупное, материалоёмкое и дорогостоящее сооружение для КВ радиоустановки — на низкочастотных радиолюбительских диапазонах: это десятки метров вверх и в длину. Существуют, однако, и более скромные укороченные варианты с худшими, но всё ещё приемлемыми параметрами. Ими и займёмся.
Читать дальше →
Всего голосов 75: ↑73 и ↓2+94
Комментарии101

Дайте мне 15 минут, и я изменю ваш взгляд на GDB

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

Материал подготовлен на основе выступления с CppCon 2015 "Greg Law: Give me 15 minutes & I'll change your view of GDB" (доступно по ссылке ). Многие моменты я изменял и корректировал, поэтому учтите, что перевод достаточно вольный.

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

В статье будет рассматриваться отладка кода на C в ОС Linux.

Читать далее
Всего голосов 47: ↑45 и ↓2+63
Комментарии16

Запускаем Stable Diffusion на GPU AMD Radeon в Docker

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

Для запуска нам понадобится Ubuntu с установленными: git, make, docker и ROCm.

Инструкция по запуску короткая и простая, поэтому дополнительно разберём пример генерации изображения для этой статьи и продеманстрируем работу Stable Diffusion на AMD Radeon. Всё нижеизложенное протестировано на AMD Radeon RX 7900 XTX.

Читать далее
Всего голосов 10: ↑9 и ↓1+11
Комментарии17

Управление напряжением PWM сигналом (PWM+RC=DAC)

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

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

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

В этом тексте я написал как мне это удалось.

Читать далее
Всего голосов 15: ↑13 и ↓2+18
Комментарии181

Пайплайны в GitLab для микросервисов

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

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

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →
Всего голосов 57: ↑57 и ↓0+74
Комментарии4

Сложнейшая проблема компьютерных наук: центрирование

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

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

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

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →
Всего голосов 194: ↑189 и ↓5+227
Комментарии56

Краткое сравнение популярных функций измерения времени

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

Какую реальную точность можно ожидать от функции возвращающей время, а сколько времени она выполняется сама? Попытка замерить и сравнить несколько десятков функций, доступных программисту на C++.

Вот что получилось
Всего голосов 27: ↑27 и ↓0+31
Комментарии13

Какие возможности клавиатур подглядеть у Tinder, YouTube и Revolut

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

Дизайнеры интерфейсов часто оставляют клавиатуры «за кадром». Между тем, удобная клавиатура — это как раз то, что пользователь хочет видеть в приложении. Я изучила документацию для iOS и Android, пообщалась с разработчиками и заглянула в десятки приложений, которыми вы точно пользуетесь.

В статье покажу:

что влияет на внешний вид клавиатур,

виды нативных клавиатур и их поведение,

как отличается применение клавиатур для одних и тех же команд.

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

Читать далее
Всего голосов 31: ↑30 и ↓1+34
Комментарии10

Создаём свою стример-тян из зефира и палок

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

Наверняка вы слышали о нашумевшей в своё время ИИ стримерше NeuroSama. Однако мое внимание привлекало не само шоу и эти нашумевшие самые «крутейшие» моменты стримов, а сам факт того, что нейросеть реально может полностью автономно и полноценно вести стрим, удерживая внимание зрителей! Меня очень заинтересовала такая задумка, и я решился её повторить!

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

Может, немного опоздал с трендом, но не пропадать же добру просто так! Кому-нибудь да пригодится (хотя бы для того, чтобы посмеяться или кринжануть с человека, который год занимался никому не нужной фигнёй).

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

Будет весело, сложно и очень интересно как опытному «бойцу», так и простому обывателю!

Читать далее →
Всего голосов 50: ↑49 и ↓1+61
Комментарии17

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

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

При сборке квадрокоптеров и других БПЛА обычно используют готовую плату полетного контроллера, содержащую все необходимые датчики и периферию, и готовую полетную прошивку, например, Betaflight, ArduPilot или PX4. Полетный контроллер управляет моторами квадрокоптера и обеспечивает стабильный полет.

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

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

Немного про устройство современного радио на примере HackRF One

Время на прочтение11 мин
Количество просмотров80K
Приветствую, Habr!
Некоторое время назад в поле моего зрения очень часто попадало множество статей, видеороликов о теме SDR трансиверов. Тема представляет интерес и сегодня. Большой популярностью среди радиолюбителей и других, разного рода, «технарей» пользуются устройства HackRF One (и по сей день, несмотря на то, что данный трансивер появился на рынке довольно давно, и в настоящее время уже существует масса других вариантов SDR похожего плана, в том числе и более производительных). Практически во всех статьях этой тематики рассматриваются программные инструменты (как правило — работа с GNU Radio, описываются алгоритмы ЦОС и т. п.), приводятся практические примеры по захвату сигналов радиостанций, демонстрируется GPS-спуфинг, приём сигналов с метеоспутников и т. п. Hack-RF One используется как некая универсальная «коробочка», позволяющая делать множество интересных вещей. Достаточно иметь небольшой опыт в программировании и общее понимание о том, что такое цифровой сигнал – в принципе порог вхождения для самых простых экспериментов с SDR преодолен. На самом деле это, конечно, здорово.
Но среди множества статей пока не встречал ни одной, где бы внимательно рассматривалось «железо» этого приемопередатчика, где более или менее подробно анализировалась его схема (если Вы встречали, дайте, пожалуйста, ссылочку в комментариях).
Более того, настораживает некая пренебрежительность к этому вопросу со стороны «пользователей» этого и других подобных модулей-трансиверов. Во многих популярных статьях проскальзывает, что приемник/передатчик SDR – это:

Читать дальше →
Всего голосов 24: ↑23 и ↓1+32
Комментарии13

Нормализация Unicode

Время на прочтение2 мин
Количество просмотров21K
Однажды мне пришлось наблюдать, как спамеры очень интересным образом обходят спам-фильтр. Вместо традиционного URL типа «example.com», ссылка выглядела так:
http://example.com
Ссылка с подобной изощрённой точкой работает в IE7, FF3, Opera 9.5, Safari 3, Google Chrome и не работает в IE6.
Читать дальше →
Всего голосов 126: ↑125 и ↓1+124
Комментарии27
1
23 ...

Информация

В рейтинге
2 628-й
Зарегистрирован
Активность