Pull to refresh
Kira Rumata @rumatakiraread⁠-⁠only

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

Send message

Модифицирующий MQTT Proxy

Reading time6 min
Views7.5K


Janus MQTT Proxy — это сервис, который я написал на Go в качестве хобби-проекта. Он подключается к MQTT-брокеру и подписывается на все события, а клиенты, в свою очередь, подключаются к proxy и общаются с ним как с MQTT-брокером.


Он позволяет:


  • ограничивать доступ клиентов к разным топикам. В том числе раздельно ограничивать доступ на чтение и запись;
  • подменять названия топиков и содержимое событий с помощью regexp-ов.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments3

Введение в Си. Послание из прошлого столетия

Reading time15 min
Views205K

Предисловие


Я несколько раз в своих комментариях ссылался на книгу Эндрю Таненбаума «Operating Systems Design and Implementation» на ее первое издание и на то, как в ней представлен язык Си. И эти комментарии всегда вызывали интерес. Я решил, что пришло время опубликовать перевод этого введения в язык Си. Оно по-прежнему актуально. Хотя наверняка найдутся и те, кто не слышал о языке программировании PL/1, а может даже и об операционной системе Minix.

Это описание интересно также и с исторической точки зрения и для понимания того, как далеко ушел язык Си с момента своего рождения и IT-отрасль в целом.
Читать дальше →
Total votes 64: ↑52 and ↓12+40
Comments104

OTRS: LDAP аутентификация, авторизация и синхронизация (FreeIPA, AD)

Reading time19 min
Views22K
image

OTRS — система обработки заявок с открытым кодом (Open-source Ticket Request System), написанная на Perl.

Существует в двух вариантах:


Перечислю немного из того фукционала, который поддерживает эта система:

  • модуль ITSM (Service Level Management, Change Management, Configuration Management, CMDB)
  • адаптивный веб-интерфейс
  • API
  • SLA и сервисы
  • мультитенантность
  • эскалации
  • аутентификация: DB, LDAP, HTTPBasicAuth, Radius
  • поддержка MySQL, MariaDB, PostgreSQL, Oracle

И если искать в ней недостатки — так это непривычность интерфейса и сложность в настройке. Под катом — об основах авторизации (группы, RBAC, поддержка нескольких компаний-клиентов), аутентификации и синхронизации метаданных (ФИО, телефона и прочего), используя различные каталоги LDAP
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments3

Разработка гибридных PHP/Go приложений с использованием RoadRunner

Reading time18 min
Views23K
Классическое PHP-приложение — однопоточность, тяжелая загрузка (если вы, конечно, не пишите на микрофреймворках) и неизбежная смерть процесса после каждого запроса… Такое приложение тяжелое и медленное, но мы можем дать ему вторую жизнь гибридизацией. Чтобы ускорить — демонизируем и оптимизируем утечки памяти, чтобы добиться большей производительности — внедрим собственный сервер РНР-приложений RoadRunner на Golang, чтобы добавить гибкости — упростим PHP-код, расширим стек и разделим ответственность между сервером и приложением. По сути, заставим наше приложение работать, как если бы мы писали его на Java или другом языке.

Благодаря гибридизации ранее медленное приложение перестало страдать 502 ошибками под нагрузками, уменьшилось среднее время ответа на запросы, производительность увеличилась, а деплой и сборка стали проще за счет унификации приложения и избавления от лишней обвязки в виде nginx + php-fpm.


Антон Титов (Lachezis) — технический директор и соучредитель SpiralScout LLC с опытом активной коммерческой разработки на PHP в 12 лет. Последние несколько лет активно внедряет Golang в стек разработки компании. Об одном из примеров Антон рассказал на PHP Russia 2019.
Total votes 46: ↑44 and ↓2+42
Comments3

Установка и настройка Sonata Admin на Symfony 4

Reading time9 min
Views21K


Приветствую всех. В данной статье поговорим об Symfony 4 и Sonata Admin.


В процессе установки я столкнулся с массой неточностей в документации и сама документация была раскидана по нескольким местам. Здесь я рассмотрю весь процесс, начиная от создания проекта и заканчивая авторизацией вместе с аутентификацией.


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

Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments25

Раздаем файлы с Google Drive посредством nginx

