Pull to refresh
6
2
Филатов Антон @positroid

Web-архитектор

Send message

О том, как я переизобретал медиацентр

Reading time11 min
Views133K

Raspberry Pi 3 model B


С приобретением нового телевизора возник вопрос, какую приставку для него брать. Возможностей Chromecast уже не хватало и хотелось полноценный медиацентр на Kodi. Телевизор со SmartTV покупать не вариант — Kodi можно установить только на Android (из SmartTV платформ), а к нему я отношусь без особой любви, к тому же он уже внутри телевизора, а не в отдельной коробке, которую можно безбоязненно перепрошивать. Ну а зачем мне полноразмерный Android, со всеми его сервисами и программами в виртуальной машине, без полноценного GNU/Linux окружения и, скорее всего, без обновлений? По той же причине также были отметены многочисленные готовые медиацентры на Android, хотя та же приставка от Xiaomi довольно хороша. Можно было бы подумать насчёт SmartTV на TizenOS, но для него нет Kodi.

Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments78

Умный дом с котом: мой опыт автоматизации домашней рутины

Level of difficultyEasy
Reading time11 min
Views21K

Как автоматизировать дом, чтобы кошачий лоток отправлял в «Телеграм» сообщения, что его пора почистить, а на экране ТВ появлялось сообщение, что ванная комната освободилась. Об этом рассказал наш комьюнити‑менеджер Игорь Губайдуллин, инженер с 20-летним опытом работы. Умный дом стал его хобби пять лет назад — началось всё с робких шагов по освоению Apple HomeKit, а закончилось выделенным сервером умного дома с Home Assistant на борту.

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments79

Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

Level of difficultyMedium
Reading time27 min
Views163K

> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через веб-архив.

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

Читать далее
Total votes 102: ↑100 and ↓2+109
Comments292

Go vs PHP: делимся материалами Lamoda Tech
PHP/Go
Meetup

Reading time2 min
Views5.9K

Потребность в Golang-разработчиках растет с каждым годом, и наша компания не исключение. Мы постоянно ищем специалистов, а особенно рады тем, кто знает два языка — и Go, и PHP. И готовы переучивать со старой доброй «пыхи» и растить новых гоферов.

Две недели назад мы собрались в Lamoda Home, чтобы выяснить, существуют ли преимущества Go перед PHP. Серьезный спор проходил сразу на двух площадках: в зале и в трансляции митапа. Сегодня делимся материалами мероприятия. Ищите себя на фото, если были в этот день с нами!

Читать далее
Total votes 11: ↑6 and ↓5+2
Comments5

Я ненавижу фитнес и поэтому занимаюсь им в VR. Часть 3: обзор фитнес-программ

Level of difficultyEasy
Reading time36 min
Views6.9K

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

Я перепробовал практически всё, хоть как-то связанное с фитнесом и доступное для не-US аккаунтов, что есть в Meta¹ Quest Store (официальный магазин приложений), App Lab (тоже официальный, но без промо от Meta¹ и только по прямой ссылке / прямому поисковому запросу) и SideQuest (неофициальный, но не запрещённый магазин приложений, требует несложного танца с бубном), включая опубликованные там WebXR-приложения (не требуют установки и запускаются через браузер внутри VR). Не пробовал некоторые сильно платные приложения, у которых по трейлеру и так всё понятно: они отмечены в обзоре специальным образом.

До чего же дошли технологии?
Total votes 22: ↑20 and ↓2+25
Comments43

Использование Symfony / PHP

Level of difficultyMedium
Reading time11 min
Views9.9K

Привет! Я, Андрей, Symfony разработчик - мы делаем сайты. Каждый день у нас уходит много ресурсов на администрирование и базовые настройки проектов. В этой статье поделюсь опытом, как можно адаптировать фреймворк Symfony для оптимизации таких затрат, какие настройки мы проводим для обеспечения быстрого функционирования, и как мы взаимодействуем с REST клиентами. Поехали.

Поехали
Total votes 12: ↑8 and ↓4+7
Comments15

Долгоиграющие приложения на PHP

Level of difficultyMedium
Reading time15 min
Views21K

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

Меня зовут Александр Пряхин, я TechUnit Lead в Авито. В IT работаю уже 14 лет. Из них 8 лет руковожу командами. Параллельно с этим преподаю и менторю. Сегодня разберём, как готовить демонов на PHP — от А до Я, и почему это актуально.

Читать далее
Total votes 54: ↑52 and ↓2+58
Comments17

Оптимизация бэкенда приложения с примерами на Symfony. Часть 2

Reading time20 min
Views9.6K

Всех приветствую!

Это продолжение серии статей, где мы рассмотрим еще несколько методов, которые помогут улучшить производительность приложения. Мы поговорим о том, как использовать entity manager, unit of work, bulk inserts и batching processing для более эффективной работы с базой данных.

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

В предыдущей статье мы говорили о проблеме n+1, видах пагинации и индексах. Там же Вы можете найти описание приложения, репозиторий проекта и схему данных.

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments9

Тестирование PHP проектов на примере Symfony

Reading time14 min
Views9.5K

Хочу описать свои наработки и устоявшиеся подходы к тестированию PHP проектов. Последние годы я работаю с Symfony и здесь будет достаточно моментов специфичных для этого фреймворка. Так же в этой статье термин функциональные тесты (functional) является синонимом End-to-End тестов. Статья рассчитана на разработчиков уже знакомых с PHPUnit и Symfony, структурой composer файла. Врочем, здесь есть и общеизвестные моменты, чтобы облегчить понимание тем, кто только начинает писать тесты. Статья призвана упорядочить знания и показать какие-то удобные подходы. Формат статьи не позволяет раскрыть все нюансы. Тем не менее, я постараюсь озвучить все основные моменты, применяемые в работе и которые лично мне помогают на практике. 

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments5

Принципы домашнего танкостроения

Level of difficultyEasy
Reading time33 min
Views37K

Хотели бы свой дистанционно управляемый танк? В этой статье я расскажу про общие принципы танкостроения из доступных материалов.

Читать далее
Total votes 79: ↑78 and ↓1+95
Comments49

Сделать робота на raspberry pi, обновленный pi-tank. Часть 1. Железо

Reading time4 min
Views14K
Предлагается сделать домашнего робота, отличительными чертами которого будут:
— относительная простота создания (как по времени, так и трудозатратам),
— недорогие комплектующие,
— доступный софт,
— возможность удаленного управления, в том числе через интернет,
— возможность бесшумно передвигаться,
— наличие веб-камеры, которая (которой):
> вещает в сеть
> можно удаленно управлять(поворотная камера по осям x и y, pan-tilt)
> имеет возможность фото-, видео- съемки с сохранением на диск и скачивания данных медиа
> можно управлять настройками (экспозиция, баланс и т.п.)
> поддерживает день|ночь
> может сохранять снимки при наличии движения (motion detection).
— возможность управлять режимом работы для экономии батареи, в том числе пробуждаться и засыпать, контролировать заряд батареи.



Total votes 10: ↑10 and ↓0+10
Comments6

Лучшие плагины IntelliJ IDEA

Reading time5 min
Views82K


Key promoter X


Использование сочетаний клавиш вместо мыши может значительно повысить производительность. С таким количеством функций, которые предлагает IDEA, это может быть пугающим и трудным для изучения всех быстрых клавиш. К счастью, есть плагин под названием Key Promoter X, который может вам помочь.

Идея проста: всякий раз, когда вы используете мышь для вызова команды в вашей IDE, появляется всплывающее окно, которое сообщает вам, каково сочетание клавиш для этого действия.
Читать дальше →
Total votes 35: ↑33 and ↓2+43
Comments43

Миграция данных ElasticSearch без потерь

Reading time5 min
Views12K


Академическое проектирование хранилища данных рекомендует держать все в нормализованной форме, со связями между. Тогда накат изменений по реляционной математике даст надежное хранилище с поддержкой транзакций. Atomicity, Consistency, Isolation, Durability — вот это все. Иначе говоря, хранилище специально строится для безопасного обновления данных. Но оно вовсе не оптимально для поиска, особенно широким жестом по таблицам и полям. Нужны индексы, много индексов. Объемы разрастаются, запись замедляется. SQL LIKE не индексируется, а JOIN GROUP BY отправляет медитировать в планировщик запросов.

Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments2

