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

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

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

Некоторые малоизвестные фичи, фокусы и причуды языка C

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

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

Конечно же, здесь я не берусь перечислять абсолютно всё, так как факты из разряда «функция nan() не может устанавливать errno, поскольку в определённых ситуациях поведёт себя как strtod()» не слишком интересны.

ВНИМАНИЕ: сам факт попадания тех или иных вещей в эту подборку  не означает автоматически, что я рекомендую или, наоборот, не рекомендую ими пользоваться! Некоторые из приведённых примеров никогда не должны просачиваться за пределы списков наподобие этого, тогда как другие примеры невероятно полезны! Уверен, что могу положиться на ваш здравый смысл, дорогие читатели.

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

Детекторный приёмник. Немного практики

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

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

Читать далее
Всего голосов 27: ↑26 и ↓1+42
Комментарии80

Как доказать теорию относительности Эйнштейна за 10 000 рублей

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

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

По всей Вселенной, от звёзд, чёрных дыр, галактик и т. д. испускаются космические лучи — частицы, несущиеся через Вселенную с высокими энергиями. Они попадают в атмосферу Земли и вызывают ливни как стабильных, так и нестабильных частиц. Те из них, которые живут достаточно долго, прежде чем распасться, в конечном итоге попадают на поверхность Земли. Каждую секунду через ваше тело проходит от 10 до 100 мюонов — нестабильных, тяжёлых кузенов электрона. При среднем времени жизни в 2,2 микросекунды можно подумать, что они не могли бы пройти всю толщину атмосферы, ~100 с лишним километров, от космоса до вашей руки. Тем не менее, теория относительности утверждает, что это происходит, и тот факт, что эти мюоны проходят через ваше тело, более чем достаточен для доказательства её правоты.

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

Интегральные резисторы или О чем молчат в спорах про проектные нормы

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

Споры про проектные нормы, их необходимость или ненужность, их реалистичность и сравнение между собой нанометров разных фабрик всегда были частью микроэлектронного коммьюнити. В России эти споры еще острее, потому что в ход идут доводы про импортозамещение, технологическую независимость и много других очень важных и умных слов. В этих разговорах, правда, постоянно упускается, что размеры транзисторов действительно критичны только для современных цифровых микропроцессоров, а вот для других классов микросхем, “где тонкие нормы не нужны”, техпроцесс должен обладать рядом других полезных свойств, помимо факта своего наличия, чтобы быть нужным и успешным. В разработку и обновление “устаревших” техпроцессов фабриками вкладываются существенные деньги, и более навороченный "толстый" техпроцесс – серьезный довод для разработчика уговаривать начальство сменить фабрику для нового проекта.

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

Правильно, ничего! Но есть нюансы.
Всего голосов 90: ↑90 и ↓0+117
Комментарии18

Пишем макет 16-битного ядра на C/C++

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


В первой и второй статьях я лишь коротко представил процесс написания загрузчика на ассемблере и C. Для меня это было хоть и непросто, но в то же время интересно, так что я остался доволен. Однако создания загрузчика мне показалось мало, и я увлекся идеей его расширения дополнительной функциональностью. Но так как в итоге размер готовой программы превысил 512 байт, то при попытке запуска системы с несущего ее загрузочного диска я столкнулся с проблемой “This is not a bootable disk”.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+36
Комментарии5

Создаем свой загрузочный диск Linux

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

В статье описывается способ, как создать собственный загрузочный диск Linux (оптический диск или флешку), добавить в него только нужные программы и убрать все лишнее. Полученный образ в экспериментах занял менее 25 Мб. Он позволяет быстро загружаться, работать в текстовом режиме, создавать, редактировать, удалять файлы на разных файловых системах, имеет поддержку русского языка. За основу взят Debian.

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

Раскрываем секреты загрузочных ISO-образов

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


В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Читать дальше →
Всего голосов 193: ↑193 и ↓0+193
Комментарии73

