Обновить
796.48

Python *

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

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

Гвидо ван Россум отвечает на вопросы

Время на прочтение7 мин
Охват и читатели29K
На прошлой неделе (19 августа — прим.пер.) у вас был шанс задать вопрос Гвидо ван Россуму, Великодушному Пожизненному Диктатору Python, касательно любых аспектов Python, а также его переезда в Dropbox. Гвидо не теряя времени ответил на некоторые ваши вопросы.
Читать дальше →

Пишем платформер на Python. Часть 2. Подчасть 1, подготовка к созданию редактора уровней

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

Привет, друзья!

Продолжаем разбираться с нашим МариоБоем. Начало тут, продолжение тут. В этой подчасти второй части мы сделаем приготовление для создания редактора уровней, а именно: добавим турбо режим бега герою, смертельно опасные платформы, движущиеся монстры, телепортеры, принцессу и парсер уровней, дабы во второй подчасти не отвлекаться на всё это.
Внимание! Картинки!

Numenta NuPIC: первые шаги

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

Введение


Numenta NuPIC — открытая реализация алгоритмов, моделирующих процессы запоминания информации человеком, происходящие в неокортексе. Исходные коды NuPIC на github

В двух словах, назначение NuPIC можно описать как «фиговина, выявляющая, запоминающая и прогнозирующая пространственные и временные закономерности в данных». Именно этим большую часть времени занимается человеческий мозг — запоминает, обобщает и прогнозирует. Очень хорошее описание этих процессов можно найти в книге Джеффа Хокинса «On Intelligence» (есть русский перевод книги под названием «Об интеллекте»).

На сайте Numenta есть подробный документ, детально описывающий алгоритмы и принципы работы, а также несколько видео.

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

Автоматическая очистка старых драйверов, или выжмем немного места из Windows 7

Время на прочтение6 мин
Охват и читатели234K
В один прекрасный (или печальный, кому как) день мне надоело, что у меня периодически заканчивается место на ноутбуке. Да, я в курсе, что жёсткие диски сейчас дешевы, но это для меня не выход, потому что:
  • У меня SSD, а он всё-таки подороже будет, чем обычные HDD (объём моего текущего SSD — 120 гигов)
  • Ноутбук рабочий, соответственно данные на нём тоже, должны быть шифрованы, всё такое, поэтому самопальный и не утверждённое работодателем носитель втыкать не стоит
  • Я жадный :)

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

Некоторые возможности Python о которых вы возможно не знали

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

Предисловие


Я очень полюбил Python после того, как прочитал книгу Марка Лутца «Изучаем Python». Язык очень красив, на нем приятно писать и выражать собственные идеи. Большое количество интерпретаторов и компиляторов, расширений, модулей и фреймворков говорит о том, что сообщество очень активно и язык развивается. В процессе изучения языка у меня появилось много вопросов, которые я тщательно гуглил и старался понять каждую непонятую мной конструкцию. Об этом мы и поговорим с вами в этой статье, статья ориентирована на начинающего Python разработчика.

Подробности

Инфраструктура и жизненный цикл разработки веб-проекта

Время на прочтение11 мин
Охват и читатели59K
Когда проект маленький, особых проблем с ним не возникает. Список задач можно вести в текстовом файле (TODO), систему контроля версий, по большому счёту, можно и не использовать, для раскладки файлов на живой сервер их можно просто скопировать (cp/scp/rsync) в нужную директорию, а ошибки всегда можно посмотреть в лог-файле. Глупо было бы, например, для простенького сервиса с двумя скриптами и тремя посетителями в день поднимать полноценную систему управления конфигурациями серверов.

С ростом проекта требования растут. Становится неудобно держать в TODO-файле несколько десятков задач и багов: хочется приоритетов, комментариев, ссылок. Появляется необходимость в системе контроля версий, специальных скриптах/систем для раскладки кода на сервер, системе мониторинга. Ситуация усугубляется, когда над проектом работает несколько человек, а уж когда проект разрастается до нескольких серверов, появляется полноценная инфраструктура («комплекс взаимосвязанных обслуживающих структур или объектов, составляющих и/или обеспечивающих основу функционирования системы», Wikipedia).

