Обновить
608.63

Python *

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

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

Django widgets и еще пара трюков

Время на прочтение7 мин
Количество просмотров26K


Все знают что Django это замечательный фреймворк для разработки, с кучей мощных батареек. Лично для меня, при первом знакомстве с django все казалось крайней удобным — все для удобства разработчика, думалось мне. Но те кто с ним вынужден работать в течении долгого времени, знают, что не все так сказочно, как кажется новичку. Шло время проекты становились больше, сложнее, писать вьюшки стало неудобным, а разбираться во взаимоотношении моделей становилось сложнее и сложнее. Но работа есть работа, проект был большой и сложный, и, ко всему прочему необходимо было иметь систему управления страниц как в cms, и, вроде бы, есть замечательный django cms, к которому всего и надо что написать плагинов. Но оказалось, что можно сделать весь процесс несколько более удобным, добавив пару фич и немного кода.
Читать дальше →

Как запатчить 11 разных прошивок и не сойти с ума от разнообразия

Время на прочтение12 мин
Количество просмотров11K
Если какая-либо операция превращается в рутину — автоматизируй её. Даже если времени потратишь больше — зато ты занимался не рутиной, а интересным делом. Именно под этой вывеской вместо того, чтобы просто запатчить новые 11 версий rtsp_streamer'а для камер от TopSee, решил нарисовать автопатчер. Идеальным языком для любых наколенных изделий я считаю питон — достаточно лаконично, достаточно жестко по читабельности (хотя я всё равно умудряюсь сделать его не читаемым). В общем, сейчас я расскажу, как с помощью палки и верёвки за один вечер научиться рисовать автопатчеры.
Читать дальше →

PyCon Russia 2014 — два дня python-счастья

Время на прочтение5 мин
Количество просмотров16K
2-3 июня в Екатеринбурге прошла вторая международная конференция python-разработчиков PyCon Russia 2014. Участники съехались из 23 городов России и мира.

IMG_0636.jpg
Участники PyConRu 2014

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

Addon для генерации материалов Cycles Blender

Время на прочтение2 мин
Количество просмотров34K
Добрый день, уважаемые хабравчане. Некоторое время назад я сделала плагин «Shader Generator» – аддон, реализующий идею параметрического генерирования и редактирования шейдеров (материалов) встроенного рендера Cycles.


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

Мини-интерпретатор Lisp'a на Python

Время на прочтение4 мин
Количество просмотров20K
Читая главу «Двоичные деревья» из книги Джона Монгана Programming Interviews Exposed я задумался о том, как чаще всего рекурсию объясняют начинающим программистам: через сортировку, обход двоичного дерева, построение последовательности Фибоначчи и т.д. Неужели нельзя найти пример поинтереснее? Из закоулков сознания вырвался Лисп, который по своей природе неотделим от понятия рекурсии. Более того, небольшой интерпретатор Лиспа — отличный пример для исследования рекурсии.

Каким же будет минимальный интерпретатор Лиспа, написанный на Питоне? К моему удивлению, решение уложилось в семь строк! Свою роль в этом сыграла как выразительность Питона, так и красота и незамысловатость Лиспа.
Читать дальше →

Про колеса

Время на прочтение2 мин
Количество просмотров16K
Многие уже слышали про колеса / wheels; рассказывать про них подробно не буду — на хабре были хорошие статьи. Опишу пошагово один (очевидный) способ использования колес на машине разработчика.

Все, кто устанавливал пакеты вроде numpy или scipy через pip знают, что это долго: компиляция может и десять минут занять, и двадцать, и тридцать. Среду для компиляции-то можно настроить (ну по крайней мере под mac и linux это не так сложно), но устанавливать такие зависимости в каждый virtualenv — то еще удовольствие. Можно, конечно, чай попить. Или виртуаленвы не использовать / использовать один общий.
Читать дальше →

Вводная по сложным запросам в SQLAlchemy

Время на прочтение7 мин
Количество просмотров99K

Во время посещения PyConRu 2014 я, с удивлением, узнал, что достаточно большая аудитория python-разработчиков не использует SQLAlchemy в качестве основного инструмента для работы с базой данных. Порассуждав на данную тему после Light Talks с коллегами было принято решение — во чтобы то ни стало написать статью о том, что же можно делать со всей мощью SQLAlchemy.


Обычно в написании сайтов не требуется чего-нибудь этакого от штатного ORM. А если и требуется, то хватает замены на нештатный или прочтения основной части документации. И, как правило, голову ломать над сложными запросами не приходится. Достаточно много различных ORM предлагают классические схемы One-2-Many, One-2-One, Many-2-Many, и т.д. Для обычных запросов и связей этого вполне достаточно. К сожалению, в больших проектах не обходится без частных случаев и программисты при сложных запросах пишут либо raw sql, либо полагаются на то, что им предлагает базовый функционал ORM. Это выглядит не совсем красиво или создает достаточно большую нагрузку на базу данных.