Как самому за один вечер собрать минимальную ОС Linux из исходного кода

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

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

Ещё больше не даёт покоя мне тот факт, что все ядра операционной системы Linux, которые работают на различных устройствах и серверах, собраны из исходного кода, находящегося в репозитории на сайте kernel.org.

Такие разные устройства, а операционная система, работающая на них, собрана из одного и того же исходного кода! Это утверждение, конечно, верно лишь отчасти, так как фактически ядро обычно расширено и модифицировано разработчиками конкретных дистрибутивов Linux, а также разработчиками конкретных устройств, но общего исходного кода достаточно много.

Мне всегда хотелось собрать операционную систему Linux самому из исходного кода, но процесс этот всегда казался сложным и запутанным, да и многого я не понимал. Но всё-таки в определённый момент времени я накопил достаточное количество знаний, чтобы осуществить свою мечту. В этой статье я хочу рассказать вам, как собрать минимальную Linux из исходного кода и запустить её у себя на компьютере.
Читать дальше →
Всего голосов 83: ↑82 и ↓1+108
Комментарии83

Программируем полётный контроллер на основе DIY проекта Flix

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

У нас в МАИ, в 8-м институте, учатся будущие разработчики IT‑продуктов и софта для авиационных систем, аэропортов, логистики и много чего ещё интересного. Один из курсов с 2023 года мы решили посвятить разработке программного обеспечения для автопилота. В курсе всё как положено, с красивыми диаграммами регуляторов, кватернионами и кодами таких проектов как Ardupilot, PX4, Betaflight, iNav и другими.

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

Полетели !
Всего голосов 40: ↑39 и ↓1+50
Комментарии22

Аппаратный ключ шифрования за 3$ — возможно ли это?

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

Итоговый результат — ключ размером с флешку

Повсеместное шифрование и, как следствие, обилие ключей заставляет задуматься об их надежном хранении. Хранение ключей на внешних устройствах, откуда они не могут быть скопированы, уже давно считается хорошей практикой. Я расскажу о том, как за 3$ и 2 часа сделать такой девайс.
Читать дальше →
Всего голосов 151: ↑151 и ↓0+151
Комментарии151

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

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

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

Читать далее
Всего голосов 108: ↑107 и ↓1+128
Комментарии134

Квантовые эксперименты на дому. Строим квантовый компьютер из лазера и полимеров

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

У меня хорошая новость для тех, кому надоело читать мои нудные лонгриды по квантовой теории и философии физики. В этой статье будет одна практика – квантовые эксперименты в домашних условиях, с минимальным бюджетом и без специального оборудования. Я решил снять и наглядно продемонстрировать, как построить квантовый компьютер своими руками и выполнить на нём квантовое вычисление - алгоритм Дойча. Всё, что я буду делать, вы сможете при желании воспроизвести у себя дома и убедиться, что это работает. Если у вас есть знакомые, которые сомневаются в квантовой механике и отрицают факт квантового превосходства, поделитесь с ними ссылкой на эту статью или видео, пусть посмотрят.

Читать далее
Всего голосов 97: ↑93 и ↓4+116
Комментарии67

Эмиттерный повторитель — ключ к пониманию работы транзисторных каскадов

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


Привет, эту публикацию я хочу посвятить людям, кто, как и я, любил в детстве читать журнал «Радио» и книги по электронике, но не смог сам разобраться в принципах работы усилителей на биполярных транзисторах. Тема полупроводников непроста и требует понимания многих чуждых для нашей повседневной интуиции физических процессов. Я помню момент озарения, когда я понял принцип схемотехнического решения эмиттерного повторителя, и именно с него пошло постепенное понимание, как функционируют и другие типы транзисторных каскадов. И я предполагаю, что эта тема может стать точкой входа в аналоговую электронику не только для меня.
Читать и смотреть схемы
Всего голосов 149: ↑147 и ↓2+187
Комментарии117

Драйвер Ethernet для xv6

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

Xv6 - учебная ОС - рассказывает об идеях, что лежат в основе операционных систем.

Научим xv6 работать в сети, познакомимся со стандартом виртуальных устройств VirtIO, деревом устройств DeviceTree, технологией Ethernet, сетевыми протоколами, возведем сетевой мост между виртуальными машинами.

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

Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям

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

Всем привет! В последнее время я вплотную занимаюсь исследованием возможностей systemd и решил поделиться результатом исследований с сообществом, в виде небольшого (или большого, как пойдёт ;-) цикла статей. Итак первым номером нашей программы будет запуск юнитов по различным событиям происходящим во время работы ОС. В качестве исследовательской платформы будет выступать Manjaro Linux c systemd v247.2. И... да. Некоторые события, вынудили меня написать внеочередную статью, которая «взлетела на вершину хит-парада», а опрос показал, что тема актуальна и вызывает интерес, так что погнали!

Нырнуть в кроличью нору!
Всего голосов 62: ↑60 и ↓2+68
Комментарии23

systemD с 0 до 1: библия сисадмина

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


Что бы кто не говорил, systemD становится стандартом систем инициализацией в линуксе. И с 80% вероятностью все сервера будут с systemD. Не факт, конечно, есть и личные сервера, на которых может стоять хоть Gentoo, хоть Devuan, хоть NixOS.

Некоторые дистрибутивы хотят даже перейти с загрузчика Grub на systemd-boot! Потому знать, как работать с данной системой инициализации, должен каждый сисадмин и просто программист, ибо сейчас он практически везде.

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

А также напишем небольшой скрипт на Python для автомизации некоторых задач. Приятного чтения, господа линуксоиды и просто пользователи!
Читать дальше →
Всего голосов 51: ↑46 и ↓5+53
Комментарии11

Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако

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

Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки

Системы вроде Amazon Echo передают в облако для хранения ваши конфиденциальные разговоры (даже записанные случайно). В некоторых случаях записи прослушиваются живыми операторами. Это не просто потеря конфиденциальности. Это как добровольно впустить в свою квартиру «товарища майора», который стоит рядом 24 часа в сутки, слушает и внимательно записывает, притворяясь услужливым ассистентом.

Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.

Rhasspy — безопасный голосовой помощник, который работает автономно. Он ничего не передаёт на удалённые сервисы, при этом успешно справлятся с распознаванием речи и голосовых команд.
Читать дальше →
Всего голосов 38: ↑34 и ↓4+40
Комментарии51

Моя б̶е̶з̶умная колонка: часть вторая // программная

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

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

В прошлой статье я описал аппаратную реализацию своего голосового ассистента на базе бюджетного одноплатника Orange Pi Zero 2W с 4Гб оперативной памяти. Эту же статью хочу посвятить программной реализации данного устройства. Если стало интересно, то добро пожаловать под кат.
Читать дальше →
Всего голосов 40: ↑40 и ↓0+53
Комментарии30

Я сделаю свою «умную» колонку… «with blackjack and hookers!»

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

Я сделаю свою «умную» колонку… «with blackjack and hookers!»

Привет всем. В данной статье я расскажу историю как мы с двоюродным братом сделали свою «умную» колонку-голову робота Бендера из Футурамы.

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

Под капотом загрузчика

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

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

Мы, сервисные инженеры, сталкиваемся с GRUB2 ежедневно. А вот когда стало любопытно посмотреть на загрузчик комплексно, то в интернете и в учебнике Linux нашли лишь несколько команд: как заново проинсталлировать загрузчик и обновить текущую конфигурацию. «А почему так мало?», — была наша первая мысль.  Решили восполнить пробел — так появилась эта статья. А для иллюстрации попросили нейросетку изобразить, «как выглядят эпичные проблемы с GRUB» -- вот что вышло.

Читать далее
Всего голосов 26: ↑26 и ↓0+39
Комментарии21
1
23 ...

Информация

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