Coroutines в PHP и работа с неблокирующими функциями

Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент. В этой статье я […]

Задачки по MySQL

У вас есть 1 айфон и 1000 нокий и супер хайлод магазин. Что вы предпримите, чтобы 1 айфон продался только одному покупателю и не было продано больше 1000 нокий. Напишите структуру таблиц/таблицы, и как вы с ней/ними будете работать Создайте таблички, которые описывают книги, авторов, также сделайте табличку, которая описывает […]

Блиц

Что такое PHP? Чем отличается тип данных stdClass от array? В каких случаях оправдано использование Exception’ов? Перечислить магические функции php Почему стоит предпочитать композицию наследованию, а агрегацию композиции? Чем интерфейс отличается от абстрактного класса? Отличие анонимной функции от замыкания Чем отличается self от static? Какие фишки появсились в PHP(5.*/7.*)? Какими […]

Методологии разработки ПО

Водопад или Каскадная модель Каскадная модель ( waterfall model) — модель процесса разработки программного обеспечения, в которой процесс разработки выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки. Каскадная модель подходит для больших проектов с большими сроками, большими штатами, большим функционалом: сложные системы в банковской сфере, большие интернет-магазины, […]

Информационная безопасность

SQL-инъекция SQL-инъекция — это атака, направленная на веб-приложение, в ходе которой конструируется SQL-выражение из пользовательского ввода путем простой конкантенации (например, $query=»SELECT * FROM users WHERE id=».$_REQUEST[«id»]). В случае успеха атакующий может изменить логику выполнения SQL-запроса так, как это ему нужно. Чаще всего он выполняет простой fingerprinting СУБД, а также извлекает таблицы […]

Основы Linux

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

Операционные системы

Load Average Средние значения нагрузки в Linux — это «средние значения нагрузки системы», показывающие потребность в исполняемых потоках (задачах) в виде усреднённого количества исполняемых и ожидающих потоков. Это мера нагрузки, которая может превышать обрабатываемую системой в данный момент. Большинство инструментов показывает три средних значения: для 1, 5 и 15 минут:

Сетевые интерфейсы и протоколы

Взаимодействие приложения с веб сервером SAPI SAPI (Server Application Programming Interface ) — программный интерфейс позволяющий чему-то либо(интерпретатору PHP например) работать в качестве части web-приложения (а по сути — как часть веб-сервера), в частности — получить конкретные запросы от программы-сервера и отдавать данные (определяемые уже внутренней логикой, которую реализовал на […]