Неполнотекстовый поиск: специфичные возможности Elasticsearch для сложных задач

Reading time10 min
Views18K
image

Привет всем, меня зовут Андрей, и я разработчик. Давным-давно — кажется, в прошлую пятницу — у нашей команды был проект, где понадобился поиск по ингредиентам, входящим в состав продуктов. Допустим, в состав колбасы. В самом начале проекта от поиска требовалось не много: показать все рецепты, в которых нужный ингредиент содержится в определенном количестве; повторить для N ингредиентов.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments36

Лучшие методики проектирования производительных мобильных API

Reading time11 min
Views14K


В сети есть множество информативных статей о высокой производительности на мобильных устройствах, и столько же об общем проектировании API. Но очень мало обсуждаются архитектурные решения, необходимые для оптимизации производительности бэкендных API, предназначенных для использования мобильными клиентами.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments3

Поднимаем VPN-туннель из мира домой в обход NAT

Reading time2 min
Views142K
.

Хочу рассказать вам про то как имея в интернете свой VPS-сервер можно поднять туннель в домашнюю сеть. И не платить при этом за статический IP провайдеру, и даже находясь за NAT, все равно сделать доступными в интернете свои домашние сервисы.
Читать дальше →
Total votes 44: ↑31 and ↓13+18
Comments27

Как прочитать большой файл средствами PHP (не грохнув при этом сервак)

Reading time9 min
Views48K

Перевод статьи Christopher Pitt.


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


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


Fragmented terrain


Последняя проблема и будет рассмотрена в этом уроке.

Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments47

Телеграм-бот для домашнего видео-наблюдения из подручных материалов

Reading time7 min
Views58K

Disclaimer


Эта статья содержит некоторое количество программного кода, написанного на языке Python. Ввиду того, что автор статьи по профессии является сисадмином, но не программистом — стиль и качество этого кода, могут вызвать проявление неконтролируемых эмоций у профессионалов. Пожалуйста, немедленно прекратите чтение если вид неаккуратного или неоптимального кода может негативно сказаться на вашем психическом состоянии.


Постановка задачи


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



Из всего перечисленного, было решено построить систему домашнего видео-наблюдения с функционалом оповещения о вторжении. В качестве платформы был выбран телеграм-бот. Бот имеет следующие преимущества перед другими возможными реализациями (веб, мобильное приложение):


  • Не требуется установки дополнительного клиентского ПО
  • Серверная часть может работать с приватным IP адресом через NAT, при этом предъявляются минимальные требования к подключению (вплоть до 3G модема)
  • Большая часть инфраструктуры находится на стороне сервис-провайдера, который за меня решил вопросы авторизации, безопасности итп...

С помощью беглого анализа интернет-публикаций, существующие решения обнаружены не были.

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments52

GitLab CI для непрерывной интеграции и доставки в production. Часть 1: наш пайплайн

Reading time6 min
Views150K


Итак, GitLab CI: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD).
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments25

Исповедь Битрикс хейтера

Reading time47 min
Views174K
Что-то много развелось в последнее время статей про минусы битрикса, и их опровержений. Раз уж пошла такая пьянка, то и я добавлю свои 5 копеек.
В комментариях к статьям писали, что не хватает конкретики, примеров, более глубокого обзора.

Данная статья — попытка этот обзор написать. Хотя нет, это скорее пост ненависти и боли (может даже немного нытья). Это такой расширенный вариант поста про минусы от pistol. Я постараюсь описать большинство тех вещей, которые раздражают именно меня и моих коллег в Битриксе. Постараюсь собрать в одном посте все те минусы, которые доставляют ежедневно очень много боли. Под конец я постараюсь сделать выводы.

Кто я такой? Да в общем-то, обычный разработчик. Работаю с битриксом с ноября 2010 года (5.5 лет). Работаю только с битриксом, не сделал ни одного коммерческого проекта на других CMS, не использовал фреймворки в создании сайтов. По роду деятельности я занимаюсь в основном интернет-магазинами, их созданием, поддержкой и развитием.
Читать дальше →
Total votes 122: ↑111 and ↓11+100
Comments180
1

Information

Rating
1,304-th
Location
Липецк, Липецкая обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
PHP
Symfony
Elasticsearch
CMS «1С-Bitrix»