Парсинг ресурсов при помощи Python

  • Python
  • 4 года назад

Хочу отметить, что работа над этой статьей ещё не закончена. Если у вас есть замечания или дополнение, добро пожаловать в комментарии.

Всегда сначала посмотрите предлагает ли сайт собственный API, RSS/Atom фиды также пригодятся.

Мы будем использовать две дополнительные библиотеки для Python.

Мы будем использовать библиотеку requests вместо urllib2, так как она во всех отношениях превосходит urllib2. Я мог бы долго это доказывать, но, как мне кажется, на странице этой библиотеки все сказано в одном абзаце:

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

HHVM, Nginx и Laravel

Так же как и во многих остальных статьях в своем блоге, я полагаю что у вас установлена Ubuntu 12.04 LTS в качестве сервера. Хотя установить систему можно и на Mac с помощью Brew (). Информация по установке HHVM на серверные машины, включая последние версии Ubuntu, можно найти здесь. Итак, начнем.

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

DateTime в PHP

  • PHP
  • 4 года назад

Начиная с версии 5.2 в PHP появился такой тип данных как DateTime. Попробуем в этой статье разобраться почему лучше использовать его вместо старых функций date() и time().

Функция date() используется для строкового отображения даты/времени. Функция принимает два параметра, 1-ый - формат возвращаемой строки, а второй - само значение даты. По умолчанию второй параметр принимает значение текущего момента времени, либо можно указать отметку времени в unix формате (timestamp).

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

Шаблоны проектирования в PHP : Фабрика

  • PHP
  • 4 года назад
  • 2/4

Фабрика (Factory) - один из наиболее часто применяемых шаблонов проектирования в программировании, обычно его используют в случае, когда во время исполнения программы необходимо выбрать один из взаимозаменяемых классов.

В целом, это удобный способ создания объектов. Фабрика (Factory) способна создавать объекты различных классов, при этом ей совсем необязательно знать тип объекта который она создает.

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

SSL сертификат для NGINX на Ubuntu 12

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

Следующие действия требуют root прав. Также нам понадобится установленный и настроенный сервер nginx. Установить его вы можете выполнив следующую команду:

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

Оптимизация настройки NGINX

NGINX - это быстродействующая замена медленному Apache2. Конечно, NGINX, как и любой другой веб-сервер требует корректной настройки для лучшей производительности.

  • Свежеустановленный и настроенный Debian 7 или Ubuntu 12 (13).
  • Установленный и настроенный NGINX сервер.
  • Понимание основ настройки Linux

Первые две переменные, которые необходимо настроить это рабочие процессы и рабочие соединения. Сначала разберемся за что они отвечают. worker_process - основа настройки и жизнедеятельности NGINX. Эта переменная указывает допустимое количество процессов привязанных к определенному IP адресу и порту. Обычно допускают один процесс на ядро. Указав большее значение, системе мы не навредим, но, скорее всего, остальные процессы просто будут простаивать.

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

Symfony 2 Joboard : Маршрутизация

Если вы обратите внимание на URL домашней страницы Joboard, то в адресной строке вы увидите: /job/1/show. Наверняка, вы привыкли видеть адреса в формате /job.php?id=1. Так как же Symfony определяет какое действие необходимо выполнить исходя из заданного адреса? Почему переменная $id находится там, где должно указываться действие, а не параметр? Попробуем разобраться.

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

Работаем с тегами в Symfony 2

  • PHP
  • 4 года назад

Определённые сервисы ядра Symfony 2 зависят от тегов, по которым определяют: какие сервисы должны быть загружены, быть оповещены о наступлении события либо применены по другому назначению. Например, Twig использует twig.extension для загрузки расширений.

Но теги можно использовать и по своему назначению в собственных бандлах. К примеру, ваш сервис работает с какой-либо коллекцией данных или реализовывает “цепочку” действий, которые выполняются последовательно до наступления положительного результата. В этой статье я приведу пример “транспортной цепочки” - коллекция классов реализующих \Swift_Transport. Используя такую цепочку, Swift mailer (служба отправки электронных писем в Symfony2) использует несколько способов отправки писем, до тех пор пока письмо не будет отправлено. В данной статье уделено основное внимание внедрению зависимостей в проект.

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