Pull to refresh
  • by relevance
  • by date
  • by rating

Portable Python — все свое ношу с собой!

Python *
Если встретить linux-дистрибутив без интерпретатора python почти невозможно, то по отношению к Windows ситуация диаметрально противоположная. А питон ведь кроссплатформенный!
Конечно, можно поставить интерпретатор и на windows, но если хочеться запустить любимый скрипт на чужом/рабочем компьютере, под управлением данной ос?
Что, тоже мучиться с установкой? А если на машину нельзя/нецелесообразно ставить ПО. Да и время на это тратить, ради запуска одного скрипта не хочется?
Тогда, на помощь нам придет Portable Python!

Нет, не нужно идти на сайт и покупать на нем специальную флешку, достаточно скачать архив, и установить питон на свою.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Views 43K
Comments 55

Читаем Альдебаран с удобством

Lumber room
Наверняка некоторые хабралюди читают книги на сайте http://lib.aldebaran.ru. Они знают о том, что с некоторых пор текст на сайте «защищён» от копирования. Конечно, большая часть книг осталась доступна для скачивания в удобных для чтения форматах, но многие популярные книги можно только читать он-лайн. Что неудобно.
Следующий несложный скрипт на Питоне скачает книгу целиком, попутно вырезав весь мусор напиханый туда для затруднения копирования.
Читать дальше →
Total votes 37: ↑32 and ↓5 +27
Views 394
Comments 56

Конференция по Ruby и Python — RuPyRu 2008

Lumber room
Приветствую, друзья.

В Омске второй год проводится конференция RuPyRu по Ruby и Python. В этом году она пройдет 21 июня.

Мы постарались пригласить интересных людей, которые используют Ruby или Python в своей практике. В этом году основные доклады выглядят примерно так:


Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 271
Comments 41

Переименование процессов в Python

Python *
Когда пишешь многопроцессное приложение на питоне хочется иметь какой-то максимально простой способ мониторинга за работой отдельных процессов. Я сейчас не говорю про детальные аналитические отчеты на 10 страницах, а про получение минимальной информации о здоровьи и работе каждого процесса: чем он сейчас занят, насколько грузит систему, сколько памяти отожрал и т.п. Примерно как nginx или postgres сообщают о себе: одного взгляда в top либо ps достаточно, чтобы понять что и как делает каждый процесс.
Осталось разобраться как это можно сделать в питоне на ОС Linux (на примере Debian и FC).
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 4.5K
Comments 16

Django и форум

Lumber room
Столкнулся с такой проблемой — в проект, написанный на джанго, нужно встроить форум. Функционал форума должен быть близок к Invision Power Board. Долго рыл в сети решение этой проблемы — так ничего и не нарыл. Неужели никто с подобным не сталкивался?

Возможно единственное решение это делать мост к ИПБ, но меня смущает то, что это разные платформы (пхп и джанга)
Total votes 8: ↑6 and ↓2 +4
Views 842
Comments 12

Реализация небольшого асинхронного сервера

Python *
Целью публикации данного топика является представление аудитории Хабрахабра кода небольшого асинхронного сервера, написанного на Питоне с использованием практически «голых» сокетов.

Мне приходилось писать достаточно много приложений, работающих в качестве сетевых сервисов. Эти сервисы были написаны на разных языках, под разную нагрузку и каждый раз реализация нового сервиса чем-то отличалась от предыдущей. Под хабракатом я привожу пример довольно удачной, на мой вгляд, реализации «учебного» сервера, сопровождая код своими комментариями по мере необходимости.
Читать дальше →
Total votes 46: ↑43 and ↓3 +40
Views 19K
Comments 26

«Наследование» не от классов

Python *
image
В Питоне совсем не важно, что вы поместите в определение класса. Это могут быть строки, числа, объекты, переменные. В третьем Питоне можно даже передавать именованные аргументы.
Реализация
Total votes 49: ↑45 and ↓4 +41
Views 3.5K
Comments 33

Зачес Putty под 1 гребенку

System administration *
Те из нас, кто работает с кучей Linux-серверов, а сидеть приходится под Windows вынуждены пользоваться Putty — он всем хорош: бесплатен, поддерживает все что нужно, но есть одна проблема: когда настроенных соединений становиться слишком много — массовое изменение параметров высосет из вас все соки (также как например и установка ваших любимых параметров для новых соединений). На хабре 2.5 года назад была заметка на эту тему, но там по прежнему требуется много ручной работы.

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

