Архив блога

VK приложение: начало социализации

VK приложение: миссия выполнима!

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

  • Дать доступ до страниц комикса пользователям соц.сети
  • Сделать удобную навигацию

Продолжить чтение

VKLiveJournalПоделиться!
Разделы: На службе у ТЕО | Tags: ,

Генерация картинок из текста на php (text2image)

Опубликовано автор 0 comment

text2image: чего не хватает в стандартной imageTtfText?

Всё выросло из банальной задачи: показ на сайте большого количества надписей, набранных нестандартными шрифтами. Для решения этой задачи существуют множества различных подходов, например, популярны CSS и Flash решения. После некоторого перебора, мной был выбран подход text2image. На php в библиотеке GD уже есть отличное решение: imagefttext. Но у него есть один критичный для меня недостаток: нельзя задать выравнивание для многострочного текста. Поэтому функция imagefttext была расширена. И стало возможным получать такие картинки:

Пример картинки полученной при помощи text2image
Продолжить чтение

Разделы: Велосипеды | Tags: ,

Запуск миллиона агентов в JADE — маленькие хитрости

Опубликовано автор 0 comment

Зачем запускать миллион агентов в JADE?

То что хорошо работает при «небольших» размерностях, может повести себя непредсказуемо при росте количества элементов. Например, мы хорошо знаем поведение системы, состоящей из ста или тысячи взаимодействующих элементов. И часто для исследователей встает большой вопрос: «как будет вести себя подобная система, состоящая уже из миллиона элементов?». Для ответа на него на помощь приходит имитационное моделирование, ну и мультиагентный подход как инструмент подобного моделирования. Системы представляющие из себя группу взаимодействующих элементов, по логике вещей должны хорошо подходить для программирования в виде мультиагентной системы (МАС), например JADE приложения.

Вот из этой задачи и вырастает потребность в запуске миллиона агентов, чтобы промоделировать поведение системы состоящей из миллиона взаимодействующих друг с другом элементов. Подойдя к решению этой задачи в качестве платформы у меня используется JADE, а ресурсы — это кластер одного НИИ (смотри ранние статьи). К сожалению честного решения получить не удалось, но в целом успех в решение задачи есть.

Продолжить чтение

Запуск JADE приложения на кластере.

Опубликовано автор 0 comment

Зачем нужен JADE на кластере?

На основе чудесной платформы для создания мультиагентных систем JADE, я разрабатываю систему имитационного моделирования. Во время моей работы появилась задача запуска масштабной модели, состоящей из нескольких десятков тысяч агентов. Модель было решено запускать в суперкомпьютерном центре одного НИИ. В распоряжении мне достался гибридный кластер c пиковой производительностью 85 Тфлопс (на серверах linux и java). Задачи ставятся в очередь через PBS.

Основная проблема в том, что для запуска распределенного JADE, необходимо сперва запустить главный контейнер, а затем подключать к нему остальные. В свою очередь процесс запуска задач на кластере, слабо подается управлению. И эта комбинация факторов в своё время поставила меня в тупик. Для решения проблем использовал подход, применяемый для запуска MPI программ.

Продолжить чтение

Разделы: Велосипеды | Tags: , , ,

Обновление службы в Windows на виртуалках-клонах

Опубликовано автор 0 comment

Windows Service или как я докатился до такой жизни?

Не хочется останавливаться на грустной истории, как я оказался перед архитектурой с несколькими Windows виртуалками , но мне досталось приложение которое имело следующую структуру:

Схема работы сервиса

Есть сайт которому для работы необходим сервис, написанный на C# и работающий под Windows. Этот сервис доступен на наружу по HTTP на реализует «типаREST» API. Сервис работает долго (в смысле время обработки одного запроса занимает значительное время), на одной машине может быть запущен в одном экземпляре, запросы обрабатывает последовательно. И из-за таких особенностей архитектура выросла в набор виртуалок-клонов, на которых работал сервис, а наружу они прикрывались linux узлом, на котором nginx выступал в качестве proxy балансировщика. А т.к. сервис (win-служба) — это «живое» приложение, в котором правятся баги, тюнится производительность и дорабатываются фичи, т.е. периодически появляются обновления. Руками разливать сервис по виртуалкам и перезапускать их — работа не благодарная, поэтому и родилась задача:
Необходима автоматическая система обновления сервиса. Для этого был написан загуглен batch скрипт.

Продолжить чтение

Разделы: Велосипеды | Tags: ,