Как стать автором
Обновить
17
0
Артём @JhaoDa

Пользователь

Отправить сообщение

Использование ICU Message Format в PHP

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

Недавно я узнал про довольно интересный инструмент, встроенный в РНР. Оказывается, в языке нативно поддерживается универсальный формат шаблонов для сообщений, ICU Message Format. В частности, он используется в Symfony Translation Component и в системе интернационализации фреймворка Yii 2. Однако этот функционал доступен и сам по себе, в чистом РНР. И может использоваться не только для создания многоязычных сайтов, но и в качестве простенького шаблонизатора, например для email-рассылок.

Я решил разобраться с ним поподробнее
Всего голосов 16: ↑16 и ↓0+16
Комментарии2

Умный ИБП для умного дома

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

Живу в новостройке и пока тут идут ремонты, изредка, но бывает, что отключается электричество. Чтобы умный дом продолжал работать (а вместе с ним и домашний интернет), купил себе мобильный UPS на AliExpress и немного его доработал.

Читать далее
Всего голосов 31: ↑30 и ↓1+29
Комментарии55

Что есть ЮАР прямо сейчас

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

Если долго, долго, долго,
Если долго по тропинке,
Если долго по дорожке
Топать, ехать и бежать,

То пожалуй, то конечно,
То наверно, верно, верно,
То возможно можно, можно,
Можно в Африку прийти!

Очень интересен тот факт, что я не вижу никаких свежих описаний ЮАР на Хабре. А зря. Возможно вам будет интересно это место. В нём есть множество недостатков, но наличествует множество достоинств. Возможно вам приглянется. За подробностями прошу под кат.

Под кат - это вот сюда вот.
Всего голосов 160: ↑153 и ↓7+146
Комментарии272

Раскрываем секреты загрузочных ISO-образов

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


В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Читать дальше →
Всего голосов 193: ↑193 и ↓0+193
Комментарии73

Домашнее облачко или что можно сделать с Orange Pi 5 (Часть 1)

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

Прикупил для тестирования SBC Orange PI 5 c 8 ядрами и 16Гб RAM и постарался описать какие бонусы можно получить от использования. Поставил Ubuntu 22, Docker, Portainer, gitlab-ce, minio S3 (домашний S3). Приглашаю к обсуждению, кидайте тапками или предлагайте что нибудь потестировать на новом устройстве.

Читать далее
Всего голосов 33: ↑30 и ↓3+27
Комментарии31

Встраиваем Lua в PHP через FFI

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

Foreign Function Interface — это перспективная альтернатива для традиционных PHP-расширений.


Сегодня мы будем разбирать FFI-библиотеку для работы с liblua5 из PHP, которая позволит исполнять скрипты на Lua из нашего приложения.


Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии11

Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)

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

Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.

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

Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!

Лонг-рид с кодом ждёт вас!
Всего голосов 31: ↑31 и ↓0+31
Комментарии19

Управление приватными php репозиториями с помощью Composer и Satis

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

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

Главным техническим средством в наших процессах сборки является Composer. Мы используем его из-за удобства управления нашими зависимостями, поэтому мы бы очень хотели, чтобы он позаботился и о наших приватных плагинах. Поэтому первым нашим шагом стало изучение официальной документации composer относительно приватных репозиториев. Ниже приведена некоторая квинтэссенция информации, как мне кажется, релевантной для нашей ситуации:

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Мониторинг начинается с метрик. Часть 2: серверное ПО

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

Продолжаем цикл статей об организации мониторинга. В первом материале разбирали, как и куда вообще имеет смысл навешивать алерты. Теперь поговорим о мониторинге базового серверного ПО, которое встречается в работе практически любого веб-проекта. Хочу поделиться метриками и алертами, которые мы в ITSumma используем для мониторинга виртуальных машин, docker/LXC-контейнеров, web- и application-серверов, supervisor’а, кастомных сервисов, а также ping-url’ов, SSL-сертификатов и доменных имен.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии1

Postgresso #2 за 2022 (39)

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


