Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Эволюция диагностики аккумуляторов Makita: от Arduino OBI к автономному веб-интерфейсу на ESP32

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

Каждый, кто работает с профессиональным инструментом Makita, знает, что их аккумуляторы — это не просто «банки» с энергией. Внутри скрывается сложная система управления (BMS), которая хранит массу полезной информации: от количества циклов заряда до напряжения на каждой ячейке. Однако получить эти данные без специального оборудования невозможно.

Несколько лет назад сообщество энтузиастов подарило нам проект OBI (Open Battery Interface) — решение на базе Arduino и Python, которое впервые позволило заглянуть «под капот» этих батарей. Это был настоящий прорыв, который послужил отправной точкой и для моего проекта. Но, как и у любой технологии, у него были свои ограничения. Я поставил перед собой цель создать более современное, удобное и полностью автономное устройство. Эта статья — история его разработки, от идеи до финальной реализации.

Читать далее

Новости

Малоизвестные уязвимости PHP: что скрывается за строками кода

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

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

PHP – один из самых популярных языков веб-разработки. Благодаря экосистеме фреймворков (Laravel, Symfony, Yii) и обширному опен-сорсу он остаётся выбором №1 для быстрого вывода приложений. При этом сообщество в основном концентрируется на классических уязвимостях (SQL-инъекции, XSS, CSRF, LFI/RFI). Тонкие особенности интерпретатора, малоизученных расширений и встроенных механизмов нередко остаются вне поля зрения. В этой статье мы подробно рассмотрим малоизвестные опасности и способы защиты от них.

 

Читать далее

Поднимаем внутренний мессенджер и VoIP-сервер без нарушения законодательства

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

Cейчас, когда связь с внешними сервисами работает с перебоями, а самым стабильным международным способом созвониться теперь является, внезапно, Steam, VoIP которого точно не блокируется, возникает резонный вопрос: а как коммуницировать хотя бы в рамках собственной компании? Особенно с учетом того, что Discord давно и надежно заблокирован, Slack с рынка ушел, а популярные публичные мессенджеры замедляются или рискуют отправиться в бан? Решение очевидно: поднимать собственные текстовые и VoIP-сервера, о чем мы и поговорим в статье на примере связки Matrix и Jitsi.

Читать далее

Динамические группы проксируемых серверов в Angie

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

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

Читать далее

Пять лет спустя: почему мы всё переписали с нуля

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

Пять лет назад на Хабре мы писали о Web Camera Pro — и казалось, что впереди только апдейты, оптимизации и новые функции. За это время изменилось многое — и не только в технологиях, но и в законодательстве.

Как мы наступили на те же грабли

Когда в 2015 году мы начинали разработку системы для видеонаблюдения, Qt 5 казался идеальным решением. На первый взгляд всё выглядело просто: берём готовые библиотеки, оборачиваем в красивый интерфейс, добавляем AI-аналитику — и готово.

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

“Один фреймворк, любая платформа” — звучало как музыка.

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

Qt позволял быстро собрать прототип, но, когда речь заходила о стабильности, о 24/7-нагрузке, о реальной работе с потоками и камерами, его недостатки становились критичны.

Читать далее

Как мы воскресили русский NLP и сократили потребление памяти на 90%

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

Как мы воскресили русский NLP и сократили потребление памяти на 90%

Форкнули четыре ключевых библиотеки русского NLP (pymorphy, razdel, slovnet, natasha), которые не обновлялись годами. Сократили потребление памяти на 90%, ускорили загрузку в 30 раз, повысили точность токенизации с 70% до 95%. Всё работает offline, 100% совместимо с оригинальными API. Экосистема MAWO — production-ready инструменты для работы с русским текстом.

Помните ли вы тот момент, когда открываешь проект для обработки русского текста и видишь знакомую картину? В requirements.txt красуется pymorphy2, последний коммит в репозитории датирован 2015 годом, Python 3.12 ругается на deprecated методы, а production ждать не будет. Знакомо? Тогда эта история для вас.

Читать далее

Open source-стратегии: как МойОфис развивает открытый подход — рассказывает Тамара Щепалкина, CTO компании

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

Делюсь разговором с Тамарой Щепалкиной, техническим директором МойОфис. В интервью — подробный разбор открытого подхода, реализуемого компанией.

Читать далее

GPS-мониторинг выездных сотрудников: посчитать, ускорить, не оставить в беде

Время на прочтение12 мин
Количество просмотров547

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Кому нужен Graphviz, если можно написать его самому?

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

Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы, демонстрирующие, как конкретно обрабатываются и оптимизируются функции.

Вы можете сами поэкспериментировать с этими графами в оригинале статьи. Просто введите какой-нибудь код на JavaScript в функцию test, и наблюдайте за созданием графа. Также там можно щёлкать и перетаскивать граф, менять масштаб при помощи колеса мыши с зажатым Ctrl и перетаскивать ползунок вниз, чтобы изучить процесс оптимизации.

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

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

Читать далее

MapStruct: как безобидный метод портит весь маппинг

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

При работе с MapStruct возникает соблазн добавлять небольшие вспомогательные методы прямо в ваш mapper и вызывать их через expression. Однако если такой метод оперирует довольно общими типами (например, String -> String), MapStruct может обнаружить его и применить к другим полям того же типа — даже если вы этого не планировали.

Читать далее

Java Digest #30

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

Всем привет! 👋👋👋👋👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

