Pull to refresh
100
113.8
Глухов Михаил @Rigidus

Solution Architect | Senior Developer

Send message

Задача коммивояжера (TSP) точное решение — метод динамического программирования

Reading time9 min
Views30K

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

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

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

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

Паяльники и паяльные станции для новичков и не только: 5 устройств и систем, которые помогут в работе

Reading time5 min
Views44K

Многие читатели Хабра работают с электроникой не только как пользователи или администраторы, но и в качестве разработчиков и/или ремонтников. У кого-то это основная работа, кто-то занимается ремонтом ноутбуков/смартфонов в качестве хобби, ну а кто-то разрабатывает и собирает полноценные системы.

И, конечно, для всего этого нужны инструменты — чаще всего много разных приспособлений. Есть must have инструменты, без которых просто не обойтись. Ну а есть и вещи, которые желательны, но не обязательны. Что касается must have — то здесь, конечно, нужно упомянуть паяльники и паяльные станции, плюс паяльные фены (термовоздушные паяльные станции). О них сегодня и поговорим. Кстати, список из статьи — субъективный, понятно, что у каждого свои предпочтения. Здесь собраны те паяльники и станции, которые нравятся нашей команде. Если у вас собственные инструменты, которых нет в списке — расскажите о них в комментариях, пожалуйста, с указанием их достоинств и недостатков.
Читать дальше →
Total votes 70: ↑54 and ↓16+58
Comments243

Как «раскирпичить» STM32

Reading time3 min
Views51K

Здравствуйте! Меня зовут Дмитрий Руднев. В этой публикации я поделюсь своим горьким опытом.

В современной разработке широко используются микроконтроллеры STM32. Они обладают неплохим соотношением цена/производительность, вокруг них сложилась развитая «экосистема». Для прошивки этих микроконтроллеров и внутрисхемной отладки обычно используют интерфейс Serial Wire (SWD).

В процессе отладки бывает всякое. Не беда, если STM32 после прошивки ведёт себя неадекватно. Обидно, если при этом к нему не удаётся подключиться.

На этом месте не надо впадать в отчаяние, т.к. «убить насмерть» STM32 в процессе программирования непросто, и его работоспособность можно восстановить штатными средствами.
Как это сделать, читайте дальше
Total votes 38: ↑30 and ↓8+45
Comments37

Про интроскопы

Reading time8 min
Views17K


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

Интроскоп — это штука, которая снимает в рентген-излучении. Чаще всего вы видите такой на входе в аэропорт или на вокзал.

Представляет из себя камеру для съёмки, защитную оболочку, какие-нибудь салазки или что-то типа конвейера (не всегда, но чаще всего) и встроенный компьютер для обработки всего этого. С точки зрения ОС — это веб-камера, поверх которой делается обработка в софте. Поставляется всё это в подавляющем большинстве случаев как готовый ПАК, то есть системник или моноблок уже внутри где-то под кожухом. На борту там чаще всего «банкоматная» Win, которая не обновляется примерно никогда, равно как и софт.

Монтаж выглядит так: обычной доставкой приезжает огромная коробка, выгружается в заданную точку, немного дособирается (кабели — салазки — лента — экран), включается и работает.

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

  1. Определяем, какой стандарт применяется.
  2. Выбираем интроскоп под этот стандарт. Подбираем согласно требованиям заказчика наиболее подходящий интроскоп по соотношению цена – качество: учитываем наличие и стоимость технической поддержки, её доступность в регионе.
  3. Готово!

Примерно так происходит почти на любом объекте, который я видел.
Читать дальше →
Total votes 39: ↑36 and ↓3+37
Comments42

На что способен PC Speaker

Reading time12 min
Views74K
Известный теперь как «системный динамик», а то и просто «пищалка», PC Speaker появился на свет в 1981 году вместе с первым персональным компьютером IBM. Наследник нескольких поколений больших компьютеров для серьёзных дел, он с рождения был предназначен лишь для подачи простейших системных сигналов, и не мог достойно проявить себя в озвучивании главенствующих на домашнем рынке развлекательных программ. Сильно уступая звуковым чипам специализированных игровых систем, пропадая в тени вскоре появившихся продвинутых звуковых карт, он поддерживался многими разработчиками по остаточному принципу — как опция, выдающая хоть какой-нибудь звук при отсутствии лучших альтернатив. За нечастыми исключениями, через спикер проигрывались грубо упрощённые, полностью одноголосые версии мелодий, изначально сочинённых для гораздо более мощных устройств.

Музыкальный альбом «System Beeps» написан для PC Speaker с использованием той же базовой техники из старых игр, и, согласно типичной формуле ретро-компьютерного около-демосценового творчества, призван раскрыть на многие годы оставшийся неисследованным потенциал этого простейшего звукового устройства. Собственно, послушать результат и составить своё мнение об успешности данного мероприятия можно на Bandcamp или в видео ниже, а дальнейший текст углубляется в устройство спикера, историю проекта и способы достижения подобного результата для тех, кто хочет знать больше.

