Как стать автором
Обновить
77
0
Александр @Alex10

Full-stack Web Developer

Многопользовательский онлайн-шутер на WebGL и asyncio, часть вторая

Время на прочтение 17 мин
Количество просмотров 23K
Python *JavaScript *NoSQL *HTML *WebGL *

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

Введение
1. Структура игры
2. Импорт моделей и blender
3. Подгрузка моделей в игре с babylon.js и сами модели
4. Передвижения, миникарта и звуки игры в babylon.js
5. Вебсокеты и синхронизация игры
6. Игроки и их координация
7. Балансировка игроков по комнатам и объектный питон
8. Asyncio и генерация поведения бота
9. Nginx и проксирование сокетов
10. Асинхронное кэширование через memcache
11. Послесловие и RoadMap

Всех кому интересна тема асинхронных приложений в Python3, WebGL и просто игр, прошу под кат.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 5

Релиз mongodb 3.2 немного подробностей

Время на прочтение 19 мин
Количество просмотров 25K
NoSQL *MongoDB *Big Data *
Туториал

На днях вышел новый стабильный релиз mongodb. В этой версии был добавлен ряд нововведений таких как новый GUI для визуальной работы с mongodb, LEFT JOIN, валидация документа и т.д. некоторые из этих свойств мы и рассмотрим на небольших примерах ниже.

Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 25

Асинхронный Python 3.5 и Mongodb

Время на прочтение 4 мин
Количество просмотров 33K
Python *NoSQL *MongoDB *
Туториал
Перевод

Это достаточно вольный перевод статьи об основных новшествах асинхронного драйвера для mongodb используемого в tornado. Основной мотив, который послужил для написания этого перевода — новшества, появившиеся в этой версии, такие как поддержка asyncio, async, await и Python 3.5. Сама статья не сколько перечисление новшеств, сколько лаконичные примеры асинхронной работы с MongoDB.


Введение
asyncio
aggregate
Python 3.5
async and await

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 22

Написание framework на asyncio, aiohttp и мысли про Python3 часть первая

Время на прочтение 18 мин
Количество просмотров 53K
Разработка веб-сайтов *Python *Программирование *NoSQL *MongoDB *
Туториал

Года полтора назад встал вопрос совместимости написанного кода с Python3. Поскольку уже стало более менее очевидно, что развивается только Python3 и, рано или поздно, все библиотеки будут портированы под него. И во всех дистрибутивах по умолчанию будет тройка. Но постепенно, по мере изучения, что нового появилось в последних версиях Python мне все больше стал нравится Asyncio и, скорее, даже не Acyncio а написанный для работы с ним aiohttp. И, спустя какое то время, появилась небольшая обертка вокруг aiohttp в стиле like django. Кому интересно что из этого получилось прошу под кат.


Вторая часть


Введение
Краткий обзор других фреймворков на базе aiohttp
1. Структура
2. aiohttp и jinja2
3. aiohttp и роуты
4. Статика и GET, POST параметры, редиректы
5. Websocket
6. asyncio и mongodb, aiohttp, session, middleware
7. aiohttp, supervisor, nginx, gunicorn
8. После установки, о примерах.
9.RoadMap

Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 12

Что нового в Babylon.js

Время на прочтение 4 мин
Количество просмотров 17K
Разработка веб-сайтов *JavaScript *HTML *WebGL *
Перевод

Недавно команда разработчиков babylon.js выпустила новую версию одноименной библиотеки (v2.1) с множеством усовершенствований, а также новых инструментов для создания 3D в браузере, уже имея опыт создания таких игр как Flight Arcade и Assassin’s Creed Pirates . В этой статье будет рассказано о некоторых из основных обновлений, а также будут даны ссылки на демки и песочницу, чтобы можно было самостоятельно попробовать.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 2

Примеры использования MongoDB в e-commerce (часть 2)

Время на прочтение 25 мин
Количество просмотров 26K
Разработка веб-сайтов *Python *NoSQL *MongoDB *Разработка под e-commerce *
Туториал


[ Первая часть ]

В этом посте будет то, что не поместилось в первую часть. Это некоторые операторы, которые есть в aggregation framework и достаточно вольный перевод трех статей из раздела экоситема на сайте со справкой к MongoDB, описывающих некоторые случаи применения для интернет-коммерции.

Случаи использования разделены там на восемь статей, которые условно можно разделить на три группы. Мне показались самыми интересными для перевода три материала, связанные с e-commerce.

  1. Операторы в aggregation framework
  2. Каталог продуктов
  3. Корзина и управления остатками на складе
  4. Иерархия категорий

