Обновить
1024K+

Python *

Высокоуровневый язык программирования

790,19
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Wargaming: тыл — фронту! Узнай что у твоего танка под капотом. Python Видео с DevConf 2014

Время на прочтение1 мин
Охват и читатели15K


Барышников Максим, Solutions Architect в Wargaming.net
«Очень развитая веб-часть» в реалиях Wargaming — это:
— более 40 отдельных проектов, над которыми работают более 200 человек (только в минской студии);
— 2 млн UDV только на сайте worldoftanks.ru в день релиза;
— подробные досье 60 млн. игроков — это только часть тех данных, которые мы предоставляем игрокам вне игры;
— Public API;
— Мировая война на Глобальной Карте.
Читать дальше →

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

Время на прочтение40 мин
Охват и читатели71K

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


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


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

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

Sexy primes, «медленный питон» или как я бился о стену непонимания

Время на прочтение10 мин
Охват и читатели31K
Многие разработчики, особенно принимающие активное участие в проектировании системы, наверняка сталкивались с подобной ситуацией: приходит коллега (разраб, проектлид или продажник не суть важно) с очередной идеей-фикс: давай перепишем все на java, scala и т.д. (любимое подставить).

Вот и мне в очередной раз «спустили» такую идею в немаленьком-таком legacy проекте. Не совсем переписать, не совсем все (ну в перспективе). В общем перейти с питона (а у нас там еще и тикль модульно присутствует) на scala. Речь пока шла о разработке новых модулей и сервисов, т.е. начинать с наименее привязанных к middle-level и front-nearby API's. Как я понял в перспективе возможно совсем.

Человек — не разработчик, типа нач-проекта и немного продажник (для конкретного клиента) в одном лице.

Я не то, чтобы против. И скалу уважаю и по-своему люблю. Обычно я вообще открыт ко всему новому. Так, например, местами кроме тикля и питона у нас появляются сервисы или модули на других языках. Так, например, мы переехали с cvs на svn, а затем на git (а раньше, давно-давно, вообще MS-VSS был). Примеров на самом деле масса, объединяет их один момент — так решили или как минимум одобрили сами разработчики (коллективно ли, или была группа инициаторов — не суть важно). Да и дело в общем в аргументах за и против.

Проблема в том, что иногда для аргументированной дискуссии «Developer vs. Anybody-Else» у последнего не дотягивает уровень знаний «материи» или просто невероятно сложно донести мысль — т.е. как-бы разговор на разных языках. И хорошо если это кто-нибудь типа software architect. Хуже, если имеем «беседу» например с чистым «продажником», огласившим например внезапные «требования» заказчика.

Ну почему никто не предписывает, например, плиточнику — каким шпателем ему работать (типа с зубцами 10мм клея же больше уйдет, давайте может все же 5мм. А то что там полы-стены кривущие никого не волнует). И шуруп теоретически тоже можно «закручивать» молотком, но для этого же есть отвертка, а позже был придуман шуруповёрт. Утрирую конечно, но иногда действительно напоминает такой вот абсурд.

Это я к тому, что инструмент в идеале должен выбирать сам разработчик или иметь в этом как минимум последнее слово — ему с этим инструментом работать или мучиться.

Но что-то я отвлекся. В моей конкретной истории аргументов — за scala, у человека как всегда почти никаких.
Хотя я мог бы долго говорить про вещи, типа наличие разрабов, готовые наработки, отточенную и отлаженную систему и т.д. и т.п. Но зацепился за его «Питон очень медленный». В качестве примера он в меня кинул ссылкой на Interpreting a benchmark in C, Clojure, Python, Ruby, Scala and others — Stack Overflow, которую он даже до конца не прочитал (ибо там почти прямым текстом есть — не так плохо все с питоном).

Имелось ввиду именно вот это (время указано в секундах):
  Sexy primes up to:        10k      20k      30k      100k
  ---------------------------------------------------------
  Python2.7                1.49     5.20    11.00       119     
  Scala2.9.2               0.93     1.41     2.73     20.84
  Scala2.9.2 (optimized)   0.32     0.79     1.46     12.01

Читать дальше →

Samba4 — использование Python Scripting Interface

Время на прочтение17 мин
Охват и читатели21K
Samba4 имеет встроенный интерфейс на Python. Многие утилиты (samba-tool, например) полностью реализованы на Python с применением этого интерфейса.

Все, что делалось из LDAP-интерфейса, можно сделать на Samba 4 Python Scripting. Преимущества — файловый доступ, значит высокая скорость, некоторые фичи, которых нет в LDAP. Например, можно взять хэш паролей пользователей из одной базы и перекинуть в другую. Да и самих пользователей с их SID-ами, паролями и всем прочим перекинуть в другой домен (без заморочек с SID-history).
Читать дальше →

Как за полгода разработать многопользовательскую 3D-игру без художников, дизайнеров и моделлеров

Время на прочтение3 мин
Охват и читатели48K


Привет, Хабр!
Историй о разработке игр было немало, сегодня я попробую вкратце рассказать нашу.

Мир есть текст — Жак Деррида
Игра есть словарь — a11aud

Читать дальше →

Пример векторной реализации нейронной сети с помощью Python

Время на прочтение14 мин
Охват и читатели51K
В статье речь пойдет о построение нейронных сетей (с регуляризацией) с вычислениями преимущественно векторным способом на Python. Статья приближена к материалам курса Machine learning by Andrew Ng для более быстрого восприятия, но если вы курс не проходили ничего страшного, ничего специфичного не предвидится. Если вы всегда хотели построить свою нейронную сеть с преферансом и барышням векторами и регуляризацией, но что то вас удерживало, то сейчас самое время.

Данная статья нацелена на практическую реализацию нейронных сетей, и предполагается что читатель знаком с теорией (поэтому она будет опущена).
Читать дальше →

Исследование защиты Wing IDE

Время на прочтение9 мин
Охват и читатели31K


Доброго здравия! Не удивлюсь, что Вы раньше даже не слышали об этой программе. Как и я, до того дня, когда мне пригодился Python Debugger. Да, знаю, есть pdb, но его функционал и то, как он представлен, мне совершенно не приглянулось. После непродолжительных поисков я наткнулся на этот замечательный продукт. Тут есть все, что может пригодиться в отладке ваших Python приложений (скажу сразу: данный язык я не изучал, поэтому, если какие-то неточности всплывут, просьба не ругаться).
Читать дальше →

Moscow Python Meetup на тему «Async: why and when?» в офисе Rambler&Co

Время на прочтение1 мин
Охват и читатели8.8K


Друзья, спешу сообщить, что 28 мая в 19:00 в офисе компании Rambler&Co пройдет встреча сообщества Moscow Python Meetup. Тема встречи — «Async: why and when?».

В программе интересные доклады, общение, холивары и море позитива.
Читать дальше →

DevConf 2015: 38 попугаев или как конференция сообществ разработчиков пытается выжить в блокаде импортозамещения

Время на прочтение1 мин
Охват и читатели13K

Коллеги по WEB-цеху! Мы рады пригласить Вас на 6-ю DevConf 2015 — которая пройдет 19 июня в Москве.
Многие злопыхатели — говорят, что конференции разработчиков загнутся. Работодатели зажимают бюджеты на развитие разработчиков и т.д.
Но мы не сдаемся — и будем проводить мероприятия — несмотря ни на что. Мы верим — за нами «правда» — а «в чем сила брат?»
Читать дальше →

Kivy и Play Store

Время на прочтение4 мин
Охват и читатели50K
Около года назад я поучаствовал в конкурсе Kivy App Contest 2014. Игрушка заняла одно из призовых мест (номинация «лучшая идея») и ко мне неоднократно обращались с просьбой выложить её на маркет. Я долго откладывал, но позавчера наконец созрел и потратив вечер — выложил. Оказалось всё совсем просто и я решил написать эту инструкцию для тех, кто, как и я, пишет на киви «в стол». Ну или тех, кто пишет на Питоне и не в курсе, что на нём можно легко писать андроидные приложения и даже выкладывать их в маркете. Инструкция рассчитана на таких же как я полнейших чайников в разработке под Android. Профессионалам можно здесь прекратить чтение, а можно поправить/дополнить в комментариях.
Читать дальше →

API RingCloud, всё только начинается

Время на прочтение5 мин
Охват и читатели6.1K
image

Доброго времени суток. Ранее RingCloud анонсировал запуск REST API, которое позволит нашему продукту интегрироваться с различными CRM-системами. И хотя его разработка еще продолжается, мы рады представить Вашему вниманию первую версию. Под катом мы рассмотрим общую архитектуру данного сервиса, его принцип работы, а так же разберём примеры использования.
Читать дальше →

Всепогодные митапы, хакатоны, лекции и даже стажировки для ИТ-сообщества

Время на прочтение3 мин
Охват и читатели11K
image

Примерно так мы с нашим CTO добирались в эти выходные на выставку робототехники на ВДНХ

