Pull to refresh
4
0
Send message

Использование выводов DTR, RTS и CTS от UART для своих делишек

Level of difficultyEasy
Reading time14 min
Views5.2K

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

Читать далее
Total votes 22: ↑22 and ↓0+33
Comments29

NFC-видеотека для моих детей

Level of difficultyMedium
Reading time9 min
Views5K

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

У меня двое пацанов, старшему разрешается посмотреть полчаса телевизор с утра и ещё полчаса вечером. Обычно он точно знает, что хочет посмотреть, но ему приходится ждать, пока кто-то из родителей возьмёт пульт и откроет нужное приложение.

Это заставило меня задуматься: почему бы не объединить новое и старое? Я хотел, чтобы у сына была более активная роль в выборе того, что он хочет посмотреть, несмотря на цифровой формат.

Несколько лет назад я увидел, как кто-то распечатал любимые музыкальные альбомы с NFC-меткой внутри, и решил сделать что-то подобное для своих детей.
Читать дальше →
Total votes 37: ↑37 and ↓0+51
Comments17

Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 2

Level of difficultyMedium
Reading time15 min
Views1.7K

Представляю вашему вниманию вторую часть перевода статьи A guide to inter-process communication in Linux.

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

Приятного чтения!

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments1

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

Level of difficultyMedium
Reading time9 min
Views12K

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

Читать далее
Total votes 34: ↑34 and ↓0+42
Comments11

Как сделать безопасную загрузку с полностью зашифрованным диском на Linux без загрузчика на UEFI

Level of difficultyHard
Reading time14 min
Views12K

Наша новая статья — для довольно искушённых пользователей Linux. В ней DevOps-инженер Алексей Гаврилов разобрал, как установить Debian или аналогичный дистрибутив на полностью зашифрованный диск без загрузчика на UEFI с включённым Secure Boot. 

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

Читать далее
Total votes 45: ↑45 and ↓0+57
Comments21

Рукопись моей первой книги о Java

Reading time6 min
Views3.6K

Статья о том, как я просто писал статьи на ИТ-тематику в личный блог, как вдруг получил контракт от издательства. Много работал и страдал. Прошёл через кучу этапов и написал рукопись своей первой книги о Java и её изменениях от версии к версии. Как чуть не переделал все перед самым концом, но довёл до конца и отдал текст редактору на следующий этап. Как отдохнул и переосмыслил увиденное и решил поделиться полученным знанием со всеми остальными.

Читать далее
Total votes 10: ↑9 and ↓1+9
Comments15

«Я просыпалась в 3 ночи и пыталась работать»: Как доводить дела до конца, не убивая себя

Level of difficultyEasy
Reading time4 min
Views2.5K

Однажды я выгорела. В пепел. В пыль. В труху. Степень выгорания Well Done. Сначала винила себя. Было стыдно за то, что не могу работать. Потом я пыталась найти решение проблемы. Пересмотрела, наверное, 100 видосов. Но все предлагали какую-то нерабочую фигню. В итоге помог мне один простой алгоритм.

Сейчас разберу его по полочкам :)

Если вам лень читать, можете посмотреть мой видосик на эту тему

Читать далее
Total votes 14: ↑6 and ↓8+1
Comments6

Джон Кармак: Недельный отпуск, проведенный за программированием

Reading time5 min
Views33K
Вашему вниманию предлагается перевод поста Джона Кармака, опубликованный им в Facebook на прошлой неделе и обретший некоторую популярность.

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

В качестве смены обстановки после моей текущей работы на Oculus, я хотел написать с нуля на C++ несколько реализаций нейронных сетей, и планировал сделать это, используя строго систему OpenBSD. Кто-то из моих знакомых заметил, что это достаточно случайный набор технологий, но в итоге всё сработало хорошо.

Несмотря на то, что мне не приходилось использовать OpenBSD в своей работе, мне всегда нравилась её идея – это относительно минималистичная и самостоятельная система с целостными видением, а также акцентом на качество и мастерство. Linux способен на многое, но целостность – это не про Linux.

Я не являюсь ярым фанатом Unix. Я неплохо справляюсь с этой операционной системой, но комфортнее всего мне работается в Visual Studio под Windows. Я подумал, что неделя погружения в работу в стиле старой школы Unix по полной будет мне интересна — пусть даже если это и будет означать, что я буду работать медленнее. Это было своего рода приключение в духе ретрокомпьютинга — моими лучшими друзьями на время стали fvwm и vi. Заметьте — не vim, а самый настоящий настоящий vi из BSD.
Читать дальше →
Total votes 74: ↑73 and ↓1+72
Comments37

Как настроить автодополнение для команды ssh с хостами из .ssh/config

Level of difficultyMedium
Reading time5 min
Views6K

Я администрирую много серверов и параметры подключения к ним занесены в ~/.ssh/config файл. В этой статье я расскажу, как настроить автодополнение для команды ssh, чтобы Bash подсказывал хосты, указанные в файле ~/.ssh/config.

Читать далее
Total votes 26: ↑24 and ↓2+28
Comments16

Руководство Google по стилю в C++: 2019 — 2024

Level of difficultyEasy
Reading time6 min
Views12K

Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Однако, любой стайлгайд со временем корректируется и дорабатывается: иногда этому способствуют обновление стандартов языка, иногда меняются тенденции.
В статье приведены изменения Руководства Google по стилю в C++ за 5 лет: с 2019 по 2024.
Краткое содержание изменений:
+ C++20
- NULL
+ концепты 
- #pragma
+ constinit
- std:hash
+ consteval
- u8
+ аргументы-ссылки
- ENUM_VALUE_NAME
+ повесточка и "they" в единственном числе
- здравый смысл

Читать дальше →
Total votes 17: ↑15 and ↓2+19
Comments36

Корутины? Простейшая имплементация на C, protothread и Arduino

Level of difficultyEasy
Reading time4 min
Views7.1K

*иногда хочется уйти от управляемых будней

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

Читать далее
Total votes 14: ↑13 and ↓1+17
Comments17

Как в разы увеличить дальность приема WiFi / BT при помощи паяльника

Level of difficultyEasy
Reading time3 min
Views46K

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

Читать далее
Total votes 100: ↑99 and ↓1+118
Comments122

Разгоняем C++ с кастомными аллокаторами

Level of difficultyEasy
Reading time6 min
Views6.6K

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

Сегодня мы обратим свой взор на производительность в C++, и как ни странно, нашими главными героями станут не библиотеки или сложные алгоритмы, а казалось бы, простые аллокаторы. Но не просто аллокаторы, а кастомные, которые могут заметно ускорить работу приложений.

Читать далее
Total votes 21: ↑13 and ↓8+10
Comments5

P2P общего назначения

Level of difficultyMedium
Reading time10 min
Views2.2K

IT-индустрия совершила интересный виток развития в последние десятилетия. На заре IT-революции, когда компьютеры были дорогими, их ресурсы, хоть и скромные по нынешним временам, нужно было использовать эффективно. Это привело к появлению многопользовательских OS, например, семейства UNIX, созданию компьютерных сетей и появлению протоколов удаленного доступа. 

Стремительное развитие производительности чипов и удешевление железа привело к революции персональных компьютеров. Однако опережающий рост вычислительных потребностей запустил развитие на новый круг. Сейчас найдется немного компаний и организаций, которые обходятся исключительно персональными компьютерами и сервисами в локальной сети. Когда-то диковинные IaaS, PaaS, SaaS, распределенные вычислительные технологии плотно вошли в жизнь. Доступ к удаленным системам — обыденная потребность не только для администраторов и программистов. Все знают о протоколах ssh, rdp, vnc, многие пользуются TeamViewer, AnyDesk, Remmina, X2Go и т. п. Ввиду того, что IPv4 сети и порожденный ими NAT пока еще более чем актуальны, не каждое из перечисленных средств позволяет подключиться к машине, находящейся за NAT, если у вас нет возможности пробросить порты.

Читать далее
Total votes 13: ↑12 and ↓1+14
Comments1

Создаём личный шрифт

Level of difficultyEasy
Reading time9 min
Views3.8K

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

Вместо использования готовых шрифтов я создала свой собственный, используя p5.js и JavaScript.

Читать далее
Total votes 29: ↑27 and ↓2+31
Comments7

Об особенностях электротехнических (и не только) сообществ: параллельные IT‑миры задают каверзные вопросы про JTAG

Level of difficultyEasy
Reading time6 min
Views3.8K

Несколько мыслей (и одно смелое предложение) о малозаметных парадоксах экспертности в инженерно-технических сообществах.

Оказаться в параллельном измерении
Total votes 13: ↑11 and ↓2+20
Comments21

Интересные приёмы, взятые из исходников Android

Level of difficultyEasy
Reading time8 min
Views11K
Интересные приёмы, взятые из исходников Android

В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а. Сразу отмечу: эта статья не претендует на полноту материала и возможно вы нашли даже больше интересных моментов при чтении кода, ладно, погнали, короче!
Читать дальше
Total votes 31: ↑28 and ↓3+43
Comments3

Дружим iPhone и ESP32. Часть 1. ESP Arduino Core

Level of difficultyEasy
Reading time8 min
Views2.7K

В данной части статьи я простым языком поведаю вам о том, как написать собственный BLE сервис на микроконтроллере ESP32 для дальнейшего управления непосредственно с iPhone, а так же раскрою пару фишек, благодаря которым вы сохраните себе своё время и нервы.

Читать далее
Total votes 7: ↑7 and ↓0+10
Comments0

Еще один способ передачи данных по радиоканалу

Level of difficultyMedium
Reading time12 min
Views17K

Эта статья написана по мотивам вот этой. Чтобы повторить успех к имеющейся Baofeng uv-5r была приобретена Quansheng uv-k5, а потом и ещё одна uv-k5, потому что uv-5r очень долго активировал функцию VOX. Кейс очень интересный, но практически использовать его тяжеловато из-за низкой скорости передачи. Ниже описана попытка избавиться от этого недостатка.

Читать далее
Total votes 20: ↑20 and ↓0+28
Comments31

Как я дал вторую жизнь некроноуту Fujitsu Siemens amilo pro v2035 с помощью lubuntu

Reading time4 min
Views9.7K

Ещё со студенческой скамьи у меня остался ноутбук Fujitsu, который тогда верой и правдой мне служил для постижения азов Паскаля и Си, а также для серфинга интернетов и героев 3.

Конечно же, более-менее современные ОС не рассчитаны на машину с одноядерным процессором Celeron и 1Gb оперативной памяти, поэтому я обратился к легким
дистрибутивам линукса.

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

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments35
1
23 ...

Information

Rating
Does not participate
Registered
Activity