Symfony 2 Joboard : API для партнёров

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

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

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

Шпаргалка по оптимизации индексирования в Elasticsearch

Планируете проиндексировать большой объем данных в Elastisearch? Или вы уже пытались это сделать, но производительность не обрадовала? В этой статье я приведу ряд советов по ускорению процесса индексирования с Elasticsearch. Одни я опробовал лично, про другие просто читал, но считаю, что они должны помочь. В любом случае, надеюсь, мои советы вам помогут.

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

Очередь сообщений и асинхронные задачи с помощью Celery и RabbitMQ

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

Асинхронное или неблокирующее выполнение операций - это такой метод исполнения, при котором некоторые задачи выполняются отдельно от основного потока программы. Такой подход даёт несколько преимуществ, одно из которых - непрерывная работа кода на стороне пользователя.

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

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

Создаём игру крестики-нолики на Kivy

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

Kivy - кросcплатформенный графический фреймворк на Python, направленный на создание новейших пользовательских интерфейсов даже для приложений, работающих с сенсорными экранами. Приложения, написанные на Kivy, могут работать не только на таких традиционных платформах как Linux, OS X и Windows, но также на Android, iOS и Rapberry Pi.

Это означает, что в разработке можно использовать различные библиотеки, как Requests, SQLAlchemy или даже NumPy. Допускается даже доступ к нативным мобильным API посредством дочерних проектов Kivy. Еще одна отличительная черта Cython - оптимизированный конвейерный обработчик OpenGL. При его помощи можно легко добиться сложных GPU эффектов, не прибегая к сложным конструкциям в коде.

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

Балансировка нагрузки для NGINX

Недавно я написал статью на тему как настроить распределение нагрузки на Nginx, включил в неё немного примеров кода, но, как мне показалось, не всем пользователям она показалась исчерпывающей (включая меня). Поэтому сегодня я приведу пример настройки из реального опыта.

Описание сети: 3 сервера / машины, работающие на базе Linux (Fedora, Rhel, Centos) .

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

Symfony 2 Joboard : RSS

Во время поиска работы вы, наверняка, хотели бы получать свежие вакансии сразу же после их публикации. Согласитесь, довольно неудобно каждый раз проверять сайт, поэтому мы создадим несколько новостных лент (RSS), чтобы наши пользователи всегда были в курсе событий.

При помощи шаблонов мы можем показать содержание страницы в любом формате. Хотя чаще всего они используются для генерации HTML, мы вполне можем применять шаблоны чтобы получить JavaScript, CSS, XML или любой другой формат.

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

Symfony 2 Joboard : Безопасность

Безопасность - это двухэтапный процесс, целью которого является запретить или разрешить доступ к ресурсу для определённых групп пользователей. Первый этап - аутентификация - система идентифицирует пользователя, исходя из предоставленных им данных. На втором этапе система переходит к авторизации и определяет, имеет ли пользователь доступ к определенным данным.

Настройки системы безопасности хранятся в файле app/config/security.yml. Изменим этот файл:

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

Режимы наложения CSS

  • CSS
  • 3 года назад

Если вам доводилось сталкиваться с программами для фотомонтажа (Adobe Photoshop, Pixelmator, GIMP), то вы, наверняка, знакомы с ними. Как можно понять из названия, режимы наложения определяют, как одно изображение накладывается на другое. В зависимости от выбранного режима, вы получите разный результат.

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

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