Понятно, что в погоне за скоростью выполнения сценариев, можно пожертвовать красотой кода, но что если скоростью можно пренебречь, а вот кроссплатформенностью — нет? Да и не хочется в python коде видеть что-то кроме python кода. А что если хочется на полную катушку использовать любимый ORM (для меня SQLAlchemy) и не писать raw sql запросы?
Читать дальше →

Настройка удаленного интерпретатора на Pycharm для Django

Время на прочтение3 мин
Количество просмотров47K

В этой статье хочу рассказать, а также показать настройку полезного инструмента для удаленной разработки от компании JetBrains встроенное в IDE Pycharm. Такой инструмент есть уже давно, но многие разработчики относятся к этому не серьезно, и для внесения изменений в проект предпочитают разворачивать его локально. Когда намного легче на том-же сервере, сделать копию части проекта и изменять или тестировать на другом порту с помощью встроенных средств удаленного интерпретатора Pycharm. Конечно не во всех ситуациях это хороший вариант, но для правки, и доработки небольших проектов очень даже подходит. А если проект с нуля, то создавая его на удаленном сервере, исчезает потребность в переносе и адаптации его под сервер(хостинг), которые неизбежно ведут к появлению множества багов и несовместимостей.

К тому же такой подход нас избавляет от таких проблем:

• на разных серверах свой Unix и свои приколы, разворачивать локально и подгонять среду под особенности того или иного сервера может занять приличное количество времени;
• разные версии python;
• И если в файле req.txt для Django не указаны все зависимости;
и т.д.
Читать дальше →

Питон, смещение тона и Пианопьютер

Время на прочтение4 мин
Количество просмотров18K
От переводчика:

Статья, которую я предлагаю вам почитать, не нова — она опубликована аж 29 марта. Но на Реддите ее запостили всего несколько дней назад, да и актуальности своей она точно не потеряла. Интересность ее в том, что автор на простом и коротком примере демонстрирует практическое применение трех больших и популярных библиотек: numpy, scipy и pygame. Про первые две многие слышали, но все больше в контексте научных работ, так что интересно посмотреть на их применение в «обычной» жизни. В конце статьи прекрасная видео-демонстрация результата, хотя бы ее точно стоит посмотреть.

Авторский код сохранен без изменений, несмотря на то, что он оформлен не по PEP-8 и за его валидность я не ручаюсь. Настоящий рабочий код так или иначе есть на ГитХабе, ссылку вы найдете в конце статьи.

Запишите звук, измените тон 50 раз и сопоставьте каждому новому звуку клавишу на клавиатуре компьютера. Получится Пианопьютер!

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

Python-digest #30. Новости, интересные проекты, статьи и интервью [2 июня 2014 — 8 июня 2014]

Время на прочтение3 мин
Количество просмотров14K
Подоспел очередной выпуск новостей о python и близлежащих технологиях. В этот раз порисуем, вспомним екатеринбургжский PyCon, поэкспериментируем с django не устанавливая его на свою машину, посмотрим чем отличаются операции с числовыми матрицами в научных программных пакетах, посмотрим обзор SOAP-библиотек, ну и многое другое.


Большое спасибо owlman75 и axce1 за… уже даже не помощь, а разработку инструмента, который помогает создавать этот дайджест. Кстати вы можете добавить новость/статью/релиз/рацпредложение.

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


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

Micro Python — эффективная реализация Python 3 для микроконтроллеров

Время на прочтение1 мин
Количество просмотров42K


Английский разработчик Дэмьен Джордж (Damien George) сегодня официально объявил о выпуске Micro Python — эффективной реализация Python 3 для встроенных систем с малым объёмом оперативной памяти. Разработка этой версии началась в декабре, после удачной кампании по сбору средств на выпуск Pyboard — контроллера, работающего на Питоне.
Читать дальше →

VIM как IDE для разработки на Python

Время на прочтение10 мин
Количество просмотров164K
image
Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.
Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.
Читать дальше →

Геодезия: по полю на «питоне»

Время на прочтение5 мин
Количество просмотров15K
image

Доброго времени, Хабр!
Немного истории: в ходе учебы программированию, искал я себе реальную задачу, да такую чтобы с пользой. Нашел. Увидел как знакомый геодезист, на работе, считает объем земельного участка. Очень долго и нудно…

Геодезический расчет объемов:
При возведении жилых сооружений, высокотехнологичных помещений, автомобильных и железных дорог, а так – же в целях определения объемов строительных материалов и подсчета объема земляных работ, требуется помощь геодезистов. Они “отстреливают” территорию, разбивая всю площадь на так называемую геосетку, далее полученые точки из прибора выгружаются в autoCAD и высчитывают объем всей территории. Ниже пример геосетки:

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

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

Python-digest #29. Новости, интересные проекты, статьи и интервью [25 мая 2014 — 1 июня 2014]

Время на прочтение2 мин
Количество просмотров13K
В сегодняшнем дайджесте новостей, статей, интересных проектов из мира python довольно много релизов. Увы, в ущерб количеству статей. Видимо под завязку весны сообщество решило больше писать кода, чем текста. А если учесть, что вышел еще и мажорный релиз git, то можно смело обозвать это явление нелокальным. Или просто все играли в Watch Dogs. Тем не менее, статьи все-таки есть в том числе и на русском, в том числе и не с хабры. Присутствует также забавная аналитика статистики tiobe — говорят, что релиз python 3 в 2011 году сделал проекту смертельную инъекцию. И с тех пор он ударными темпами умирает на пути к светлому будущему.

Благодарность owlman75 сегодня многократная — не только иллюстрацию сделал, но и починил верстку общего списка выпусков на инструменте для содания дайджестов. Если сами хотите покодить, а не писать статьи, то могу и вам предложить интересное задание на пользу сообщества и проконтролировать его выполнение. Знаете как правильно вносить изменения в открытые проекты? А на django 1.7 уже попробовали что-нибудь сделать?

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

Thunderargs: практика использования. Часть 1

Время на прочтение6 мин
Количество просмотров5.7K
Недавно я писал пост про то, как был придуман и написан thunderargs. Сегодня я раccкажу о том, как его можно применять.

Напомню, что эта штука предназначена для обработки параметров функции при помощи аннотаций. Например, так:

OPERATION = {'+': lambda x, y: x+y,
             '-': lambda x, y: x-y,
             '*': lambda x, y: x*y,
             '/': lambda x, y: x/y,
             '^': lambda x, y: pow(x,y)}

@Endpoint
def calculate(x:Arg(int), y:Arg(int),
                       op:Arg(str, default='+', expander=OPERATION)):
    return str(op(x,y))


Постараемся по ходу тутора решать вполне определённые проблемы, а не какие-то эфемерные задачки. Ну а теперь — к делу.

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

Вышел обновленный PyCharm 3.4 с новой расширенной функциональностью и улучшенной общей производительностью

Время на прочтение4 мин
Количество просмотров25K


Мы рады сообщить всем хабровчанам: вышла новая версия нашей продвинутой IDE для Python — PyCharm 3.4! Как и раньше, PyCharm 3.4 доступен в платном варианте PyCharm Professional Edition и в бесплатном, с открытым исходным кодом, — PyCharm Community Edition.

PyCharm 3.4 уже доступен для скачивания по этой ссылке.
Читаем дальше, много картинок!

Разработка ERP на tryton: Часть 2

Время на прочтение26 мин
Количество просмотров6.7K
В этой части рассматривается структура именования методов, работа с пользователями и группами, установка дополнительных модулей.
Читать дальше →

Работа с иностранными текстами. Как увеличить процент понимания и выучить язык?

Время на прочтение7 мин
Количество просмотров33K
По жизни или по работе иногда приходится сталкиваться с текстами на иностранном языке, знания которого еще далеки от совершенства. Чтобы прочесть и понять, о чем идет речь (и, в лучшем случае, выучить несколько новых слов), я обычно использовал два варианта. Первый — это перевод текста в браузере, второй — перевод каждого слова по отдельности с помощью, например, ABBYY Lingvo. Но у этих методов есть множество недостатков. Во-первых, браузер предлагает перевод предложениями, а значит, он может менять порядок слов и перевод может оказаться еще более непонятным, чем оригинальный текст. Во-вторых, браузер не предлагает ни альтернативных вариантов перевода, ни синонимов к словам, а значит, учить новые слова становится проблематично. Другие варианты и синонимы можно получить при поиске конкретного слова в переводчике, а это требует некоторого времени, особенно если таких слов много. Наконец, читая текст, мне хотелось бы знать, какие слова наиболее популярны в этом языке, чтобы я мог их запомнить и потом использовать в своей письменной или разговорной речи.

Я подумал, что иметь под рукой подобный «переводчик» было бы неплохо, и поэтому решил реализовать его на python. Всех, кого заинтересовало, прошу под кат.
Читать дальше →

Генераторы словарей

Время на прочтение3 мин
Количество просмотров77K
Некоторые замечательные возможности языка Python незаслуженно оставлены без внимания и многие программисты о них не знают. В этот раз речь пойдет о прекрасной возможности языка, делающей код яснее: генераторы словарей — однострочные выражения, возвращающие словарь. Но начнем с компактных генераторов списков и задачи удаления неуникальных элементов коллекций.

Будет интересно в основном новичкам в Python.
Читать дальше →

Вклад авторов