Программист
Статический анализ и уже выросший проект: внедрять нельзя откладывать
Зачем нужен статический анализ кода, кажется, никому объяснять сегодня уже не нужно. Но одно дело — поддерживать код «чистым» с первого коммита, и совсем другое — встраивать новый инструмент в проект, который за несколько лет успел разрастись и пережить несколько итераций глобального рефакторинга. Мы работаем с большим количеством плохо документированных источников данных, а статический анализ кода помогает учитывать самые разные граничные случаи.
И ещё один момент: Rusprofile почти целиком написан на PHP, языке со слабой динамической типизацией. Статический анализ кода на PHP уже несколько лет набирает популярность, сказывается здесь и движение самого языка в сторону более строгой типизации. Но мы опасались, что без предварительной подготовки кода пользы от него мало. Аннотировать типами весь код в реальных бизнес-условиях тоже нереально. Сильно медлить с внедрением в рабочий процесс тоже нельзя: чем дальше, тем сложнее что-то кардинально улучшать. Поэтому нужно было оперативно запускаться, чем-то пожертвовав.
Как сделать стрим в Postgres?
На одной конференции мне задали вопрос (спасибо Александру!): как сделать стрим в PostgreSQL? Представьте, что имеется bytea и вы к нему хотите что-то дописать. Люди столкнулись с тем, что на это в PostgreSQL тратится гигантское время и растет WAL-трафик.
Расскажу, что с этим возможно сделать — это будет еще один пример оптимизации TOAST (о чем я недавно писал), на на этот раз — для быстрой записи потока бинарных данных. На самом деле мой коллега, Никита Глухов, за несколько часов сделал расширение, которое «вылечило» проблему, и мы даже успели рассказать про это на сессии блиц-докладов на PGConf.Online 2021.
Установка Arch Linux на MacBook Pro с чипом T2 и организация двойной загрузки
В прошлый раз, когда я подумывал об установке Arch на мой MacBook Pro с чипом T2, драйверы для клавиатуры и трекпада всё ещё находились на стадии активной разработки, поэтому я, в сущности, ничего достойного не добился. Но в декабре 2021 года эти драйверы оказались рабочими, а ещё обнаружилась целая вики, посвящённая установке Linux на компьютеры с чипом T2.
В этом материале я расскажу о том, как устанавливал Arch Linux на MacBook Pro. Он рассчитан на компьютеры 2019 или 2020 года выпуска.
PHP Дайджест № 220 (10 – 24 января 2022)
Подборка свежих новостей, инструментов и материалов из мира PHP.
Приятного чтения!
PHP Дайджест № 219 (1 – 10 января 2022)
Подборка свежих новостей, инструментов и материалов из мира PHP.
Приятного чтения!
Связываем две локальные сети с помощью Wireguard VPN на выделенном сервере
Эта статья о том как настроить Wireguard VPN в локальной сети, если вам достался роутер от провайдера без возможности его прошивки и полноценной настройки. Для настройки VPN поставим в локальной сети сервер. И настроим, чтобы все клиенты обоих локальных сетей имели прозрачный доступ к обоим LAN.
PHP Дайджест № 217 (1 – 13 декабря 2021)
Подборка свежих новостей и материалов из мира PHP.
В выпуске: PHP теперь использует GitHub для трекинга багов; вышел PhpStorm 2021.3; закончена поддержка PHP 7.3, а 7.4 — в режиме только секьюрити фиксов; для PHP 8.2 снова обсуждается перегрузка операторов — теперь с новым ключевым словом.
Также в выпуске полезные статьи, пачка инструментов, видео и другие новости сообщества.
Приятного чтения!
Строим эффективный сетевой обмен в PHP-микросервисах
Микросервисы сейчас — это новый черный. Все больше и больше компаний переходят именно на микросервисную архитектуру. И при переходе ловят самые разные ошибки. Самая популярная происходит из-за того, что люди просто не готовы к тому, что их приложения начинают активно использовать сеть. Потому что IPC и RPC-запросы — это абсолютно разные вещи.
Я техлид в команде Авито в проекте SLA. Сегодня расскажу, как мы оптимизировали сетевые вызовы, чтобы избежать проблем с сетью при переходе в микросервисный мир. Разговор будет про оптимизацию CURL-запросов, деградацию сервисов и FAIL-FAST-подходы.
Новые директивы HTTP для кеширования с учётом CDN
(с) xkcd
В данный момент на рассмотрении IETF находятся два стандарта. Это новые поля в заголовке ответа HTTP: Cache-Status и таргетированный Cache-Control.
Новые поля должны упростить разработку веб-приложений, а именно: упорядочить кеширование статического контента. Сейчас с этим небольшой бардак, поскольку кеширование происходит в нескольких системах на нескольких уровнях, почти как в этом ↑ комиксе. А синхронизировать все уровни непросто, ведь текущие стандарты разрабатывались в те времена, когда ещё не существовало CDN.
PHP Дайджест № 216 (15 – 30 ноября 2021)
Подборка свежих новостей и материалов из мира PHP.
В выпуске: вышел PHP 8.1, создана организация PHP Foundation с целью развития и поддержки PHP, критическая уязвимость в doctrine/dbal, в PHP 8.2 будут объявлены устаревшими динамические свойства, вышли Symfony 6 и Symfony 5.4.
Также в выпуске полезные статьи, видео и другие новости сообщества.
Приятного чтения!
Подключение и Настройка ElasticSearch + MySql + Yii2
Если вдруг поиск на вашем проекте начал тормозить, то самое время присмотреться к поисковым движкам.
Сегодня я расскажу как установить и настроить поисковой движок ElasticSearch на сервере под управлением Ubuntu и сделать авто импорт данных из MySql, а также мы настроим взаимодействие Yii с движком ES.
Python: Логируем как профессионалы
Часто вижу, что помимо обработки исключений, люди мучаются кое с чем еще, а именно с логированием.
Большинство людей не знают, что писать в логи, поэтому решают логировать все, что угодно, думая, что все подряд – это в любом случае лучше, чем ничего, и, в конечном итоге, просто создают шум. А шум – это информация, которая никак не помогает вашей команде понять, в чем дело и как решить проблему.
PHP Дайджест № 215 (1 – 15 ноября 2021)
Подборка свежих новостей и материалов из мира PHP.
В выпуске: последний релиз кандидат PHP 8.1 перед финальным релизом, бенчмарки PHP 8.1; в PHP 8.2 планируется задепрекейтить динамические свойства — добро или зло?; про перенос багов с bugs.php.net на GitHub; немного обновлен PSR-16.
Также в выпуске полезные статьи, видео и другие новости сообщества.
Приятного чтения!
Преодоление сложности в самом сердце DDD
Эта статья является переводом материала «Tackling Complexity in the Heart of DDD».
Давайте проведем небольшой эксперимент: попробуем объяснить суть предметно-ориентированного проектирования (DDD) тому, кто понятия об этом не имеет. Это, особенно если делать кратко, непросто. Ограниченные контексты, сущности, события домена, объекты значений, домены, агрегаты, репозитории… с чего начать?
Чтобы найти порядок в кажущемся хаосе, я хочу проанализировать методологию DDD с довольно необычной точки зрения — применив DDD к самому DDD. В конце концов, эта методология предназначена для работы со сложными доменами, не так ли?
Пять альтернатив Scale AI
Проекты машинного обучения и глубокого обучения стали сегодня мейнстримом.
Однако несмотря на огромные трудозатраты, только некоторым компаниям удалось превратить свои модели в продукты.
Согласно данным Gartner, для более чем 85% ИИ-проектов есть риск обеспечения плохих результатов из-за погрешностей в данных, алгоритмах или заблуждений разработчиков.
В частности, слабым звеном в ML/DL является качество данных, поскольку успех проектов сильно зависит от объёмов высококачественных размеченных данных, которые способна регулярно создавать команда.
Scale AI одним из первых воспользовался возможностью совершенствования и автоматизации управления, аннотирования и интегрирования данных.
Но Scale — не единственный мощный инструмент в области разметки данных для обучения ИИ.
WireGuard. How it was
Привет. Я Леша, System Infrastructure Engineer в inDriver. В этой статье на конкретных кейсах объясню, почему WireGuard — отличная VPN-система для работы, в чем разница использования разных утилит и что надо помнить, когда с ними работаешь. Прошу под кат!
Обучение с подкреплением на Python: Пример не из «качалки»
Обучение с подкреплением молодая и бурно растущая дисциплина. Это обстоятельство привело к тому что информации об этом на русском языке почти нет. Особенно, если дело касается объектно-ориентированного подхода, и практических задач не из арсенала "качалки".
Представляю вам результат простой задачи которая как я надеюсь убережет вас от части шишек встречающихся на этом интересном пути.
Информация
- В рейтинге
- Не участвует
- Откуда
- Иркутск, Иркутская обл., Россия
- Зарегистрирована
- Активность