antonio's blog

libcapn 1.0.0 beta

| Comments

Обновил сегодня библиотеку libcapn. libcapn - С/C++ библиотека для отправки Push уведомлений на iOS и Mac OS X устройства.

Основные изменения:

  • для взаимодействия с Apple Push Notifications Service используется расширенный протокол
  • реализован Feedback Service
  • появилась возможность задавать пароль для приватного ключа
  • токены устройств теперь можно привязывать к уведомлению. Т.е можно задать токены устройств на которые будет отправлено данное сообщение. Если токены заданы и для apn_ctx, и для apn_payload_ctx, то уведомления будут доставлены только на устройства заданные для apn_payload_ctx. Иначе на все устройства заданные для apn_ctx

php-apn - PHP расширение для отправки Apple Push уведомлений

| Comments

Данное расширение это обвязка над библиотекой libcapn. Используя данное расширение вы можете легко отправлять Apple Push Уведомления на iOS и OS X устройства.

Для работы расширения необходим PHP 5.3 или выше и установленная библиотека libcapn.

Код расширения опубликован на GitHub - https://github.com/adobkin/php-apn. Страница проекта - http://libcapn.org/php-apn. Документация по функциям - http://libcapn.org/php-apn/doc

Скачать исходные коды в архиве и скопмилированное расширение для Windows вы можете с FTP сервера

libcapn - C библиотека для отправки Apple Push уведомлений

| Comments

Для одного из моих проектов возникла потребность в отправке Apple Push уведомлений на iOS и OS X устройства. Взаимодействовать с Apple Push Notification Service необходимо было как из приложения на C (демон занимающийся отправкой сообщений), так и из PHP скриптов.

Для решения задачи была написана небольшая C библиотека. Которая стала отдельным небольшим проектом - libcapn. Сайт проекта - http://libcapn.org.

Создание расширения для PHP

| Comments

Решил восстановить справедливость и написать пост о создании простого расширения для PHP. Этот пост должен был быть первым в серии постов о расширениях PHP которые я начал писать еще 2011 году.

Если вдруг вы не в курсе, расширения для PHP пишутся на C/С++. Мы будем писать на старом добром C.

Если вы еще не сталкивались с необходимостью написания нативного расширения для PHP, то вы вероятнее всего зададитесь вопросом: “Когда возникает необходимость написать нативное расширение для PHP на C/С++?”. Есть несколько причин:

  • Необходимо сделать обвязку к системной С/С++ библиотеке, чтобы использовать ее функционал в PHP сценариях. Пожалуй это основная причина
  • Необходимо оптимизировать существующий код написанный на PHP, увеличив его производительность
  • Необходимо реализовать некоторые закрытые алгоритмы, код которых не должен быть доступен третьим лицам. Данная причина относительно редкая, но все же встречается

Создадим простое расширение, реализующие три простые функции, доступные в пользовательском пространстве.

Использование библиотеки dwavdapi для интеграция с сервисом Dr.Web AV-Desk

| Comments

В данном посте приведены несколько примеров использования библиотеки libdwavdapi, которую компания Доктор Веб выпустила в прошлом году. Библиотека dwavdapi предназначена для автоматизации и упрощения процесса интеграции с сервисом Dr.Web AV-Desk. Библиотека реализует весь функционал, заложенный в протоколе Dr.Web AV-Desk XML. Библиотека написана на C.

Нам понадобится установить два пакета: libdwavdapi и libdwavdapi-devel, скачать их для своей системы можно с http://secure.av-desk.com. Сейчас есть готовые пакеты для Linux (rpm и deb), Mac OS и FreeBSD

PHP + Интеграция с Dr.Web AV-Desk

| Comments

В конце прошлого года компания Доктор Веб выпустила набор библиотек для интеграции приложений и сервисов партнеров с интернет-сервисом Dr.Web AV-Desk.

Использование библиотек упрощает и ускоряет процедуру интеграции сторонних продуктов — биллинговых систем и личных кабинетов провайдеров, а также других приложений партнеров компании «Доктор Веб» с сервером Dr.Web AV-Desk 6.x.

Среди выпущенных библиотек есть расширение для PHP - php-avdesk.
php-avdesk - это обертка над библиотекой libdwavapi, позволяющая взаимодействовать с сервером Dr.Web AV-Desk из php скриптов. Расширение совместимо с PHP 5.3, PHP 5.4 и PHP 5.5 beta1

Код данного расширения был опубликован в этом году на GitHub

Установка раширения

Перед сборкой расширения нам необходимо установить пакеты-зависимости:

Далее клонируем репозиторий с GitHub:

1
git clone https://github.com/DoctorWebLtd/php-avdesk.git

На данный момент в репозитории существует две ветки:

  • 1.0.x - текущая, стабильная версия. Поддерживает работу с Dr.Web AV-Desk 6.0.x и 6.1.x. Для работы требуется библиотека dwavdapi версии 2.0.x

  • master - разрабатываемая версия. Поддерживает работу с Dr.Web AV-Desk 6.0.x, 6.1.x и 6.2.x. Для работы требуется библиотека dwavdapi версии 2.1.x

Dja — шаблоны Django в PHP

| Comments

Dja — шаблонизатор для PHP.

Сейчас dja представляет из себя рабочий порт, в котором реализовано большинство тегов и фильтров, представленных в оригинале. Вдовесок к этому в упрощенном и/или модифицированном виде портированы URL-диспетчер, механизм интернационализации и менеджеры кэширования, что, теоретически, позволяет использовать эти уже готовые решения, вместо реализации своих. Для замечательного Yii-каркаса в комплекте с dja идёт базовый класс контроллеров, позволяющий использовать шаблонизатор в yii-приложениях.


Несмотря на рабочесть, у dja имеются вполне закономерные для порта проблемы: потребление памяти и пропорционально (если повар нам не врёт) растущее время разбора с увеличением сложности шаблона. Со вторым можно худо-бедно бороться, применяя кэширование из комплекта dja, а вот с первым, пожалуй, уже ничего существенного сделать не удасться — правда, всегда есть робкая надежда на APC.

Скачать GitHub

Документация: https://dja.readthedocs.org/en/latest/
Автор шаблонизатора: idle sign

NSNotificationCenter и потоки

| Comments

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

Допустим в методе, который выполняется при получении уведомления, есть потоко небезопасный код, например взаимодействие с UI. Если отправка уведомления произошла не в основном потоке, то метод также выполнится не в основном потоке. А так как работать с UI можно только в основном потоке, то мы получим падение приложения.

Читать дальше

Добавляем переменные экземпляра к классу с помощью категории

| Comments

Бывает к существующему классу необходимо добавить переменные экземпляра. Для решения данной задачи можно воспользоваться связанными ссылками, которые появились в Mac OS X 10.6.

Рассмотри создание переменных экземпляра на примере. В примере мы создадим категорию расширяющую класс NSString, у категории будет одно свойство — MyProperty, значение которого мы будем сохранять в объекте с помощью связанной ссылки

Читать дальше