Да нет, на самом деле погода обещает наладиться — так что самое время паковать ноутбук, брать с собой товарищей и отправляться решать интересные задачки, изучать опыт коллег или строить карьеру — в границах от Якутска, Омска и Новосибирска до Москвы.
Читать дальше →

Новый PyCharm 4.5 собрал вместе все инструменты для работы с Python

Время на прочтение2 мин
Охват и читатели43K
Всем привет! Мы выпустили новый PyCharm 4.5, который уже доступен для скачивания.



С момента предыдущего релиза PyCharm 4.0 прошло ровно полгода. За это время PyCharm получил ряд новых полезных инструментов для Python, Django и веб-разработки, которые, как всегда, тесно интегрированы и эффективно работают друг с другом. Сегодня мы рады рассказать, что же интересного и важного появилось в новой версии PyCharm.
Читать дальше →

Ближайшие события

Разворачиваем web-приложение при помощи Fabric

Время на прочтение7 мин
Охват и читатели17K
Приложения растут, становятся сложнее. Растет количество манипуляций, необходимых для их развертывания и обновления.

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


В этой статье я расскажу о том, как превратить увлекательное и, местами, непредсказуемое приключение в простую, рутинную и скучную операцию с предсказуемым результатом.
Читать дальше →

Что такого особенного в Nim?

Время на прочтение7 мин
Охват и читатели85K


Язык программирования Nim (ранее именовался Nimrod) — захватывающий! В то время как официальная документация с примерами плавно знакомит с языком, я хочу быстро показать вам что можно сделать с Nim, что было бы труднее или невозможно сделать на других языках.

Я открыл для себя Nim, когда искал правильный инструмент для написания игры, HoorRace, преемник моей текущей DDNet игры/мода Teeworlds.

(прим. пер. На синтаксис Nim имели влияние Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.)

Запускаем!


Да, эта часть всё ещё не захватывает, но просто следите за продолжением поста:

for i in 0..10:
  echo "Hello World"[0..i]

Читать дальше →

Введение в функциональное программирование на Python

Время на прочтение10 мин
Охват и читатели156K
Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

Нефункциональная функция:

a = 0
def increment1():
    global a
    a += 1


Функциональная функция:

def increment2(a):
    return a + 1


Вместо проходов по списку используйте map и reduce
Читать дальше →

Ночные кошмары Питона: неявный `this`

Время на прочтение3 мин
Охват и читатели28K
Обсуждение статьи "Не совсем крутой Ruby" зашло достаточно далеко: недостатки и достоинства Ruby между делом перетекали в обсуждение недостатков и достоинств Python. Не сильно удивило то, что передача self в качестве первого аргумента метода класса, некоторым хабравчанам кажется лишней. Ну что ж, не хотите явного self, будет вам неявный this! Под катом, немного магии на чистом Python.
Читать дальше →

История одного тестового задания

Время на прочтение6 мин
Охват и читатели35K
Некоторое время назад, листая просторы хабра, я наткнулся на вакансию «Python Backend Разработчик». В ней больше всего меня подкупило расположение офиса — он был рядом с домом, и я написал отклик. Ответ пришел быстро с вопросом о том, не готов ли я выполнить тестовое задание. Я ответил, что подумаю, если мне его пришлют. Письма с заданием не было недели две.

И вот, перед самыми майскими праздниками пришел ответ с тестовым заданием. Задание казалось простым, но я решил отказаться от дальнейшего общения вообще, так как почему-то за две недели порыв поиска новой работы прошел, да и праздники впереди. Однако в тот же день я заболел. Вполне себе серьезным насморком со всеми вытекающими. И на следующий день я решил попробовать забороть это тестовое задание и посмотреть, что из этого выйдет. И об этом мой рассказ.
Читать дальше →

Разгадываем картинку из твиттера компании Intel

Время на прочтение3 мин
Охват и читатели42K
Имеется страшилка, обладающая невероятным количеством подчеркиваний, лямбд и чрезвычайно редкой функцией __import__:



Что за зверь и что он делает?

Конечно же, мы можем как нормальные люди перепечатать код в интерпретатор и посмотреть, что будет. Но раз уж время давно за полночь, разбираться интереснее руками.
Читать дальше →

Жизнь в стиле SMART (продолжение)

Время на прочтение6 мин
Охват и читатели9.5K
В предыдущей статье мы рассказывали о преимуществах и проблемах использования системы Умного дома с точки зрения пользователей. Теперь поговорим о конкретной реализации .

Читать дальше →