На примере нашего сервиса "Календарь Mail.ru" я хочу рассказать о типичной инфраструктуре и жизненном цикле разработки среднего по размерам веб-проекта в крупной интернет-компании.

Срыв покровов

Python Meetup

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

Всем привет!

Август – это, как известно, «последний вагон» для тех, кто хочет успеть отправиться «на юга». Не побоявшись сезона отпусков мы решили проводить третий митап на около-python-овские темы. Тем более, что с темами докладов повезло. Рассмотрели поведение некоторых опасных конструкций в Python, опробовали функциональный стиль программирования и рассмотрели словари в Python. Кроме того, среди докладчиков был Никита Лесников со второй частью своей презентации о внутренностях интерпретатора Python. Все видео этих докладов – прямо сейчас на youtube-экранах под катом.
Читать дальше →

Вышли сразу два новых PyCharm версии 3.0

Время на прочтение4 мин
Охват и читатели44K
PyCharm3 Opens To The CommunityРады сообщить всем хабровчанам, что PyCharm 3.0 — наша IDE для разработки на языке Python — выпущена в двух редакциях: бесплатной Community Edition с открытым исходным кодом и полнофункциональной Professional Edition.

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

Релиз, конечно, этим не ограничивается: в него вошло много новых полезных фич, которые работают в обоих редакциях. Но обо всем по порядку.
Читать дальше →

Centrifuge набирает обороты

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

Пару месяцев назад я опубликовал на Хабре статью, посвященную описанию open-source проекта Centrifuge. Напомню, что это сервер рассылки сообщений подключенным клиентам (в основном из веб-браузера) в реальном времени. Написан на Python.

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

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

Shed Skin — экспериментальный транслятор из Python в C++

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

Введение



Shed Skin — это экспериментальный транслятор из Python в C++, разработанный для повышения скорости выполнения программ на Python с интенсивными вычислениями. Он преобразует программы, написанные на ограниченном подмножестве языка Python, в C++. Код C++ можно скомпилировать в исполняемый код, который может быть как отдельной программой, так и модулем расширения, легко импортируемым и используемым в обычной программе на Python.

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

Git. Автоматическая проверка сообщения коммита на стороне сервера с помощью Python

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

Целевая аудитория, мотивация


Надеюсь, что пост окажется полезным для тех, кто на среднем уровне знаком с Git и на начальном — с Python. Кроме того, предполагается наличие базовых знаний об устройстве Unix-систем и регулярных выражениях.

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

Программируем на Python

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


Периодически нам в редакцию приходят письма с вопросом будет ли новый тираж книги «Программируем на Python» М.Доусона. Несмотря на то, что оригинал «Python Programming for the Absolute Beginner, 3rd Edition» вышел в 2010г., он до сих пор в бестах на amazon.com. Содержание книги построено на практических примерах программирования простых игр. Нам очень интересно узнать мнение профессионалов, что позволит принять решение издавать ли книгу.

Полное оглавление можно посмотреть здесь.

Отрывок из Главы 5. Списки и словари. Игра «Виселица»


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

Пишем плагин для XBMC с собственным интерфейсом: часть II — диалоги и украшателства

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

Вступление


Это II часть цикла статей, посвященных написанию плагинов для XBMC с собственным интерфейсом. В I части рассказывается общая информация о создании плагинов для XBMC с собственным интерфейсом и приведен простейший пример. В этой части я дам еще немного общей информации — расскажу о диалогах, а также рассмотрю немного более сложные примеры, в которых будет показано использование картинок для украшения интерфейса, а также создание простейших интерактивных элементов.
Читать дальше →

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

AI своими руками. Вы готовы начать?

Время на прочтение9 мин
Охват и читатели8.5K
Здравствуйте, друзья!
Поясняю сразу — статья носит практический характер. Но сначала аллегория.
Итак, вы когда-нибудь обращали внимание на грустную картину — погибших под колёсами автомобилей животных? Жаль зверюшек. За миллионы лет эволюции они прекрасно приспособились к окружающей среде, но вот времени на то, чтобы приспособиться к техносфере, им никто не выделил.
Однако не возникает ли у вас ощущения, что мы постепенно оказываемся в очень похожей ситуации? Мы изобрели кучу всяких технологий, но с появлением всё новых и новых контролировать их всё труднее. И уже не совсем понятно, то ли они работают на нас, то ли заставляют нас делать нечто, чего мы не планировали… Восторгаться или ужасаться? Счастья, вечной жизни и славы ожидать ли, или погибели?
Давайте узнаем ответ!

Мега-Учебник Flask, Часть 3: Формы

Время на прочтение10 мин
Охват и читатели144K
Это третья статья в серии, где я описываю свой опыт написания веб-приложения на Python с использованием микрофреймворка Flask.

Цель данного руководства — разработать довольно функциональное приложение-микроблог, которое я за полным отсутствием оригинальности решил назвать microblog.



Краткое повторение


В предыдущей части мы определили простой шаблон для домашней страницы и использовали мнимые объекты в качестве прототипов вещей, которых у нас еще нет. К примеру пользователи или записи.

В этой статье мы собираемся заполнить один из пробелов, которые есть в нашем приложении. Мы рассмотрим работу с формами.

Формы являются одними из самых основных блоков в любом веб-приложении. Использование форм позволит пользователям оставлять записи в блоге, а также логиниться в приложение.

Чтобы следовать этой части, ваше приложение микроблога должно быть таким, каким мы оставили его в конце предыдущей. Пожалуйста, убедитесь, что прилолжение установлено и работает.
Читать дальше →

Ненормальное функциональное программирование на python

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

После просмотра курса Programming Languages и прочтения Functional JavaScript захотелось повторить все эти крутые штуки в python. Часть вещей получилось сделать красиво и легко, остальное вышло страшным и непригодным для использования.

Статья включает в себя:
  • немного непонятных слов;
  • каррирование;
  • pattern matching;
  • рекурсия (включая хвостовую).


Статья рассчитана на python 3.3+.
Читать дальше →

Пишем плагин для XBMC с собственным интерфейсом: часть I — теория и простейший пример

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

Вступление


Это I часть цикла статей, посвященных написанию плагинов для XBMC с собственным интерфейсом. В ней будет рассмотрена основная информация о создании интерфейса плагина и приведен простейший пример.
Во II части я планирую дать еще немного теории и чуть более сложный пример.
В III части я продемонстрирую написанный мною микро-фреймоворк, упрощающий компоновку интерфейса.

В своей первой статье «Подробная анатомия простого плагина для XBMC» я попытался максимально подробно описать структуру плагина для XBMC. Кроме того, я постарался рассказать, чем отличаются плагина-источники контента и плагины скрипты.
Читать дальше →

Использование памяти в Python

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

Сколько памяти занимает 1 миллион целых чисел?


Меня часто донимали размышление о том, насколько эффективно Python использует память по сравнению с другими языками программирования. Например, сколько памяти нужно, чтобы работать с 1 миллионом целых чисел? А с тем же количеством строк произвольной длины?
Как оказалось, в Python есть возможность получить необходимую информацию прямо из интерактивной консоли, не обращаясь к исходному коду на C (хотя, для верности, мы туда все таки заглянем).
Удовлетворив любопытство, мы залезем внутрь типов данных и узнаем, на что именно расходуется память.
Читать дальше →

Пишем платформер на Python, используя pygame

Время на прочтение11 мин
Охват и читатели376K
image
Сразу оговорюсь, что здесь написано для самых маленькихначинающих.

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

Что такое платформер?


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

Одними из моих любимых игр данного жанра являются «Super Mario Brothers» и «Super Meat Boy». Давайте попробуем создать нечто среднее между ними.
Читать дальше →

«Achtung!», или Мониторим состояние сборки проекта

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

Для сборки проекта, запуска тестов и проверки качества кода мы (в проекте «Календарь Mail.ru») используем Jenkins CI. Запуск сборки происходит сразу же после пуша в репозиторий git (по хуку) и, конечно же, хочется своевременно получать информацию о провалившихся сборках. С одной стороны, уведомления по email вроде бы достаточно, с другой стороны хочется чего-то более заметного и весёлого.
Читать дальше →