Читать дальше →
Total votes 87: ↑87 and ↓0+87
Comments67

Почему Нам Нужен UART-Shell? (или Добавьте в Прошивку Гласность)

Level of difficultyEasy
Reading time13 min
Views13K

Есть такая классическая и одновременно забытая технология отладки FirmWare как интерфейс командной строки поверх UART. В этом тексте я напишу про достоинства и недостатки отладки через UART Shell.

Читать далее
Total votes 13: ↑11 and ↓2+15
Comments57

Проектируем процессор постапокалипсиса с помощью openSource

Reading time12 min
Views21K

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

В прошлый раз в статье «Пневмоника и влажные мечты стимпанка» я уже рассказывал о струйных логических элементах и поделился мыслями о том, что в принципе на этой технологии можно собрать полноценное вычислительное устройство.
Читать дальше →
Total votes 156: ↑156 and ↓0+156
Comments70

Как серебрить провода? (часть 2)

Reading time5 min
Views11K

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

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

58 байтов CSS, которые выглядят красиво почти где угодно

Reading time2 min
Views31K

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

main {
  max-width: 38rem;
  padding: 2rem;
  margin: auto;
}

Давайте их разберём.
Читать дальше →
Total votes 44: ↑35 and ↓9+37
Comments11

Перевод вводной статьи от разработчиков D-Bus

Reading time13 min
Views12K

Это вводная статья о технологии межпроцессного взаимодействия D-Bus, написанная его разработчиками. Дан краткий обзор ключевых моментов технологии. Рекомендуется читать перед изучением спецификации (русский перевод).

Читать далее
Total votes 6: ↑5 and ↓1+9
Comments2

Что можно сделать с большим дисплеем?

Reading time14 min
Views35K

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

Что там?
Total votes 100: ↑100 and ↓0+100
Comments27

Организация памяти в текстовом редакторе

Reading time6 min
Views35K
Каждый, кто пытался запрограммировать хотя бы простейший редактор текста на низком уровне, сталкивался с задачей организации памяти для хранения редактируемого текста. Структура данных для хранения текста должна удовлетворять следующим требованиям:
  1. иметь малые накладные расходы по памяти. Большая часть доступной памяти должна использоваться для хранения текста, а не служебной информации;
  2. допускать эффективную вставку и удаление в произвольном месте текста.

Удовлетворить эти требования одновременно непросто. Если рассмотреть широкоизвестные структуры данных, такие как массивы, списки, деревья, стеки, очереди, кольцевые буфера — то такой структуры, которая бы позволила эффективно выполнить оба требования, не встречается. В случае массива имеем незначительные накладные расходы по памяти, но операция вставки имеет сложность O(n), где n — размер редактируемого текста. В случае списка сложность вставки и удаления составляет O(1), однако накладные расходы по памяти в несколько раз превышают размер собственно текста. Деревья, кучи, кольцевые буфера, ассоциативные массивы и прочие структуры и вовсе неприменимы для хранения текста в редакторе.

Встречаются гибридные решения, когда текст хранится в наборе массивов, которые, в свою очередь, объединены в список. Казалось бы, такой подход позволяет объединить преимущества массивов и списков (быстрая вставка/удаление при низких накладных расходах по памяти). Однако такое решение сложно в реализации. Также оно приводит к фрагментации памяти.

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

Несмотря на то, что эта структура данных была открыта давно и использовалась в текстовых редакторах на старых ЭВМ в 8-битную эпоху, это тайное знание предков было в значительной мере утеряно и в современных редакторах встречается редко. Попробуйте открыть файл, состоящий из одной строки мегабайт на 10, в Notepad или Far. Вставка и удаление символов будет длиться секундами.
Читать дальше →
Total votes 126: ↑119 and ↓7+112
Comments57

Как проверяют физических лиц в СБ компаний методом OSINT

Reading time6 min
Views23K

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

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

Давайте разберемся каким образом СБ компании выполняет проверку, на наличие указанных рисков со стороны будущих сотрудников.

DISCLAIMER: Данная статья написана в ознакомительных целях и не является руководством к неправомерным действиям или обучающим материалом для сокрытия правонарушений.

Читать далее
Total votes 19: ↑12 and ↓7+7
Comments14

Атакуем синезубого короля

Reading time10 min
Views17K

Английское слово Bluetooth -- буквальный перевод прозвища короля викингов Харальда I Синезубого. Он правил на территории современных Дании и части Норвегии в X веке и вошел в историю как правитель, который объединил враждовавшие датские племена в единое королевство.

Подразумевается, что Bluetooth делает то же самое с протоколами связи, объединяя их в один универсальный стандарт.

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

Но задумывался ли кто-то над тем:

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

Constraints в PostgreSQL, или о том, как попытаться спокойно жить

Reading time8 min
Views20K

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

Концепция “тупого хранилища”

В последние годы разработчики ПО всё чаще утверждают, что база в их проекте “всего лишь тупое хранилище, и поэтому никакой логики в ней нет”. Откуда такой подход? Обычно он объясняется сложностями миграции, развёртывания, неудобствами при работе с системами контроля исходного кода. Не стоит списывать со счетов и простую человеческую лень: раз всё и так нормально, зачем связываться с логикой в СУБД? Создали таблицы (или, ещё лучше, пусть ORM их создаст!), и всё отлично.

NoSQL для документов

Случай с NoSQL ещё проще – не надо ничего создавать, контролировать и напрягать мозги, всё уже автоматизировано, оно само работает. Этого вполне достаточно, если из базы нужно просто доставать документы по идентификатору, но если требуется решать задачи посложнее, то всё-таки выбирают SQL СУБД. Их использование, однако, ограничивается созданием таблиц и индексов, логика на стороне СУБД и в этом случае видится избыточной.

СУБД: не только технология, но и бизнес-инструмент

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

Читать далее
Total votes 27: ↑23 and ↓4+25
Comments51

Пособие по программированию модулей ядра Linux. Ч.4

Reading time12 min
Views7.6K

Перед вами очередной фрагмент последней версии руководства по написанию модулей ядра от 2 июля 2022 года. Тема этой части — системные вызовы. В ней вы познакомитесь с этим понятием на примере создания собственной функции для открытия файлов, которая будет подменять собой исходную sys_open, а также следить за конкретным пользователем, информируя нас об открываемых им файлах.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments0

Раз нормально, два нормально… Или имитация объема в плоскости

Reading time24 min
Views6.9K

В прошлом мы уже рассказывали о том, какие существуют карты для моделей и как они используются. А также поведали о том, как сделать имитацию плоского изображения из объёмного с помощью целлшейдинга. Теперь настала очередь сделать объём из плоскости.
Читать дальше →
Total votes 26: ↑25 and ↓1+44
Comments1

Гусеничный автономный робот. Платформа для Ваших роботов

Reading time3 min
Views17K

DIY разработка. Возможные сферы применения. Я покажу свой опыт как сделать автономный гусеничный робот, не раздувая щеки и бюджет. Задача оказалась достаточно интересной, а в процессе реализации я собрал все грабли, которые мог.

Читать далее
Total votes 41: ↑40 and ↓1+53
Comments24

Как оформить ПМЖ в Парагвае самостоятельно, пошаговая инструкция

Reading time21 min
Views53K

✅ Какие документы нужно для подачи в Миграсьон Парагвая?

✅ Где собрать эти документы?

✅ Зачем нужная российскому гражданину туристическая виза в Парагвай?

✅ Где и как получить туристическую визу в Парагвай?

✅ Пошаговое руководство по подаче документов в Мигрисьон Парагвая?

✅ Сайты для поиска жилья в Парагвае

✅ Получение седулы

✅ Чаты по Парагваю

О минусах и плюсах Парагвая можно спорить до бесконечности, но главное преимущество этой страны — быстрое получение ПМЖ (не надо ждать какого-то периода на ВНЖ), доступный и понятный пакет документов и если делать самостоятельно, то по цене выходит выгодно, с учетом того, что вы получаете сразу же постоянную резиденцию. 

Набор документов для получения ПМЖ (Radicación Permanente) и ВНЖ (Radicación Temporaria) одинаковый, пошлины аналогичны, поэтому на мой субъективный взгляд логичнее сразу оформить ПМЖ, через 3 года проживания в этом статусе вы можете подаваться на гражданство Парагвая.

Уточню еще раз свою мысль: эта статья не о Парагвае, не о его плюсах и минусах, также она не для того, чтобы уговорить вас туда ехать. Я точно знаю, что есть люди, которые готовы и хотят получить этот ПМЖ, и из-за отсутствия информации не могут это сделать самостоятельно. Я раскрыла все основные вопросы, которые задают мои подписчики по этому вопросу во всех моих соц.сетях. О жизни в Парагвае, можно посмотреть видео, прикреплю внизу.

Читать далее
Total votes 28: ↑22 and ↓6+23
Comments75

Читать между нот: система передачи данных внутри музыки

Reading time8 min
Views7.1K


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

Однако музыка, а точнее музыкальные произведения могут послужить не только для эстетического удовольствия, но и для передачи закодированной в них информации, предназначенной для какого-либо устройства и незаметной для слушателя. Сегодня мы с вами познакомимся с весьма необычным исследованием, в котором аспиранты из швейцарской высшей технической школы Цюриха смогли незаметно для человеческого уха внедрить определенные данные в музыкальные произведения, за счет чего сама музыка становится каналом передачи данных. Как именно они реализовали свою технологию, сильно ли отличаются мелодии с и без внедренных данных, и что показали практические испытания? Об этом мы узнаем из доклада исследователей. Поехали.
Total votes 17: ↑16 and ↓1+15
Comments8

Information

Rating
44-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Software Architect
Lead