Октябрь выдался интересным: JDK 26 приносит поддержку HTTP/3, Vector API снова в инкубации, а Swing внезапно обзаводится своим DatePicker — да, 2025-й, а Swing жив! Разработчики обсуждают Leyden и GPU-ускорение для Java-ИИ, а Oracle чинит 15 уязвимостей. В статьях свежие оптимизации ZGC, разбор виртуальных потоков, Jackson 3, Kafka Queues и немного философии про «хороший вкус» в разработке. А под конец релизы, от JUnit 6 до Spring 6.2.12. Заваривайте кофе, обновляйтесь до JDK 25 и читайте. Поехали 🚀

Читать далее

Реставрация, которая меня сломала: Почему убрать смех из Скуби-Ду сложнее, чем сделать ремастер Тома и Джерри в 2к

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

Наверняка многие из вас с теплотой из детства вспоминают «Скуби-Ду, где ты!» 1969 года. Я тоже был в вашем ряду, однако я решился пересмотреть. И внезапно закадровый смех, который и сейчас то даже в ситкомах считается «артефактом древности», налеплен на детективный, комедийный мультик. Мне это очень сильно начало ломать впечатление от просмотра, — невозможно выстоять, когда каждые полминуты из 20 минут серии по поводу и без повода тебе указывают «где смеяться».

Так и начался мой личный ад на целый месяц, сподвигнутый наивным, но сильным желанием — сделать идеальную версию Скуби-Ду, такую, какую я помнил из детства.
История же эта обернулась гораздо серьёзнее, чем нажать на кнопку «удалить закадровый смех» в Adobe Premiere Pro.

Узнать, что пошло не так

Ближайшие события

Эмуляция «тетриса» Apollo из 90-х и запуск кода на оригинальном железе

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

В этой статье я расскажу о микроконтроллерах Sunplus с ядром 6502 которые использовались в популярных в 90-е «тетрисах» Apollo, а также об их эмуляции. Отдельно опишу способ запуска своего кода на этих играх и в частности проигрыватель «Bad Apple!!», крупнопиксельный кадр из которого показан на КПДВ.

Читать далее

Зал Славы видеоигр: зачем мы это делаем

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

История отечественного геймдева – это история энтузиастов, инженеров и художников. Она полна блистательных побед и горьких неудач, гениальных прорывов и забытых провалов. И эта история заслуживает того, чтобы ее не просто помнили, но и чествовали. Для этого в 2023 году был создан Зал Славы видеоигровой индустрии России – проект, который помогает сохранить наше цифровое наследие и отдать дань уважения тем, кто геймдев создавал. 

Какую роль играют видеоигры для России? Зачем популяризировать российские проекты? Как работает Зал Славы видеоигровой индустрии? Обсудим в этой статье. А в комментариях пишите, кто внес наибольший вклад в отрасль!

Читать далее

А кто у вас отвечает за kube-api? Безопасность Kubernetes при помощи CIS Benchmark

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

Kubernetes в IT-инфраструктуре — это не просто про удобство деплоя. Это критическая часть сервиса. Одна неправильная настройка kube-apiserver или etcd — и вместо кластера вы получите бублик с дыркой, через который утекут и данные, и бизнес-процессы.

В этой статье разберем, какие стандарты защищают контейнерные среды, почему CIS-бенчмарк часто становится первой точкой опоры, какие практики дополняют его и как Managed Kubernetes превращается в автоматизированный рабочий процесс. Детали внутри.

Читать далее

Почему я отказался от ORM в пользу чистого SQL

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

Во время выполнения очередного проекта мне пришлось работать с Битрикс ORM, при этом параллельно в системе был инстанс Laravel. Две разные ORM работали с единой базой данных. Не буду вдаваться в причины, по которым был выбран такой подход, и воздержусь от его оценки. Суть в том, что мне приходилось одновременно работать с двумя принципиально разными системами. Этот опыт привел меня к фундаментальному выводу: ORM — не для меня.

Почитать мнение

Почему операционный усилитель — плохой компаратор

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

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

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

Если вы начали свое знакомство с электроникой на Arduino и хотите продолжить погружение в мир аналоговой схемотехники, предлагаю разобраться чем отличаются логические схемы и операционные усилители, и почему не стоит использовать ОУ в качестве компаратора.

Погрузиться в мир аналоговой схемотехники

История опенсорс-проекта LUWRAIN: как эксперименты с LLM помогают создавать невизуальные интерфейсы для незрячих

Время на прочтение12 мин
Количество просмотров528

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

Проект LUWRAIN — пример именно такой истории. Это платформа для разработки невизуальных приложений, которая тринадцать лет создаётся усилиями энтузиастов. Сегодня у неё появляется шанс сделать рывок — с помощью LLM и инженерных подходов, основанных на открытых технологиях. В случае LUWRAIN, как и в случае многих похожих инициатив, существует поиск правильного соотношения смысла и усилий. Поэкспериментировать и найти баланс в том числе помогла программа грантов Yandex Open Source.

Меня зовут Михаил Пожидаев, я работаю доцентом теоретической информатики в Томском государственном университете. Читаю такие предметы как обработка естественного языка, ОС UNIX, анализ социальных сетей и введение в программную инженерию. В этой статье расскажу о своём опыте создания программных продуктов, которые должны казаться странными и нелогичными в привычных обстоятельствах, но обстоятельства нестандартны.

Читать далее

Нейросеть — это хорошо, но дайте выбор. Как я убрал «Алису» из поиска Яндекса

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

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

Я решил вернуть себе контроль над поиском и написал простое браузерное расширение, которое убирает всё лишнее, например когда пишешь олимпиаду с проктором. Назвал его «Bye Bye Alice AI». В этой короткой статье я покажу, как оно устроено.

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