В эти безрадостные дни многим трудно работать, сочинять и даже читать статьи. Но ИТ-инфраструктура это как водопровод — без неё жизнь уже почти невозможна. И мы продолжаем выпускать Postgresso. По понятным причинам в этом выпуске будет много ссылок, меньше анализа. И главная тема — миграция

Миграция


Проблемы миграции с Oracle на Postgres обычно начинаются там, где приходится иметь дело с различиями в синтаксисе команд и прочими расхождениями в этих СУБД. Об этом и говорится в большинстве статей и видео.

Начнём с Oracle to Postgres Conversion

Это официальный документ сообщества PostgreSQL. Есть список инструментов миграции.

The Complete Oracle to PostgreSQL Migration Guide: Move and convert Schema, Application & Data

Довольно пространное руководство от EDB. Есть матрица возможностей миграционных инструментов.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

SQL HowTo: префиксный FTS-поиск с релевантностью по дате

Время на прочтение4 мин
Количество просмотров3.3K
В нашем СБИС, как и в любой другой системе работы с документами, по мере накопления данных у пользователей возникает желание их "поискать".

Но, поскольку люди — не компьютеры, то и ищут они примерно как "что-то там такое было от Иванова или от Ивановского… нет, не то, раньше, еще раньше… вот оно!"

То есть технически верное решение — это префиксный полнотекстовый поиск с ранжированием результатов по дате.

Но разработчику это грозит жуткими проблемами — ведь для FTS-поиска в PostgreSQL используются «пространственные» типы индексов GIN и GiST, которые не предусматривают «подсовывания» дополнительных данных, кроме текстового вектора.

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

И то, и другое не особо приятно для производительности запроса. Или что-то все же можно придумать для быстрого поиска?
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии12

Какими бывают дисплеи в ноутбуках? Разбор

Время на прочтение7 мин
Количество просмотров39K
У нас уже было много роликов про дисплеи: мы разбирали все типы LCD-матриц в телевизорах. Сделали один из самых подробных материалов про все виды OLED в смартфонах и ТВ. Также мы рассказывали вам про mini-LED и microLED-дисплеи будущего. Но мы еще ни разу не рассказывали про дисплеи в ноутбуках. А ведь в дисплеях для ноутбуков есть своя особая специфика. Поэтому сегодня мы глубоко нырнём в разновидности дисплеев для ноутбуков. Разберём всё страшные аббревиатуры и узнаем как маркетологи вводят нас в заблуждение?


Разберемся как узнать модель и тип дисплея в вашем ноутбуке? И посмотрим на конкретные примеры ноутов и дисплеев.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии15

Что намазать на зубы, чтобы они не выпали

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


Хорошо зафиксированный пациент в анестезии не нуждается

По многочисленным просьбам трудящихся сегодня мы будем заниматься очень важными вопросами:


  • Как правильно мазать зубы пальцем?
  • Хорошо ли растворяются пломбы в кислоте?
  • Почему больно, когда сверлят зубы дрелью без анестезии?
  • Зачем мазать зубы зеленкой?
  • Лечение кариеса на дому
  • Глубокое микрофторирование эмали

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

Читать дальше →
Всего голосов 209: ↑206 и ↓3+203
Комментарии693

Как сделать многоточечную WebRTC-конференцию MCU с записью и демонстрацией экрана в браузере

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

Во время карантина, который то ослабевает, то активизируется с удвоенной силой, появилось огромное множество новых профессий. Сторисмейкеры, инфопродюсеры, специалисты по запускам инфопродуктов и прочие неведомые звери - все они освоили новую работу, которая смогла прокормить их в пандемию. Нанимаете сторисмейкера, который прошел какие-то курсы (дай бог, нормальные, а не от инфоцыган) - он пилит за вас вовлекающие истории в Инстаграм и ваш курс продается. С контентмейкерами та же история - просто нанимаете такого человека, он вам и шапку профиля везде оформит, и на каком-нибудь Геткурсе уроки упорядочит, и статьи напишет, которые тоже помогут в продвижении курсов. Полный полет фантазии: если вам кажется, что какой-то профессии не существует, значит вы просто мало сидите в интернете. В принципе онлайн-работа популяризировалась и теперь уже вряд ли кто-то скажет: "Да он фигней какой-то занимается - ТикТоки свои снимает, а лучше бы на заводе вкалывал!".

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии11