Reading time4 min
Views13K

Предыстория


Так уж случилось, что нужно мне было где-то хранить более 1.5тб данных, да еще и обеспечить возможность скачивания их обычными пользователями по прямой ссылке. Поскольку традиционно такие объемы памяти идут уже на VDS, стоимость аренды которых не слишком вкладывается в бюджет проекта из категории «от нечего делать», а из исходных данных у меня был VPS 400GB SSD, куда при всем желании 1.5тб картинок без lossless сжатия поместить не удастся.

Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments25

Курс лекций «Основы цифровой обработки сигналов»

Reading time12 min
Views180K
Всем привет!

Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе познания этой области. В связи с этим я решил написать краткий интерактивный курс по цифровой обработке сигналов и выложить его в открытый доступ.

Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.


Читать дальше →
Total votes 100: ↑100 and ↓0+100
Comments97

Управляем асинхронностью в PHP: от промисов к корутинам

Reading time7 min
Views18K


Что такое асинхронность? Если кратко, то асинхронность означает выполнение нескольких задач в течение определенного промежутка времени. PHP выполняется в одном потоке, что означает, что в любой момент времени может выполняться только один фрагмент PHP-кода. Это может показаться ограничением, но на самом деле предоставляет нам большую свободу. Нам в итоге не приходится сталкиваться со всей той сложностью, которая связана с многопоточным программированием. Но с другой стороны, здесь есть свой набор проблем. Нам приходится иметь дело с асинхронностью. Нам нужно как-то управлять ей и координировать ее.


Представляем перевод статьи из блога бэкенд-разработчика Skyeng Сергея Жука.

Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments2

Symfony CLI — новый инструмент для локальной разработки

Reading time5 min
Views14K

В декабре 2018-го, на конфиренции Lisbon SymfonyCon Фабиэн Потансье — создетель фреймворка Symfony представил некий symfony.phar — инструмент для быстрого создания Symfony-приложений на основе официальных шаблонов проекта: skeleton, website-skeleton или demo. Также он позволяет запускать локальный веб-сервер для разработки.


Затем инструмент был переписан на языке Golang, что позволило реализовать много дополнительных возможностей таких, как поддержка https протокола для локального веб-сервера, тесная интеграция с SymfonyCloud и прочее! Приглашаю тебя, уважаемый читатель, познакомиться с этим инструментом подробнее, поскольку он работает не только в контексте фреймворка Symfony.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments20

Микрофреймворк slim

Reading time21 min
Views32K

25 апреля 2019 года свет увидела новая мажорная alpha-версия микрофреймворка Slim, а 18 мая она выросла до beta. Предлагаю по этому поводу ознакомиться с новой версией.


Под катом:


  • О новшествах фреймворка
  • Написание простого приложения на Slim-4
  • О дружбе Slim и PhpStorm
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments29

PHP в 2019: лучше, чем вы о нём думаете

Reading time6 min
Views31K


Помните некогда популярную публикацию: «PHP: фрактал плохого дизайна»? Я, когда впервые её прочитал, работал в дурацком месте с большим количеством устаревших PHP-проектов. Она заставила меня задуматься: должен ли я уйти и заняться чем-то совершенно другим, нежели программирование.

К счастью для меня, вскоре я смог сменить место работы, и, что более важно, PHP сумел «немного» развиться со времён 5.* версий. А сегодня посредством этой статьи я хочу обратиться к людям, которые либо больше не программируют на PHP, либо застряли в устаревших проектах.
Читать дальше →
Total votes 95: ↑86 and ↓9+77
Comments99

Haxe и PHP: статическая типизация, стрелочные функции, метапрограммирование и многое другое

Reading time9 min
Views8.2K

Привет, Хабр! Предлагаю вашему вниманию перевод доклада Александра Кузьменко с прошедшей недавно (14-15 июня) конференции Hong Kong Open Source Conference 2019.


image


До того, как присоединиться к Haxe Foundation в качестве разработчика компилятора Haxe, Александр около 10 лет профессионально занимался программированием на PHP, так что он знает предмет доклада.

Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments25

Как настроить HTTPS — поможет SSL Configuration Generator

Reading time4 min
Views9.2K
Рассказываем об инструменте для конфигурации SSL, который разработали в Mozilla.

Под катом — о его возможностях и других утилитах для настройки сайтов.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments1

Новое в PHP 7.4

Reading time5 min
Views79K
Новая версия PHP хоть и является минорной, но уже несёт множество новых, без преувеличения, крутых возможностей как для синтаксиса языка, так и для его производительности. Список новшеств не окончательный, но основные изменения уже внесены и приняты. Релиз планируется на декабрь 2019 года.
 

 
Ключевые изменения грядущей версии:

  • Типизированные свойства классов
  • Предзагрузка для улучшения производительности
  • Стрелочные функции для короткой записи анонимных функций
  • Присваивающий оператор объединения с null (??=)
  • Ковариантность/контравариантность в сигнатурах унаследованных методов
  • Интерфейс внешних функций, открывающий новые возможности для разработки расширений на PHP
  • Оператор распаковки в массивах

Подробнее об этих и других изменениях читайте под катом.
Узнать обо всех изменениях
Total votes 74: ↑71 and ↓3+68
Comments99

Шпаргалки по безопасности: REST

Reading time5 min
Views26K


REST — чрезвычайно популярная архитектура веб-приложений. Для вызова функций на сервере используются обычные HTTP-запросы с задаваемыми параметрами (для структуризации параметров обычно используют JSON или XML), при этом, строгого стандарта для REST-архитектуры не существует, что добавляет ей гибкости (и, конечно, немного хаоса).
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments9

Composer для самых маленьких

Reading time8 min
Views317K
Доброго дня.

Когда я первый раз разбирался с composer, я набросал для себя маленькую шпаргалку и теперь, спустя некоторое время представляю её на суд общественности в несколько доработанном виде.
Данная публикация актуальная для тех, кто в первый раз столкнулся с незаменимым менеджером пакетов для PHP.

Итак, Composer — менеджер пакетов для PHP.
Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments25

Встань и иди. Операции на позвоночнике: когда делать, чем опасно

Reading time13 min
Views163K
ТОП3 мифов про больную спину, которые мешают людям раз и навсегда решить свою проблему.

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

Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments88

Микросервисы на php и swoole для конвертации телеграм каналов в RSS

Reading time7 min
Views30K


В предыдущем посте я рассказал про то, как настроить и использовать php телеграм клиент madelineProto для парсинга постов. Но при использовании библиотеки я столкнулся с несколькими недостатками:

  • Долгая обработка запросов из-за авторизации телеграм клиента;
  • Неудобная настройка;
  • Проблемы с отдачей изображений из постов.

Поэтому решил создать два микросервиса на php для парсинга телеграм каналов, используя асинхронное расширение swoole. Теперь эти пакеты упрощают и ускоряют работу с telegram api (не путать с bot api) в нескольких моих проектах. Хочется поделится ими и услышать мнение других разработчиков.

Под катом расскажу об архитектуре, использовании разных областей видимости в swoole server и устранении последствий ошибок в сторонних библиотеках и внешних api. Ссылки на репозитории с исходным кодом и на тестовый сервер — в конце поста.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments13

Яндекс.Алиса и бот Telegram на PHP с единым функционалом

Reading time5 min
Views23K
Добрый день.

На тему Telegram-ботов статей очень много, а вот про навыки для Алисы мало кто пишет, а информации как сделать единого бота я вообще не нашел, поэтому решил поделиться своим опытом о том, как сделать простого бота Telegram и навык Яндекс.Алиса для сайта, имеющих единый функционал.
Читать дальше →
Total votes 29: ↑22 and ↓7+15
Comments18

Многопоточные вычисления в PHP: pthreads

Reading time5 min
Views99K

Недавно я попробовал pthreads и был приятно удивлен — это расширение, которое добавляет в PHP возможность работать с несколькими самыми настоящими потоками. Никакой эмуляции, никакой магии, никаких фейков — все по-настоящему.



Я рассматриваю такую задачу. Есть пул заданий, которые надо побыстрее выполнить. В PHP есть и другие инструменты для решения этой задачи, тут они не упоминаются, статья именно про pthreads.


Стоит отметить, что автор расширения, Joe Watkins, в своих статьях предупреждает, что многопоточность — это всегда не просто и надо быть к этому готовым.


Кто не испугался, идем далее.

Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments62
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity