Функции pack и unpack. Работа с бинарными данными.


Вероятно большинство веб-программистов никогда не работали напрямую с бинарными данными из php.

И так получилось не только потому, что, чаще всего бинарную обработку берут на себя разнообразные расширения или библиотеки. Часто это связано ещё и с тем, что информации в интернете не очень много, а та что есть — сложна для восприятия и далека от потребностей конкретного разработчика.
Читать далее

Сокеты — введение


Ещё один вид транспорта в unix системах, про который я пока не успел ничего рассказать — это сокеты.

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

Читать далее

Принимаем аргументы из командной строки

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

Консольные программы для работы с ipc функциями

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

Так как эти функции из php только транслируются на уровень ядра системы, поэтому многие инструменты уже разработаны и служат системным программистам верой и правдой уже много лет :-)
Читать далее

Демоны, shared memory и семафоры

Итак, продолжим тему системного программирования на php.

Мы уже научились работать с очередями, по которым можно пересылать небольшие системные сообщения, и наверняка, столкнулись с задачей передавать большие объёмы данных. В наших любимых системах типа System V уже давно решена задача быстрой передачи и сохранения больших данных в памяти. И этот механизм называется Shared Memory.

Читать далее

Демоны — очереди сообщений

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

В мире unix, существует немыслимое множество способов передать команду или сообщение от демона к веб-скрипту и наборот. Но сейчас я хочу рассказать только про очереди сообщений — «System V IPC Messages Queues».
Читать далее

Демоны — сигналы

Сигналы — введение

Итак, овладев навыками создания простейшего демона, нам нужно научить его принимать сигналы из внешнего мира.
Читать далее

Демоны — Основы

Введение

Сегодня я расскажу один удивительный факт:

Большинство веб-разработчиков ни разу в своей жизни не писали демонов. И не то что бы им это было не нужно, они просто никогда не задумывались о том что бы написать демона.
Читать далее

Jelly — Пишем сложные запросы

Все разработчики, рано или поздно, начинают понимать что стандартными средствами ORM библиотеки невозможно реализовать сложные и удобные запросы.

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

Модуль для простых миграций

В предыдущем посте я рассказывал о модулях миграций для Коханы 3. К сожалению ни один из модулей мне не понравился или по каким-то причинам не подошёл.

Сейчас же, я хочу представить свой форк модуля для миграций. Он основан на kohana-3-migrations. И получился сам по себе лёгкий и лишённый нескольких детских болезней своего родителя.

Итак, встречайте :) (он пока без нового названия и в экспериментальной ветке)

Вкратце, что он умеет:

  • Миграция сохраняется в виде обычной SQL-инструкции.
  • Инструкции UP и DOWN записываются в одном файле
  • В том же файле указывается описание миграции
  • Можно просмотреть список всех миграций
  • Накатывание и откат миграций теперь происходит ровно на один шаг
  • Появилось ключевое слово all для метода UP

Читать далее