Читать дальше
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 7

Шпаргалка по mongodb: e-commerce, миграция, часто применяемые операции и немного о транзакциях

Время на прочтение 40 мин
Количество просмотров 63K
Python *Алгоритмы *NoSQL *MongoDB *Разработка под e-commerce *
Туториал

Этот пост — небольшая шпаргалка по mongodb и немного длинных запросов с парой рецептов. Иногда бывает удобно когда какие-то мелочи собраны в одном месте, надеюсь, каждый, кто интересуется mongodb, найдет для себя что-то полезное.


Не хотелось бы, чтобы пост воспринимался в ключе холиваров на тему SQL vs. NOSQL И так понятно что везде есть свои плюсы и минусы, в данном случае это просто где-то немного справки, где-то немного примеров из того, с чем приходилось сталкиваться. Примеры на mongo shell и на python.


  1. Миграция в на новые версии в mongodb
  2. Запросы сравнения и логические
  3. Полнотекстовый поиск в Mongodb, regexp, индексы и пр.
  4. Атомарные операторы (модифицирующие данные )
  5. Немного о транзакциях в Mongodb
  6. Агрегационный фреймворк и JOIN-ы в Mongodb
  7. Примеры
  8. Небольшая песочница на Python

Читать дальше
Всего голосов 47: ↑42 и ↓5 +37
Комментарии 14

Игровой мир WebGL или Three.js vs Babylon.js

Время на прочтение 17 мин
Количество просмотров 76K
Разработка веб-сайтов *JavaScript *Разработка игр *HTML *WebGL *
Туториал


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

Введение
1. Базовые элементы
2. Группировка
3. Движение
4. Частицы
5. Анимация — 1
6. Анимация — 2
7. Простой ландшафт
8. Статические коллизии
9. Динамические коллизии
10. Импорт моделей
11. Встраивание физических движков
12. Тени, туман
Продолжение — многопользовательский шутер

Далее подробней с небольшими примерами
Всего голосов 54: ↑53 и ↓1 +52
Комментарии 18

Реанимация серверов Ubuntu на Hetzner или немного полезных команд

Время на прочтение 3 мин
Количество просмотров 37K
Настройка Linux *Серверное администрирование *
Туториал


Этот небольшой пост-шпаргалка предназначен для тех у кого внезапно в ходе неудачного эксперимента или обновления перестал пинговаться сервер, отвалился ssh и прочее. Проще говоря он о восстановлении сервера после обновлений, взломов и тому подобного. По моим ощущениям последнее бывает гораздо реже.
Так что кому интересна эта тема прошу под кат.
Всего голосов 45: ↑41 и ↓4 +37
Комментарии 13

Латентно-семантический анализ и поиск на python

Время на прочтение 7 мин
Количество просмотров 55K
Python *Алгоритмы *
Туториал


Недавно Google объявил, что он переходит от поиска по ключевым словам к полностью семантическому поиску. Не знаю, насколько круты алгоритмы поиска у мировых гигантов, но поиск в маленькой песочнице получается довольно семантическим. Конечно, с поиском по более менее крупным объёмам данных уже не всё так радужно, готовить слова надо очень тщательно, но тем не менее.

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

Далее прошу под кат
Всего голосов 47: ↑46 и ↓1 +45
Комментарии 7

Создание видео редактора — полезные рецепты avconv (ffmpeg)

Время на прочтение 8 мин
Количество просмотров 26K
Работа с видео *
Туториал


Недавно потребовалось написать небольшой видеоредактор с веб-интерфейсом.
До этого изредка доводилось пользоваться командами типа
ffmpeg -i file.avi file.mp3

в основном для конвертации из одного формата в другой. Все всегда было более менее гладко и сложно было представить, сколько на самом деле существует всяких нюансов для работы с видео и аудио.
Но начнем с начала. С некоторых пор моя ubuntu начала выдавать:
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

В целом, пока это использовалось по-мелочам, это было не особо важно, но закладывать уже устаревающую фичу в проект как-то «не оно». Пришлось гуглить что к чему и выяснилось, что проект ffmpeg некоторое время назад раскололся и часть разработчиков занялась созданием библиотеки libav, которая и включена в настоящее время в ubuntu по-умолчанию. Разумеется, совместимость передовых фич была принесена в жертву первой. Заодно и с переименованием проекта исполняемый файл ffmpeg был переименован в avconv, о чём и было вышеупомянутое предупреждение.

Под катом небольшая выжимка основных фич, которые пригодились.
Читать дальше →
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 13

Переход с bootstrap 2 на bootstrap 3

Время на прочтение 5 мин
Количество просмотров 61K
CSS *HTML *


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

На днях вышла третья версия этого замечательного фреймворка, и, естественно, сразу захотелось посмотреть, как будут выглядеть сделанные на второй версии проекты, если просто поменять 2-ю на 3-ю. Оказалось что никак. Всё расползлось, разъехалось и кое-что перестало работать.

После чего захотелось всё быстренько поправить. И вот, что из этого получилось, читаем дальше.
Читать дальше →
Всего голосов 72: ↑61 и ↓11 +50
Комментарии 25

Webrtc, Peer Connection — создание полноценного видео чата в браузере

Время на прочтение 5 мин
Количество просмотров 65K
Разработка веб-сайтов *JavaScript *HTML *
Туториал

Введение


Webrtc на хабре уже неоднократно упоминался, хотелось бы рассказать немного про техническую часть реализации и осветить создание небольшого видео чата. Хочу сразу оговорится, что реализация webrtc постоянно меняется, в том числе названия функций api, их параметры.
Всем, кому просто хотелось бы посмотреть сразу как это все работает, сюда: apprtc.appspot.com демка от гугла все что нужно — это перейти по ссылке и послать её еще кому-нибудь уже с номером комнаты. В конце нужно поменять цифры если окажется что комната переполнена. Кому интересно как это все работает добро пожаловать под кат
Читать дальше →
Всего голосов 47: ↑43 и ↓4 +39
Комментарии 33

Украина получила кириллический домен.укр

Время на прочтение 1 мин
Количество просмотров 12K
IT-стандарты *
Вслед за Россией и Украина наконец-то получила кириллический домен .укр. Международная корпорация ICANN, управляющая адресным пространством в интернете, на заседании совета директоров 28 февраля приняла решение делегировать Украине домен .укр.

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

Будет возможна регистрация как на русском, так и на украинском языках. Стоимость регистрации пока не запланирована. Ожидается, что в доменной зоне .укр будет зарегистрировано до 200 тыс. доменных имен.

Заявка на выдачу Украине кириллического домена подавалась еще осенью 2009 года, и уже весной 2010 года должна была открыться регистрация доменов в зоне .укр, но процесс немного затянулся.
Читать дальше →
Всего голосов 46: ↑29 и ↓17 +12
Комментарии 56

Django своими руками часть 3: Роуты, отладка, middleware, bottle, beaker

Время на прочтение 7 мин
Количество просмотров 5.9K
Python *
Часть 1.
Часть 2.

Введение.


В этой статье речь пойдет о тонкостях реализации wsgi приложения. Мы не будем рассматривать написание сервера приложений с нуля, поскольку есть масса микрофреймворков которые это уже делают, не говоря о крупных. Для этих целей был выбран bottle. В основном за его минималистичность. Также мы поговорим о роутах, статике, и сессиях которыми заведовать будет beaker.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 0

Django своими руками часть 2: Интернационализация

Время на прочтение 5 мин
Количество просмотров 4K
Python *
Часть 1.

Введение.


Изначально хотелось написать побольше упомянув в статье роуты и борьбу с ошибками, но тема интернационализации довольно обширна оказалась поэтому было решено посвятить пост исключительно ей. Мы будем пользоваться распространенным инструментом gettext в рамках фреймворка.

Все переводы можно разделить на две части:
a) Те что непосредственно в файлах с расширением .py — с ними все просто.
b) И те что в шаблонах — к ним придется написать небольшой велосипед :).
Ну и далее нужно автоматизировать процесс управления переводами.
Итак добро пожаловать под кат.

Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 8

Django своими руками часть 1: Собираем шаблоны для jinja2

Время на прочтение 3 мин
Количество просмотров 15K
Python *
Из песочницы

Введение


В этом посте хотелось бы описать создание небольшого фреймворка с системой плагинов как django. Только с использованием внешних компонентов. Jinja2 для шаблонов, bottle для получения переменых среды, вместо ORM будет использоваться pymongo, а сессиями будет заниматься beaker.
В первой части хочу рассказать как удобно подсоединить Jinja2 чтоб шаблоны можно было собирать из разных папок (читай плагинов) и кешировать их.
Также в следующей части хотелось бы рассказать как подключить к шаблонам gettext и автоматизировать их перевод.

Читать дальше →
Всего голосов 42: ↑35 и ↓7 +28
Комментарии 28

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность