На работе была поставлена задача: в главное веб-приложение нашей фирмы добавить метод формирования бланка в формате PDF «как вот в том микросервисе».
Форма бланка регулярно изменяется, и копировать её в веб-приложение означало нарушить принцип DRY («Не повторяйся») и обречь себя на постоянную двойную работу. Поэтому я решил оставить генерацию бланка в «том микросервисе».
«Тот микросервис» написан на PHP с использованием фреймворка Laravel, содержит большое число доменных объектов, экземпляры которых хранятся в БД MySQL, и имеет развитую систему API для обращения к своему функционалу.
И можно было добавить в него ещё одну точку доступа API, которая бы получала данные и на их основе формировала и возвращала бланк.
Проблема возникла из-за «неприлично» высокой связанности объектов в «том микросервисе». Так, в шаблоне, на основе которого строился бланк, использовались не просто примитивные типы данных, а объект-форма. И шаблон обращался к методам-геттерам этого объекта. А объект, в свою очередь, использовал другой доменный объект в своём конструкторе для заполнения полей.
Читать далееВ прошлой статье я писал хайлевелно о том, как пришёл к разработке своего арбитражного бота на Solana.
В этой статье хочу копнуть чуть глубже в механику ценообразования в децентрализованных пулах.
Всем привет! В этой статье мы разберем одну из важнейших тем при разработке любого веб‑сайта — доступность.
Она позволяет сделать наш сайт или веб‑приложение доступным максимальному количеству пользователей. И под максимальным количеством имеются ввиду не только пользователи со слабыми устройствами или интернетом, для которых мы должны предоставить максимально оптимизированное решение, но и пользователи с ограниченными (постоянными или временными) возможностями: люди без слуха, зрения, без возможности использовать мышь или клавиатуру для взаимодействия с контентом веб‑сайта.
Для чего же нам нужно работать над доступностью? Ответ напрашивается сам собой – расширение аудитории и привлечение новых клиентов (если вы оказываете услуги). По данным AccessiCart, при улучшенной доступности мы увеличиваем потенциальную аудиторию до 25%. (Ссылка на статью)
Помимо расширения аудитории, улучшение доступности положительно влияет на органический трафик (переходы на сайт из поисковых систем). Исследование, проведенное Semrush, показало, что 73,4% сайтов, внедривших решения по доступности, зафиксировали рост органического трафика, при этом 66,1% из них отметили увеличение трафика от 1% до 50%. (Ссылка на статью)
Здесь мы рассмотрим как улучшить доступность с двух сторон: оптимизации и взаимодействия с контентом. Добиться этого можно с помощью самых базовых технологий разработки: HTML & CSS & JS.
Читать далееНа свете есть много всяких дремучих мракобесов: антиваксеры, плоскоземельцы, любители кошек, евроскептики и проч. Я вот, например, нейроскептик. Может тут особенно и гордиться‑то нечем, но уж какой есть. Последовательный и упорный. Но честный и научно‑добросовестный. Поэтому, заметив нездоровую истерию в недружественной прессе по поводу грядущего (почти завтра) AGI полез разбираться, чего ж там такого ужасного натворили с chatGPT за последнее время. И таки да, временами действительно это выглядело пугающе, но все таки еще не все потеряно....
Читать далее12 апреля 2025 года в конференц-зале Высшей Школы Бизнеса НИУ ВШЭ собрались игровые разработчики и инвесторы для обмена опытом и новыми идеями.
В статье рассказали, о чём говорили спикеры и поделились записями выступлений!
Читать далееВ эрланге (и эликсире) мне всегда недоставало способа организовать «потоковый» обмен сообщениями, наподобие того, который обеспечивает какой-нибудь Message Broker. Нормальные разработчики смиряются с ограничениями, которые им задают их фреймворки: в Финиксе есть PubSub, в OTP — :gen_event, в эликсире — депрекейтнутый еще до рождения GenEvent.
Так родилась библиотека Antenna, которая предоставляет все те возможности, которые обычно обеспечиваются посредством вкрячивания дополнительной зависимости от брокера сообщений. Требования, которые я к ней предъявлял, были следующими:
узнать, какими именноЭто не новость, но вопрос всплывает достаточно часто, поэтому я считаю, что проблему нужно объяснить кратко. Люди, и я в том числе, обычно говорят, что время POSIX, также известное как время Unix — это количество of секунд, прошедших с эпохи Unix, то есть с 00:00:00 1970-01-01.
Но это не так. Точнее, не так в смысле, подразумеваемом большинством. Например, сейчас у меня на часах 2024-12-25, 18:51:26 UTC. Время POSIX равно 1735152686. Прошло 1735152713 секунд с эпохи POSIX. Число времени POSIX на двадцать семь секунд меньше.
Причина в том, что время POSIX вычисляется в IEEE 1003.1 из Coordinated Universal Time. Стандарт предполагает, что каждый день — это ровно 86400 секунд. Цитата:
Читать далееВ 2024 году я заработал первый миллион, продавая ассеты на UE Marketplace, а в 2025 проверяю их актуальность в эпоху ИИ. Зовут Меня Хамзат, в UE с 2019 года.
ДЛЯ ДЕЕСПОСОБНЫХЧтение книги The Technological Republic за авторством генерального директора компании Palantir Technologies Алекса Карпа сподвигло меня на следующие размышления.
Читать далее«Альт СП» - сертифицированная ФСТЭК России операционная система. Приобрести лицензию могут только юридические лица, государственные и муниципальные органы.
Если вам нужна актуальная версия «Альт СП» для тестирования, отправьте запрос на официальном бланке организации с указанием ИНН в электронном виде (PDF) на почту sales@basealt.ru на имя генерального директора «Базальт СПО».
Что указать в запросе:
Читать далееЯ живу в киберпанке: у меня виртуальная работа, за которую я получаю виртуальные деньги, моя личность рассыпана по интернету, я разговариваю с роботами про жизнь, а они веселят меня своими анекдотами.
Читать далееApple по доброте душевной поделилась с разработчиками инструментом отладки SwiftUI. Удобный он или не очень — разберёмся вместе с Surf iOS Team.
Читать дальшеСегодня хочу рассказать про интересный кейс из FinTech - SaaS-решение для экспресс-анализа финансовой отчётности. Этот кейс можно рассматривать как идеальный пример подхода фаундеров к процессу создания продукта.
Читать далееМы в RDP знаем о сетевых технологиях всё и даже больше. А потому решили поделиться с читателями Хабра небольшим путеводителем по сетевым терминам. Уверены, что он пригодится тем, кто хочет узнать больше о тонкостях этой сферы.
Итак, часть первая...
AI Networking – ИИ-ускорение сети. Совокупность алгоритмов и методик машинного обучения для анализа данных, обнаружения сценариев и принятия решений для усовершенствования производительности, безопасности и эффективности.
Частная сеть 5G – выделенная мобильная сеть, развёрнутая внутри частной среды и управляемая внутри неё: это может быть университетский кампус, отель или стадион. В отличие от общественных сетей 5G, которыми могут пользоваться все, частные сети 5G ограничены для использования в рамках конкретной компании или организации. Несмотря на значительные преимущества технологии, Частная сеть 5G требует значительных инвестиций в развитие и поддержку.
Network slicing – технология, которая помогает эффективно использовать беспроводную сеть, чтобы настроить виртуальную сеть 5G под пользовательские нужды.
Open RAN (ORan) – инициатива по разработке и построению радиосетей 5G с помощью программно-определяемых технологий и универсальных, независимых от поставщика программных средств.
Beamforming (технология формирования луча) – это технология, с помощью которой беспроводной сигнал направляется на конкретное принимающее устройство вместо того чтобы распространяться в разных направлениях с помощью антенны передачи. Полученное подключение характеризуется высокой скоростью и надёжностью.
ДалееМожно ли продолжать работать на 1С УПП в 2025 году, или переход на 1С ERP неизбежен? В статье разберём ключевые аргументы обеих сторон, оценим технические и организационные риски, реальные затраты на миграцию и сценарии, при которых модернизация окажется разумной альтернативой полной замене платформы. Без эмоций — только факты, цифры и практика.
Читать далееТестирование доступности помогает убедиться, что пользовательский интерфейс доступен для всех, включая людей с повышенными потребностями.
Включение тестов на доступность поможет упростить задачи мануального тестирования и сделать проверку доступности частью обычного процесса разработки.
Эта статья - своеобразный мини-гайд для быстрого старта вместе с Cypress и axe-core.
Почему такое сочетание технологий?
Axe-core - это надежный движок, соответствует стандартам WCAG. Он проверяет действительно реальные проблемы: контраст, aria-label, роли, альтернативный текст. Его легко интегрировать.
Cypress - удобный фреймворк, с огромным количеством функций “из коробки”. Легкая установка, большое количество примеров. Сохраняет скриншоты, делает запись видео, идеален для пользовательских тестов.
Typescript - мой любимый инструмент. Требует чуть больше времени при настройке проекта, но зато в дальнейшем помогает выявлять явные ошибки.
Читать далееНикогда заранее не знаешь, когда именно сверхмассивная чёрная дыра в центре галактики проснётся и начнёт пожирать материю. Вопреки распространённому мнению о том, что эти монстры постоянно пожирают близлежащие звёзды и газовые облака, оказывается, часть своего существования они проводят в бездействии. Новые наблюдения с космического аппарата XMM-Newton Европейского космического агентства позволили обнаружить такое «включение» одного из подобных монстров в далёкой галактике.
Сверхмассивная чёрная дыра в центре галактики SDSS1335+0728 тихо спала на протяжении десятилетий. Но в 2019 году она внезапно засветилась, и астрономы зафиксировали вспышку как в оптическом, так и в рентгеновском свете. Галактика, расположенная на расстоянии около 300 миллионов световых лет от нас, переживала пробуждение своей центральной чёрной дыры. Астрономы назвали это новое активное галактическое ядро «Ански».
Читать далееКачество требований в IT-проектах — тема, которая редко обходится без болезненных вопросов и неочевидных ответов. Эта статья — не о критериях идеальных требований (их мы касаться не будем), а о том, как можно выстроить работу команды, чтобы этих критериев достигнуть. В основе статьи реальный кейс: я расскажу о конкретных сложностях, с которыми мы столкнулись на одном из проектов, о причинах этих проблем и методах, которые помогли не только исправить положение, но и применить данный подход на других командах.
Теперь немного о самом проекте. Компания-заказчик впервые работала с внешними вендорами, а мы впервые сотрудничали с этим клиентом. Казалось, что мы хорошо подготовились: собрали сильную команду — опытных аналитиков, разработчиков, тестировщиков. Из явных проблем: у заказчика не было своего аналитика. Вернее, он появился, но пришел практически одновременно с нами и разбирался в проекте даже меньше нашего.
Когда мы начали проект и приступили к работе, неожиданно столкнулись и с проблемами в подготовке качественных артефактов — тех самых User Story, которые нужно было передать разработчикам. На груминге (у нас в команде «Story Refinement») постоянно возникали вопросы: истории одна за другой отправлялись на доработку по разным причинам. Позже, уже на этапе разработки, часть требований вновь возвращалась с замечаниями: требовались дополнительные уточнения.
Мы начали анализировать ситуацию и осознали, что команда теряет очень много времени. Например, на груминг собирались все 9 участников, обсуждали User Story, но в итоге понимали, что она не готова — её нельзя отдать в разработку, а значит, нужно вернуть аналитикам на переработку. Нас это категорически не устраивало: такие циклы требовали огромных затрат времени.
Читать далееМы начинали с обычного ELK-стека, логи приходили на logstash, записывались в Elasticsearch, а пользователи смотрели их в Kibana. Потом в эту схему добавилась Kafka, так как мы понимали, что на пиках нагрузок не успеваем записать все логи в Elasticsearch. Всё это располагалось в одном ЦОДе, а в Kafka была единая очередь. В результате горизонтального масштабирования Elasticsearch разросся до 30+ нод. Данная схема справлялась с нагрузкой в 100 тысяч документов в секунду.
Как вы понимаете, эта схема нас устраивала только до определённого периода. В какой-то момент нагрузка начала расти как на дрожжах.
Привет, Хабр! На связи Филипп Бочаров, руководитель платформы наблюдаемости и мониторинга для более 400 продуктов экосистемы МТС, и Юлия Тальцкова, ведущий инженер сервиса логирования и кластеров Open Search с более 400 терабайтами логов клиентов. Этот материал написан на основе нашего доклада для конференции Highload++
Расскажем, как нам удалось переписать критичный и высоконагруженный сервис логирования, перестать просыпаться от ночных звонков и даже иногда уходить в отпуск.
Читать далее