Скрипт берем тут — лицензия MIT = делаем что хотим (для запуска нужен питон). По умолчанию скрипт меняет цвета чтобы (мне) лучше читалось (тёмно-синий делает чуть светлее, светло синий — также), увеличивает буфер прокрутки до 20к (чтобы уехавший текст не пропадал), устанавливает размер окна по-больше, включает разворачивание по Alt+Enter на весь экран, убирает предупреждение при закрытии и включает сжатие SSH трафика.

Само собой сюда втыкать можно любые параметры. При добавлении нового соединения я просто прокатываю этот скрипт и готово. Под катом — исходник текстом, можно не кликать ;-)
Читать дальше →
Total votes 59: ↑45 and ↓14 +31
Views 8.3K
Comments 60

Руководство к дескрипторам

Python *
Translation

Краткий обзор


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

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

Читать дальше →
Total votes 51: ↑48 and ↓3 +45
Views 120K
Comments 5

Еще немного о дескрипторах в Python

Python *
Sandbox
Не так давно на Хабре уже был перевод статьи Раймонда Хеттингера Руководство к дескрипторам. В этой статье я постараюсь рассмотреть вопросы, которые возникли у меня после прочтения. Будет немного примеров кода, собственно вопросов и ответов к ним. Для понимания того, о чем речь, вам нужно знать, что такое дескрипторы и зачем они.

Читать дальше →
Total votes 47: ↑45 and ↓2 +43
Views 14K
Comments 29

Python-неизвестный

Python *
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →
Total votes 144: ↑140 and ↓4 +136
Views 23K
Comments 51

Моя интеграция с 1С

Python *
Привет Хабравчанам!

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

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

Читать дальше →
Total votes 35: ↑31 and ↓4 +27
Views 159K
Comments 65

Декодирование капчи на Python

Python *Algorithms *
Translation
Это перевод и форма повествования от первого лица сохранена. Автор — Бен Бойтер, бакалавр информационных технологий в Университете Чарльза Стерта (CSU).


Большинство людей не в курсе, но моей диссертацией была программа для чтения текста с изображения. Я думал, что, если смогу получить высокий уровень распознавания, то это можно будет использовать для улучшения результатов поиска. Мой отличный советник доктор Гао Джунбин предложил мне написать диссертацию на эту тему. Наконец-то я нашел время написать эту статью и здесь я постараюсь рассказать о всем том, что узнал. Если бы только было что-то подобное, когда я только начинал…

Как я уже говорил, я пытался взять обычные изображения из интернета и извлекать из них текст для улучшения результатов поиска. Большинство моих идей было основано на методах взлома капчи. Как всем известно, капча — это те самые всех раздражающее штуки, вроде «Введите буквы, которые вы видите на изображении» на страницах регистрации или обратной связи.

Капча устроена так, что человек может прочитать текст без труда, в то время, как машина — нет (привет, reCaptcha!). На практике это никогда не работало, т. к. почти каждую капчу, которую размещали на сайте взламывали в течение нескольких месяцев.

У меня неплохо получалось — более 60% изображений было успешно разгадано из моей небольшой коллекции. Довольно неплохо, учитывая количество разнообразных изображений в интернете.

Читать дальше →
Total votes 72: ↑63 and ↓9 +54
Views 62K
Comments 65

Связка ExtJS+Django+Apache+SVN deploy (и простой CRUD контроллер на Django)

Django *ExtJS/Sencha *
Sandbox
Tutorial

Предисловие

Сразу хочу попросить прощения за столь перегруженную статью, но для меня сейчас всё это актуально и связано. Думаю что некоторым это может пригодиться для будущей разработки. Хочу обратить внимание, что в этой статье я не стану рассказывать вам как устанавливать те или иные тривиальные вещи, установка которых, к тому же, зависит от той или иной платформы. Также в статье я не описываю телодвижения по настройке прав доступа к файлам сервера, опять же, это зависит от реализации. В статье описан процесс настройки на PDC сервер с именем tci.lan, все имена сохранены, в вашем случае их следует заменить на соответствующие вам. Данная статья содержит код, для улучшения читаемости он спрятан в спойлерах.
Читать дальше →
Total votes 13: ↑6 and ↓7 -1
Views 8.5K
Comments 10

Использование Python в многопоточном приложении на C++ и настоящая многопоточность в Python

Python *Programming *C++ *
Все более или менее знающие Python разработчики знают про такую жуткую вещь как GIL. Глобальный блокировщик всего процесса до тех пор пока Python выполняется в одном из потоков. Он даёт потоко-защищённость методами сравнимыми с садизмом, поскольку любая неявная блокировка в многопоточном приложении смерти подобна, всё что опиралось на параллельное выполнение, умирает в мучениях, раз за разом натыкаясь на блокировку GIL.
Известно что по сей день из-за этого скорбного факта программисты на C++ используют Python-обёртки по большей части лишь в однопоточных приложениях, а программисты на Python пытаются всех убедить, что им и так неплохо живётся.
Казалось бы, если поток порождён в C++, он не знает ни о каком GIL, используй Python без блокировок и радуйся. Радость разработчика однако закончится уже на втором потоке запросившем область глобальных переменных без блокировки.
Однако есть путь ведущий к светлому будущему!
Этот путь был изначально в таком языке как Perl, он же поддерживается в Си-API языка Python и я ума не приложу почему подобный механизм не включен в один из стандартных модулей Python! Способ по сути сводит использование различных под-интерпретаторов Python в разных потоках, причём используя свой GIL для каждого(!!!) без всякого шаманства и магии, просто последовательно вызвав несколько функций и стандартного набора Си-API языка Python!
Читать дальше →
Total votes 76: ↑72 and ↓4 +68
Views 38K
Comments 50

Еще раз о многопоточности и Python

Python *
Как известно, в основной реализации Питона CPython (python.org) используется Global Interpreter Lock (GIL). Эта штука позволяет одновременно запускать только один питоновский поток — остальные обязаны ждать переключения GIL на них.

Коллега Qualab недавно опубликовал на Хабре бойкую статью, предлагая новаторский подход: создавть по субинтерпретатору Питона на поток операционной системы, получая возможность запускать все наши субинтерпретаторы параллельно. Т.е. GIL как бы уже и не мешает совсем.

Идея свежая, но имеет один существенный недостаток — она не работает…
Читать дальше →
Total votes 56: ↑56 and ↓0 +56
Views 34K
Comments 18

Путеводитель по Python. Пишем великолепный код

Python *Programming *

Доброго времени суток, Хабрахабр. Сегодня на крыле принес еще один перевод я (pdf-ки гугловского стайл гайда выложены). Хотя, кто знает, если кто-то оценит сию работу — быть может появится и продолжение. Как-то днём одним, предложил мне мой широко известный в узких кругах коллега scraplesh почитать ресурс — The Hitchhiker’s Guide to Python! называемый. Ресурс этот понравился мне. Понравились советы выдаваемые там. Понравилась канва повествования и вообще понравилось направление мысли автора. А если что-то хорошо на Ваш вкус, то нужно передавать это из уст в уста:) Итак, решил я сделать перевод данного ресурса. Но не всё так сразу — сначала будет пробная статья «на отклик» хабрасообщества. Если уважаемым гикам понравится сия тематика и изложение — будем стараться выпускать новые части. На первый «отклик» я выбрал раздел — "Writing Great Code" и в нем два подпункта «Structure is Key» и «Modules». Откликнемся под катом.
Читать дальше →
Total votes 64: ↑56 and ↓8 +48
Views 77K
Comments 8

Автотрекинг низкоорбитальных спутников или Слушаем радиосигнал с МКС

Network standards


Американский инженер и радиолюбитель Трэвис Гудспид (Travis Goodspeed) на конференции Summercon 2013 продемонстрировал самодельную систему автоматического наведения спутниковой тарелки на движущиеся цели. Дизайн системы он опубликовал в открытом доступе, программы для управления написаны на Питоне.
Читать дальше →
Total votes 55: ↑49 and ↓6 +43
Views 27K
Comments 21

Генератор криптарифмов

Abnormal programming *Python *Algorithms *
В написанной на днях статье Вернулся невод с тиной морскою, я дал ссылку на частотный словарь Википедии. Количество скачиваний на порядки превзошло все мои ожидания. Я почувствавал огромное духовное родство с читателями Хабра. Одна часть скачавших (как и я!) любит всячески возиться со словами и словарями, а вторая часть (как и я!), увидев на просторах сети интересный артефакт, тут же хватает его и тащит к себе в гнездо, а что с ним делать — потом разберёмся!

К первой части у меня просьба. Если Вы нашли интересное применение словарю или у вас есть идея такого применения и это всё не коммерческая тайна, поделитесь, пожалуйста, в комментариях.

А для второй части, для тех, кто скачал словарь, а теперь мучительно думает, что делать со свалившимся счастьем, я хочу написать несколько статей. Собственно с этой и начну.
Читать дальше →
Total votes 41: ↑41 and ↓0 +41
Views 14K
Comments 10