Pull to refresh
4
0
Кирилл Устюжанин @key08rus

Программист

Send message

Оснащение домашней мастерской. TIG-сварка. Мелкий ремонт, ввод в строй

Level of difficultyEasy
Reading time7 min
Views23K

Ещё вчера единственная доступная домашнему мастеру возможность сварки металлов — тяжёлый, в лучшем случае переносной, трансформаторный источник для штучных плавящихся электродов (ММА). Полуавтоматическая же сварка проволокой (MIG) и вольфрамовым электродом в аргоне (TIG) — были уделом машиностроительных предприятий в лучшем случае крупных мастерских, организаций. Сегодняшнее развитие силовой электроники сделало такие приборы легче, компактнее, намного дешевле и доступнее рядовым гражданам-самоделкиным, и это невиданные для нас ранее возможности в работе.
Читать дальше →
Total votes 72: ↑72 and ↓0+94
Comments91

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Level of difficultyEasy
Reading time11 min
Views20K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →
Total votes 92: ↑91 and ↓1+119
Comments131

Создаем свою простую (C++) библиотеку с документацией, CMake и блекджеком

Level of difficultyMedium
Reading time33 min
Views15K

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

Если вы ловили себя на мысли: ‭«А почему мне бы не создать свою полноценную библиотеку?‭», то я рекомендую прочитать вам мою статью.

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

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

Читать далее
Total votes 49: ↑48 and ↓1+59
Comments68

Физика датчиков электрогитары на примере конструктора из Поднебесной

Level of difficultyEasy
Reading time10 min
Views10K


Привет, Хабр! Сегодня мы увидим и услышим достоинства и недостатки недорогого набора для самостоятельной сборки электрогитары от фирмы IRIN. Этот конструктор можно заказать в любую страну СНГ через Aliexpress или Temu без каких-либо ограничений и заморочек. Зато имеются серьёзные проблемы с качеством компонентов и трудностями в их подгонке, но всё это можно преодолеть.

Гитару я буду собирать не простую, а кастомную. Установка третьего звукоснимателя и особая схема коммутации превратит её в Nashville Telecaster — инструмент «два в одном», сочетающий звучания и телекастера, и стратокастера.

Чтобы понять, как это работает, нам придётся открыть для себя тайны магнитной полярности, фазировки и расположения датчиков относительно струн и между собой.
Читать дальше →
Total votes 41: ↑40 and ↓1+58
Comments14

Ассемблер для программистов на языках высокого уровня: Hello World

Level of difficultyMedium
Reading time6 min
Views24K

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим.

Рассмотрим следующий код:

section .data
  msg db "Hello, World!"

section .text
  global _start

_start:
  mov rax, 1
  mov rdi, 1
  mov rsi, msg
  mov rdx, 13
  syscall

  mov rax, 60
  mov rdi, 0
  syscall

К счастью, по второй строке мы можем понять, что он делает.

Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!

С чего же вообще начать?

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

Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
Читать дальше →
Total votes 61: ↑57 and ↓4+69
Comments41

Unix на работе. Часть вторая, программная

Level of difficultyEasy
Reading time12 min
Views14K

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

Из первых рук и на основе многолетней практики.

Читать далее
Total votes 34: ↑30 and ↓4+38
Comments96

Настройка GoodByeDPI для разных регионов и провайдеров

Level of difficultyEasy
Reading time2 min
Views347K

Всем привет, это моя первая статья на хабре. Многие пользователи GoodbyeDPI столкнулись с проблемой доступа к YouTube. Существующие гайды не всегда решают проблему, поэтому я подготовил универсальную настройку, подходящую для большинства регионов и провайдеров. Приступим.

Читать далее
Total votes 96: ↑84 and ↓12+83
Comments202

Команда SED в Linux/Unix с примерами

Reading time7 min
Views197K

Компиляция из двух смежных статей на тему использования команды sed для редактирования текстовых файлов, включая различные варианты поиска и замены шаблонов, а также всевозможные операции со строками. Идею к публикации этого гайда подал участник nronnie в комментарии к предыдущей статье, посвящённой работе с Bash.
Читать дальше →
Total votes 42: ↑41 and ↓1+61
Comments9

Как я пришёл к пониманию основ создания Live-дистрибутивов Linux, решив починить свой старый SSD

Level of difficultyMedium
Reading time28 min
Views22K


Был у меня старенький SSD объёмом 240 Гбайт от Kingston, который внезапно перестал работать, вообще перестал распознаваться в системе. Попробовал я подключить SSD к другому компьютеру, попробовал использовать как внешний диск, ничего не дало результата. Поэтому я купил новый, а этот разобрал.


Внешних признаков, указывающих на то, что SSD сгорел, я не заметил, а интуиция говорила: «Проблема программная». Выбрасывать диск не хотелось, поэтому он остался пылиться до «лучших» времён. И вот недавно захотелось попробовать его починить. К своему удивлению, я достаточно быстро нашёл необходимую статью на Хабре, где рассказывалось, как можно оживить SSD на том же контроллере, что и мой, отдельную тему на форуме Ru-Board, а также статью с подробной инструкцией, по ней я и восстановил свой SSD. Но кроме восстановленного SSD я еще приобрёл и закрепил знания по Linux, которые изложил в этой статье. Всем, кому интересно, добро пожаловать под кат.

Читать дальше →
Total votes 46: ↑46 and ↓0+63
Comments10

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

Level of difficultyMedium
Reading time27 min
Views27K


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

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

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

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

Firmware в Linux. Коротко и своими словами

Level of difficultyEasy
Reading time6 min
Views10K

Рано или поздно системный программист сталкивается с понятием firmware. В данной статье мы коротко рассматриваем, что это, зачем, и как с этим работать.

Disclaimer:
Материал не является сборником best practices и не претендует на фундаментальный труд. Это шпаргалка. Если угодно - application note в свободной форме. Основная задача материала - "сделать короткую статью, которая помогла бы лично мне быстро разобраться, если бы я впервые столкнулся с темой". Если вы знаете что-то лучше - дополнения и замечания по существу приветствуются. Мотивацией для написания послужила недавно встреченная статья, которая как раз объясняла эти аспекты не очень хорошо.

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

Создаём игру, словно на дворе 1987 год

Level of difficultyEasy
Reading time35 min
Views4.7K

Сколько раз вы удивлялись раздутому объёму обновления для игры? Да и сами игры порой весят значительно больше, чем нужно. И вот очередное тому подтверждение.

Недавно я наткнулся на удивившее меня сообщение. Оказывается, официальное приложение «Сапёр» от Microsoft содержит рекламу, платные опции и весит 235 МБ, требуя не меньше 500 МБ оперативы. Да, вы не ослышались. У нынешнего «Сапёра» есть рекламное окошко сбоку, а ещё можно дополнительно посмотреть рекламу для получения бонусов в игре.

Читать далее
Total votes 12: ↑12 and ↓0+17
Comments9

Нейросети и CV — основы теории и практика — система машинного зрения на одноплатнике Repka Pi

Level of difficultyMedium
Reading time28 min
Views6.1K

— Никто не обнимет необъятного!

Козьма Прутков, 1854

Одно из интересных и полезных применений нейросетей — обнаружение объектов на изображении, таких как машины, люди или человеческие лица.

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

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

Так же рассмотрим основные понятия нейронных сетей. Разберём, как добавить функции обнаружения лиц и людей в видеопотоке от обычной веб-камеры, подключенной через USB к Repka Pi. При этом будут использованы каскады Хаара, нейросеть Yolo-FastestV2, фреймворки OpenCV и NCNN, а также репозиторий ml-repka от компании Rainbowsoft.

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

Так в статье есть целый ряд тщательно подобранных ссылок на материалы для более углубленного изучения предметной области. Надеемся, что эта статья сможет стать хорошим началом погружения в Мир ИИ и нейронных сетей вообще, и компьютерного зрения (CV) в частности, для всех, кто только собирался это сделать и ждал подходящего случая. Эта статья - как раз такой случай.

Читать далее
Total votes 21: ↑21 and ↓0+27
Comments2

К вопросу о диодах (идеальных)

Level of difficultyEasy
Reading time7 min
Views10K

Очередная зарисовка, как всегда, выросшая из практической задачи.
Имеется устройство -аккумуляторная батарея, состоящая из трех секций аккумуляторных ячеек (АЯ) (литий-ионных, хотя это неважно) и необходимо обеспечить их совместную работу на общую нагрузку. Для решения данной задачи поставлены три ключа на полевых транзисторах, индивидуально управляемых с микроконтроллера. Естественно, что каждый ключ образован двумя последовательно включенными транзисторами, управляемыми минусом на затворе (я постоянно путаю буквы n и p, так что пользуюсь такой терминологией), так что стоят они в плюсах батарей - пока ничего нового, таких схем двенадцать на дюжину, см рис.1.

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

И что было дальше ?
Total votes 39: ↑39 and ↓0+56
Comments30

Ручная установка и настройка Arch Linux — шпаргалка шаг за шагом

Level of difficultyMedium
Reading time9 min
Views34K

ARCH


Подготовка к установке


Скачиваем образ дистрибутива Arch Linux


Утилиты для записи образа на флеш-накопитель:


  • Linux — balenaEtcher
  • Windows — Rufus
  • Кроссплатформенный Ventoy (рекомендовано)

Руководство на Habr как записать образ на флеш-накопитель с помощью Ventoy
Видео на YouTube по использованию Ventoy

Читать дальше →
Total votes 20: ↑17 and ↓3+18
Comments64

Протокол HTTP

Level of difficultyMedium
Reading time14 min
Views32K

Текстовая версия видео по протоколу HTTP из обновленного курса по компьютерным сетям для начинающих.

Рассматриваем основы работы HTTP, применяем HTTP на практике в терминале, используем Wireshark для анализа пакетов HTTP. 

Читать далее
Total votes 47: ↑44 and ↓3+57
Comments31

Почему для меня так важен алгоритм CORDIC

Level of difficultyMedium
Reading time8 min
Views18K

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

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Читать дальше →
Total votes 87: ↑87 and ↓0+113
Comments27

Микросети: настройка коммутации

Level of difficultyMedium
Reading time7 min
Views15K

Привет, читатель!

У меня в квартире есть множество вещей, которым требуется постоянный доступ к локальной сети и интернету. Планируя ремонт, я учел подключение приставок, телевизоров и ПК по кабелю для стабильности. Однако такой вариант ограничивается возможностями маршрутизатора, который в лучшем случае имеет до десяти портов. Мне же их нужно не менее 11, а для некоторых устройств необходимо POE. Кроме того, для надежного соединения ноутбуков, телефонов и портативных приставок стандартом стали Wi-Fi зоны 5 ГГц.

Чтобы это все реализовать, я подключил и настроил коммутатор и точку доступа, которые когда-то покупал для экспериментов. В статье привожу описание настроек. Это решение легко масштабировать на небольшую компанию. Нужно лишь добавить несколько коммутаторов уровня агрегации и доступа, а также точки доступа для покрытия всей территории.
Читать дальше →
Total votes 41: ↑41 and ↓0+53
Comments19

Как я победил ЧПУ (CNC) станок (2 часть)

Level of difficultyEasy
Reading time5 min
Views9.5K

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

Сегодня про драйвера и про настройку прошивки.

Что было дальше?
Total votes 6: ↑5 and ↓1+5
Comments12
1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity