Pull to refresh
78
0
Александр @Alex10

Full-stack Web Developer

Send message

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

Reading time17 min
Views24K

В этом материале постарался описать создание браузерного 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 и просто игр, прошу под кат.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments5

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

Reading time19 min
Views26K

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

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments25

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

Reading time4 min
Views35K

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


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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments22

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

Reading time18 min
Views54K

Года полтора назад встал вопрос совместимости написанного кода с 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

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments12

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

Reading time4 min
Views17K

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

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

Reading time25 min
Views28K


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

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

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

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

Читать дальше
Total votes 10: ↑10 and ↓0+10
Comments7

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

Reading time40 min
Views66K

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


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


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

Читать дальше
Total votes 47: ↑42 and ↓5+37
Comments14

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

Reading time17 min
Views78K


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

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

Далее подробней с небольшими примерами
Total votes 54: ↑53 and ↓1+52
Comments18

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

Reading time3 min
Views38K


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

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

Reading time7 min
Views57K


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

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

Далее прошу под кат
Total votes 47: ↑46 and ↓1+45
Comments7

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

Reading time8 min
Views27K


Недавно потребовалось написать небольшой видеоредактор с веб-интерфейсом.
До этого изредка доводилось пользоваться командами типа
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, о чём и было вышеупомянутое предупреждение.

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

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

Reading time5 min
Views61K


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

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

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

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

Reading time5 min
Views67K

Введение


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

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

Reading time1 min
Views12K
Вслед за Россией и Украина наконец-то получила кириллический домен .укр. Международная корпорация ICANN, управляющая адресным пространством в интернете, на заседании совета директоров 28 февраля приняла решение делегировать Украине домен .укр.

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

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

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

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

Reading time7 min
Views6.7K
Часть 1.
Часть 2.

Введение.


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

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

Reading time5 min
Views4.2K
Часть 1.

Введение.


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

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

Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments8

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

Reading time3 min
Views15K

Введение


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

Читать дальше →
Total votes 42: ↑35 and ↓7+28
Comments28

Information

Rating
Does not participate
Registered
Activity