Обновить
0
@VXPread⁠-⁠only

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

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

Гениальная ОС, которую никто не помнит (с нескучными обоями)

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

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

Читать далее

SOHO UPS в маленьком корпусе и своими руками. Менее чем за 1500 руб

Время на прочтение6 мин
Охват и читатели75K

Хотите обеспечить бесперебойное питание своим устройствам, но при этом не сильно потратиться? Именно такой своей разработкой я и хотел с вами поделиться.

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

А что если сделать такой источник бесперебойного питания, который можно поставить прямо рядом с защищаемым устройством – лёгкое, компактное, недорогое?
Читать дальше →

Бесперебойное питание для роутера и GPON-терминала своими руками

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели45K

GPON технология подключения к интернету — одна из самых удачных инноваций последних лет. Она позволяет полностью избавиться от питания устройств «последней мили», что особенно актуально при длительных перебоях с электроэнергией. Почти все остальные технологии позволяют обеспечить интернет только временно — на час‑два, и время это не зависит от конечного пользователя — только от доброй воли провайдера, обеспечивающего своё оборудование источниками бесперебойного питания «на чердаке».

В случае же GPON, единственное, о чём должен позаботиться конечный потребитель — обеспечение питания терминала на своей стороне. Часть терминалов сразу снабжают встроенным WiFi роутером, но чаще всего этого не происходит и провайдер предоставляет отдельное устройство. Наиболее частая конфигурация — GPON‑терминал, потребляющий 0.5А по 12-ти вольтам, и WiFi‑роутер, потребляющий 0.3А по 9-ти.

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

Следующий вариант — купить USB‑DC преобразователи на 9 и 12 вольт, и воткнуть их в мощный пауэрбанк. Потребление сразу становиться более экономичным. В моём случае оно упало до двух ватт, но я использовал достаточно дорогие устройства с поддержкой технологий QC2/QC3. Хотя, простенькие шнурки без этих наворотов и повышайками внутри шнура позволяют достичь примерно тех же параметров. К повышайкам мы ещё вернёмся...

Читать далее

ИБП для роутера

Время на прочтение4 мин
Охват и читатели232K
Вначале был свет, и было хорошо. Внезапно, отключили электричество, и родилась идея.

image

Дома имеется планшет и пара телефонов, которые позволяют пользоваться интернетом без шнурка к розетке. Инет приходит через 3G модем и раздается роутером через Wi-Fi. Остается мелочь – заставить работать роутер при отсутствии электричества.

Вот тут я и вспомнил про старенький источник бесперебойного питания (ИБП) Back-UPS 300. Вполне себе рабочий девайс, но давно пылящийся по причине того, что «ничего он не тянет, да и нафиг он нужен».

Идея такая – упростить схему, исключив преобразование в 220В, понижать 12В сразу в 5В и получить приличное время автономной работы.
Читать дальше →

Доступная система видеонаблюдения с охраной на дачу за 60 минут

Время на прочтение24 мин
Охват и читатели112K

Речь пойдет о сборке, настройке и запуске охранной системы с датчиками, камерой, хранением видеозаписей на удаленном домашнем NAS, встроенным UPS, web-интерфейсом и оповещением через Telegram.

Чтобы быть предельно кратким, оформил статью в стилистике hackster.io. Информация рассчитана на читателей с опытом работы с одноплатным компьютером Raspberry и пониманием принципов работы VPN.

Читать далее

15 лет спустя: как я модернизировал умный дом на базе PLC и написал свой OPC-сервер для перехода от SCADA к ioBroker

Время на прочтение19 мин
Охват и читатели12K

Мой умный дом уже длительное время работает на промышленном контроллере - стабильно, без сбоев и без привязки к облакам. Но с годами технологии изменились: появились новые беспроводные протоколы, веб-интерфейсы, голосовые ассистенты и гибкие сценарии автоматизации. 

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

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

Читать далее

Дальняя связь на модулях LoRa: принимаем сигнал ниже уровня шума

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

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

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

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

Из этой статьи вы узнаете, как появились устройства LoRa и почему они могут принимать сигналы ниже уровня шума. Вы узнаете, как работать с модулями LoRa, подключенными к микрокомпьютеру Raspberry Pi, научитесь конфигурировать эти модули с учетом ограничений законодательства, а также передавать с их помощью сообщения на километры. В завершение статьи я расскажу, как сделать простую погодную станцию, измеряющую температуру, давление и влажность. Данные будут передаваться через LoRa и отображаться на OLED-мониторах, подключенных к передатчику и приёмнику.

Читать далее

Ни одного ложноотрицательного: пишем Фильтр Блума на C

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

Представьте: вы пишете парсер, который обходит сотни миллионов URL. Каждую новую ссылку нужно проверить — посещали ли мы её раньше? Заводить гигабайтный хеш-набор для хранения всех адресов — расточительно и медленно.

Но существует вероятностная структура данных, которая способна ответить на вопрос «видели ли мы этот URL?», занимая при этом в десятки раз меньше памяти, чем полное множество строк. Плата за такое — мизерная возможность ложноположительного срабатывания, где алгоритм заявит что URL есть, хотя на самом деле он новый. Зато на вопрос «не видели?» она не ошибётся никогда.

Это и есть Фильтр Блума, созданный Бёртоном Блумом аж в 1970 году. Более полсотни лет этому алгоритму! В принципе, никогда не помешает освежить знания и вспомнить, как писать реально оптимизированное ПО.

Читать далее

Как я три года пилю свой музыкальный сервер: часть вторая. Архитектура Kalinka и её место среди музыкальных систем

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

Как устроен KalinkaPlayer: модульный бэкенд, нативный аудиоплеер, пайплайн метаданных и мобильное управление в одном проекте.

Изучить архитектуру

Как я три года пилю свой музыкальный сервер: часть первая

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

Описываю настроение словами — и Raspberry Pi находит подходящие треки в моей коллекции, полностью локально, без облака и подписки. Как это устроено внутри.

Читать далее

Из 2,3 ТБ в 1,2 ТБ без потери учёта: как сворачивают большие базы 1С

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

Этот материал подготовил автор решения Database Compression Tool (DCT), представленного на Инфостарт Маркетплейс. Мы публикуем его от имени компании, чтобы поделиться практической экспертизой наших авторов. В статье разработчик DCT рассказывает, как устроена свертка больших баз 1С, какие ошибки могут привести к нарушению учета и что необходимо учитывать при работе с базами объемом в сотни гигабайт и несколько терабайт. Мнение, выводы и практические рекомендации в материале принадлежат автору решения.

Заявка выглядит буднично: ERP размером 2,3 терабайта, бэкап перестал влезать в ночное окно, место в СХД заканчивается быстрее, чем согласовывается его закупка. Диски можно докупать до бесконечности, но в какой-то момент кто-то произносит слово «свёртка». И тут выясняется, что удалить из работающей учётной системы две трети строк и ничего при этом не сломать заметно сложнее, чем звучит.

Читать далее

ИБП Энергия Smart.2 в Home Assistant: два одинаковых с виду ИБП и два разных протокола

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

Всем привет! Примерно с лета 2025 у меня работает ИБП Энергия Smart.2 1000W с внешней LiFePO4-батареей, и всё это время он был подключен к Home Assistant - я видел напряжение сети, заряд батареи, нагрузку и всё остальное прямо в дашборде. Написать об этом статью мне тогда в голову не пришло, т.к. всё завелось довольно быстро и казалось, что ничего интересного тут нет. Исправляюсь.

А поводом всё-таки сесть и написать стало то, что недавно я купил второй ИБП - Энергия Smart.2 600W под роутеры. Логика была простая: модель та же, конфиг уже готов, скопировал - работает. По факту же скопированный конфиг не заработал вообще, все сенсоры повисли в unavailable, и в процессе разбирательств выяснилось, что под одним и тем же названием «Smart.2» продаются два ИБП на совершенно разных платформах с разными протоколами. Об этом и расскажу: как подключить оба варианта, чем они отличаются и на какие грабли я наступил.

Кстати, в марте на Хабре выходила статья про подключение Энергии Smart к NUT - там 1000-ваттник подключали через dummy-ups и самописный Python-скрипт. Способ рабочий, но у меня к тому моменту уже давно всё работало более простым путём - через нативную интеграцию Modbus в Home Assistant, без NUT и без скриптов. Его и покажу первым.

Читать далее

Создание игр в Roblox: пособие для бати-программиста

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

Roblox — популярная игра и платформа для создания игр, и она хорошо подходит для того, чтобы попробовать себя в роли программиста. Мой сын уже во всю с друганами делает какие‑то игры там, потом они в них играют сами. И на курсы он уже тоже ходил, где показывали основы скриптинга на Lua. Однако у него часто возникают вопросы и проблемы, когда он не знает, что делать, в основном с написанием кода. И приходится подключать папу‑программиста, то есть меня.

Сам я пишу код уже почти 20 лет, писал на разных языках (C++, C#, Java/Kotlin, Python) и даже в геймдеве на заре своей карьеры работал. Однако просто так сходу взять и разобраться в организации внутренностей игры в Roblox оказалось не так‑то просто. Уж слишком там все отличается от того, к чему привыкли энтерпрайзнутые‑Java‑синьоры типа меня.

Roblox использует собственную бесплатную IDE под названием Roblox Studio. И когда впервые ее открываешь, глаза разбегаются от всяких кнопочек, деревьев объектов и непонятных штуковин. Тут нет просто папочек с кодом и конфигами, как я привык, зато есть тыща разных видов объектов, организованных в сложную иерархию и присыпанных сверху необходимостью делать сетевую синхронизацию между клиентом и сервером.

При этом все гайды по Roblox в интернете написаны для начинающих, в основном для детей, которые вообще не умеют программировать. И касаются они только совсем простых вещей, типа как сделать кубик, или как зарегистрировать прыжок игрока на него. При этом гайды часто не объясняют базу, структуру игры, а лишь дают набор действий типа: «нажмите тут, скопируйте этот скрипт вот сюда».

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

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

Читать далее

Все там будем…

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

...или почему игровые движки всегда заканчивают одинаково.

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

Любой движок, на котором есть "живые" игры проходит через четыре стадии: «хоть как-то, работает», «работает, но стыдно показать», «не стыдно показать, но никто не знает как работает», и «работает на отдельном языке, который мы сами же и придумали». Потом круг замыкается, и начинается новый виток истории, потому что команда осознает, что дальше так жить нельзя.

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

Читать далее

Пользователь сменил пароль и потерял доступ. Что проворонил тестировщик?

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

Одноразовая ссылка сработала только один раз, старый пароль больше не подходил, а все проверки прошли. И всё же пользователь снова потерял доступ к аккаунту.

Разбираемся, какой сценарий пропустил тестировщик и почему проверять отдельный токен недостаточно.

Читать далее

‑$200 за 40 минут: как я прошла принудительный экспресс‑курс по security для вайбкодинга

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели9.1K

Я дизайнер и продакт, но как и многие из вас — последний год самостоятельно разрабатываю проекты с Claude Code. И, как многие, была уверена, что соблюдаю базовые правила безопасности.

API‑ключи никогда не лежали локально.

Не попадали в Git.

Не отправлялись в облако.

Были один раз сгенерированы и вручную прописаны непосредственно на сервере.

Именно поэтому произошедшее стало для меня полной неожиданностью.

За один час злоумышленники смогли потратить около $200, воспользовававшись моими API‑ключами Anthropic и Open AI.

Пишу это в первую очередь для тех, кто, как и я, собирает продукты быстро, с ИИ‑ассистентом, и не считает себя security‑инженером. Если вы вайбкодер — пусть эта статья станет вашим бесплатным экспресс‑курсом по безопасности.

Читать далее

Бенчмаркая поиск по строке: самописные циклы проигрывают от ×14 до ×154

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

Уважаемые читатели, в этой статье я хочу рассказать про поиск по строке и представить свои выводы. Началось с оптимизации: сравнил поиск символа циклом со string.IndexOf — и получил разницу в разы. Заодно выяснилось, что серверный Xeon с AVX-512 в этой задаче медленнее игрового десктопа с AVX2. Ниже разбор обоих фактов с дизасмом и замерами.

Будет четыре истории, и в каждой — вопрос, на который я искал ответ:

Читать далее

Математика для датчиков: как посчитать коэффициенты для АЦП и получить реальные значения

Время на прочтение13 мин
Охват и читатели9K

В большинстве устройств для промышленной или домашней автоматизации требуется измерить какую-либо физическую величину, например, температуру, влажность, освещенность, давление, уровень воды и др. Для этого используют соответствующий сенсор, подключают его к микроконтроллеру и с помощью АЦП преобразуют в цифровое значение. Но сырые цифры из АЦП микроконтроллера — это ещё не температура, не давление и не влажность. Нужно их пересчитать. И тут начинается самое интересное: где взять коэффициенты для функции? Вручную подбирать? Гадать? Самый распространённый способ — это рассчитать коэффициенты для линейной функции. Но как правильно рассчитать её коэффициенты, чтобы ошибка была минимальной? Разбираем теорию, типы графиков датчиков, расчёты и готовый код.

Вперёд, к свету разума

Основы вёрстки для дизайнера. Часть 2. HTML и семантическая вёрстка

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.8K

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

Если CSS отвечает за то, как выглядит страница (цвета, шрифты, отступы), то HTML (HyperText Markup Language) отвечает за то, что на ней находится и какую смысловую роль играет каждый элемент. Это скелет вашего сайта.

Читать далее

Основы вёрстки для дизайнера. Часть 1. Введение: как дизайн превращается в живой сайт

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.3K

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

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Одесса, Одесская обл., Украина
Дата рождения
Зарегистрирован
Активность