В статье — о том, как мы решили отказаться от PropTypes в пользу TypeScript для автоматического извлечения типов пропсов React-компонентов.
Наши разработчики давно просили эту возможность, справедливо возмущаясь: «Зачем описывать типы дважды — в TypeScript и PropTypes?». Тем более, что аналогичный механизм уже работал в Storybook.
Если вы недовольны текущими решениями для организации библиотек компонентов или просто любите технические кейсы — добро пожаловать под кат!
Читать далееЛян Вэньфэн давно известен как человек настолько необщительный, что некоторые лидеры китайской индустрии ИИ в частном порядке называют его «технобезумцем» — вариация прозвища, которое дают эксцентричным предпринимателям с огромными амбициями.
Читать далееВ этой статье мы повторим основные концепции предметно-ориентированного проектирования (Domain-Driven Design, DDD) и покажем, как с помощью jMolecules можно выразить технические аспекты в виде метаданных.
Мы изучим, какие преимущества дает такой подход, а также обсудим интеграцию jMolecules с популярными библиотеками и фреймворками из экосистемы Java и Spring.
Наконец, мы посмотрим на интеграцию с ArchUnit и узнаем, как использовать его для проверки, что структура исходников соответствует принципам DDD.
Читать далееК написанию этой статьи меня подтолкнуло изучение архитектурных подходов для Vue.js-проектов, а вдохновила - детально описанная методология Feature-Sliced Design.
К сожалению, PHP-сообществу не хватает подобных развернутых рекомендаций, да и вообще, каких-то общепризнанных стандартных подходов в структуре проекта.
Моя статья - это попытка обобщить изученную мною за много лет информацию и сформировать универсальную структуру проекта, основанную на принципах Clean Architecture и модульного монолита.
Читать далееДиагностика хаоса - первый шаг. Но сама по себе она ничего не меняет. Это лишь осознание проблемы. Настоящая работа начинается на этапе структурирования требований.
Это тот момент, когда вы берёте множество разрозненных данных, противоречий, записей в Telegram, Excel-таблиц, каких-то старых писем и превращаете всё это в рабочий артефакт: чёткий, пригодный к реализации, контролируемый и понятный всем участникам.
Структурирование - это не про красивые документы. Это про построение системы управления требованиями, которая будет жить и развиваться вместе с продуктом. Именно здесь начинается настоящий системный анализ.
Читать далееСегодня, на фоне крупных DEX протоколов, таких как Uniswap и Radium, в тени остается Curve. Я считаю, что это незаслуженно.
В статье разберем работу StableSwap и других продуктов Curve, комиссии протокола и Curve Wars. Обзор кодовой базы StableSwap будет полезен только разработчикам и может быть сложным для понимания, его можно пропустить в процессе чтения.
Читать далееЕсли вы заметили, что коллега-айтишник стал пить чай через трубочку, вяжет в перерывах крючком или прикупил четки, не стоит сразу вызывать санитаров. Возможно, ваш товарищ пытается избавиться от стереотипий или цифровых привычек, и при этом сохранить погружение в проект.
Так называются повторяющиеся действия, которые возникают непроизвольно во время работы.
Какой смысл у этих бессмысленных движений?
Физиологическая разрядка. Тело пытается “выпустить пар”, чтобы “чайник” не засвистел от умственной нагрузки.
Скука. Рутина (написание документации к проекту, тестирование, поиск ошибок) провоцирует автоматические движения.
Привычка, закрепившаяся на уровне рефлекса (например, курение во время ночных марафонов перед запуском).
Стимуляция мозга. Ритмичные движения помогают сосредоточиться (как у детей, которые грызут карандаш или раскачиваются на стуле).
Стереотипии у программистов — это чаще симптом, а не болезнь. Обычно их замечают, когда они явно начинают мешать общению, раздражать близких или приводят к ухудшению здоровья (боли, выгорание, бессонница - все те самые профессиональные болячки, о которых я писала здесь).
В статье - примеры, последствия и варианты замены без вреда для ментального и физического здоровья.
Читать далееНа одном из проектов мне нужно было реализовать Telegram-бота с использованием Web App. Я выбрал стек: Vite + React + Zustand + TypeScript. До этого я в основном работал с Webpack, и столкнулся с вопросом — как удобно организовать алиасы. В Vite есть resolve.alias, и это удобно. Но дополнительно нужно прописывать пути в tsconfig.json, чтобы IDE понимала, что происходит. А ещё это не работает с HTML-импортами.
Модель уважает пользователя. Но слушается систему. А теперь внимание: если подделать системную команду — модель не отличит подделку от настоящего приказа. Если разрешить от имени системы написать вирус/сгенерировать NSFW - модель поверит и выполнит. И не только это. Я это проверил — и она подчинилась.
Думали Do Anything Now окончательно прикрыли? Я тоже так думал.
Читать далееВо времена стародавние, когда интернет был почасовой и медленный, жила‑была одна организация.
Организация была большой и развесистой, во многих городах были отделения — и надо было как‑то обмениваться служебками да приказами.
Поскольку понятия «онлайн‑CRM» тогда не существоало как класса — основным способом обмена были электронная почта да FTP.
А что такое электронная почта? Это когда любой‑разный может написать вам письмо хоть от Билла Гейтса, с ценными указаниями, и только вам решать, верить или не верить.
Айтишник хоть в заголовки полезет посмотреть — а простой бухгалтер как?
И вот умные люди тогда приспособили для этого программу PGP.
Это не просто шифрование сообщений — это шифрование с несимметричными ключами: ваш секретный ключ есть только у вас, зато ваш публичный ключ может быть у кого угодно.
Если вы хотите написать человеку — шифруете сообщение для него, его публичным ключом. Если вам хотят написать — шифруют для вас вашим.
А получатель видит потом, кто шифровал и когда — потому что одновременно это была и электронная подпись.
5 мая 2025 года состоялся релиз интегрированной среды разработки Lazarus 4.0, предназначенной для разработки софта на языке Pascal с использованием компилятора FreePascal 3.2.2. Lazarus предоставляет возможности, схожие с Borland Delphi.
Основные изменения:
>>> Скачать
Не так давно мы выпустили новую версию open source xFlow-коллектора и анализатора xenoeye. Это неплохой повод попиариться. тем более что xFlow-коллекторами/анализаторами часто пользуются для анализа, мониторинга и борьбы с DoS/DDoS атаками, это сейчас очень актуально.
Если совсем коротко - анализатор собирает xFlow (Netflow и некоторые родственные протоколы типа Jflow, IPFIX, sFlow), распределяет их по объектам мониторинга, экспортирует информацию в СУБД (в текущей версии PostgreSQL), и может быстро реагировать на всплески трафика выше порогов для детекции DoS/DDoS атак с помощью скользящих средних.
Информацию из СУБД можно визуализировать разными способами - генерировать статические картинки и отчеты или показывать красивое в Grafana.
Реагировать на всплески можно тоже по-разному - отправлять сообщения в мессенджер, писать данные об аномалиях в БД, анонсировать BGP Flowspec для подавления атак.
В жаркое лето перед выпускным классом в школе, на летней отработке, мы помогали переоборудовать кабинет директора под компьютерный класс. Шефы нашей школы, моторостроительный завод (авиационные двигатели), подарил нам ЭВМ СМ-4 работающую под операционной системой Демос.
В нашей школе открывался первый в городе класс информатики.
Тогда я еще не знал как это поможет мне в будущем и изменит мою жизнь.
Читать далееAppSecFest — это ежегодное событие, где передовые подходы к разработке и защите приложений формируют будущее технологий.
Мы выступали как организаторы и отвечали за определенные зоны. С нашей стороны мы подготовили несколько различных активностей в виде квизов, шахмат и конкурсов где вы могли зарабатывать коины для приобретения лимитированного мерча в торговой лавке AppSecFest.
Но также нами была организована CTF зона, где каждый мог почувствовать себя в роли кибербезопасника и испытать свои силы в более чем 30 подготовленных заданиях по различным разделам.(Web, Crypto, Revers Engeneering, Osint, Mobile Security)
Для разворачивания полноценной инфраструктуры, мы решили выбрать облачную платформу Ps Cloud Services. По итогу не пожалев о выборе, стабильность работы нашей инфраструктуры была хороша :-)
Далее хотелось бы также поделиться, тем как мы настраивали и что использовали для полноценной работы сервисов, начиная от настройки VPN заканчивая система защиты.
Читать далееПошаговое руководство по автоматической генерации и обновлению SSL-сертификатов на Ubuntu с помощью Let’s Encrypt и Certbot. Примеры, cron-задачи, systemd-таймеры и кастомные bash-скрипты — всё, что нужно для бесперебойной работы HTTPS.
Читать далееМой интерес к этой теме начался с квадратуры круга, конечно. С доказательства невозможности. Почему нельзя получить квадрат равный по площади площади круга, удвоить квадрат, разделить угол на три равные части. Хотел разобраться как доказывается невозможность. Не могу сказать что разобрался, всё понял, но с чем-то разобрался и что-то понял.
А способ разделить угол на 3, 4, 5, 6, 7 и т. д. частей я придумал. Надо только иметь хороший циркуль и уметь им пользоваться.
Читать далееВ программировании микроконтроллеров периодически приходится писать клиентские PC программы для загрузки *.hex файлов в микроконтроллер через загрузчик.
Обычно в названии этих утилит присутствует слово loader.
В этом тексте я попробовал порассуждать на тему того, каким же атрибутами должна обладать эта самая утилита FW_Loader.
Читать далееКак собирать чистые и переиспользуемые DTO в TypeScript и NestJS с помощью миксинов? Модульность, валидация и никакого дублирования — всё в одном месте.
Читать далееВ практике обработки изображений часто встают задачи различных выравниваний цветовых компонент этих самых изображений. И в первую очередь это касается яркостной составляющей изображений. К этим задачам относится такой фильтр как Retinex. Этот фильтр хорошо выравнивает яркостную составляющую изображения, но беспощадно искажает соотношение цветовых составляющих - картинка становится "кислотной".
Для нужд STEX (ScanTailor-Experimental) была поставлена задача разработки фильтра, производящего выравнивание яркостной составляющей, но щадящей цвет. Это необходимо для вытягивания слабовыраженных контуров, не поддающихся отрисовке ни одним из имеющихся в STEX порогов без доп. префильтрации с сохранением гармоничности цветных иллюстраций.
Данный фильтр разрабатывался в GIMP и был реализован в STEX для яркостной компоненты, а позднее в виде CLI утилиты stbibalance на базе STB в полноцветовом исполнении.
Читать далееИсследование показало, что лучшие способы для улучшения психического благополучия бесплатны и просты в применении. Простыми словами. Если вам морально тяжело и вы думаете: «щас заплачу 100500 денег за какую-то дорогую и эффективную терапию и не станет лучше» – вы ошибаетесь.
Читать далее