Полезные консольные Linux утилиты

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

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Всего голосов 118: ↑114 и ↓4+110
Комментарии110

SafetyNet Attestation — описание и реализация проверки на PHP

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

В эту тему пришлось детально погрузиться во время работы над обеспечением стандартных механизмов верификации устройств для разных мобильных платформ. Задача сводилась к разработке полноценной реализацию проверки JWS-токенов по протоколу SafetyNet на серверной стороне.

После многочасовых поисков и скрупулёзного изучения официальной документации Google решил поделиться полученным опытом. Потому что, кроме официальной документации, я нашел только отрывочные описания частных примеров реализации на разных ЯП. И ни намека на комплексное объяснение особенностей проверки по SafetyNet на сервере.

Статья будет полезна разработчикам, которые хотят подробнее разобраться с технологией верификации устройств по протоколу SafetyNet Attestation. Для изучения описательной части не обязательно знать какой-либо язык программирования. Я сознательно убрал примеры кода, чтобы сфокусироваться именно на алгоритмах проверки. Сам пример реализации на PHP сформулирован в виде подключаемой через composer библиотеки и будет описан ниже.

А в конце статьи — ссылка на разработанную мной библиотеку на PHP, которая обеспечивает полный цикл верификации JWS.

Читать далее
Всего голосов 41: ↑41 и ↓0+41
Комментарии10

Docker + php-fpm + PhpStorm + Xdebug

Время на прочтение8 мин
Количество просмотров63K
Не так давно тимлид нашей команды сказал: ребята я хочу, чтобы у всех была одинаковая среда разработки для наших боевых проектов + мы должны уметь дебажить всё — и web приложения, и api запросы, и консольные скрипты, чтобы экономить свои нервы и время. И поможет нам в этом docker.

Сказано — сделано. Подробности под катом.
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии80

Делаем Linux терминал красивым и удобным

Время на прочтение3 мин
Количество просмотров181K
Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем, чтоб он красиво выглядел. Однако, чтоб сделать из стандартного терминала (в любом DE, любого дистрибутива) нечто красивое и одновременно удобное и простое в использовании я потратил много времени. Итак, как же сделать дефолтный терминал удобным и приятным в использовании?
Читать дальше →
Всего голосов 41: ↑27 и ↓14+13
Комментарии97

Бразильские дальнобойщики и русские радиопираты: изучаем спутники SATCOM

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

2009 год. В журнале «Хакер» выходит статья «Хакерское радио: спутники армии США на службе пиратов», повествующая о спутниковом радиопиратстве в Бразилии. Сегодня мы вновь поднимем эту тему и посмотрим, изменилось ли что-то за 11 лет?

Когда речь заходит о спутниках SATCOM, мы сразу оговоримся, что речь пойдет о спутниковой группировке ВМС США — Navy Fleet Satellite Communication (FLTSATCOM). Началось все с корпорации Thompson Ramo Wooldridge Inc., ныне известной как TRW.Inc, руководившей разработкой первой межконтинентальной баллистической ракеты США. Планировалось, что группировка будет состоять из 8 спутников, обеспечивающих связью самолеты, корабли, подводные лодки и наземные станции с военным командованием.
Всего голосов 52: ↑51 и ↓1+50
Комментарии36

Принцип единственной ответственности: глубокое погружение

Время на прочтение17 мин
Количество просмотров45K
Про принцип единственной ответственности (The Single Responsibility Principle, SRP) уже было написано множество статей. В большинстве из них даётся лишь поверхностное его описание мало чем отличающееся от информации в википедии. А те немногие статьи что затрагивают ключевые особенности SRP делают это вскользь, не акцентируя на них внимания и не развивая тему дальше.

Эта статья — попытка дать более глубокое объяснение принципу единственной ответственности, а также показать как его всё таки можно применять на практике. Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии106
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Красноярск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность