Обновить
1024K+

Python *

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

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

Изучение OpenCL на примере взлома паролей

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

Вступление


Недавно, почитав различных статей и презентаций про GPGPU, я решил тоже попробовать для себя программирование под видеокарты. Фактически, выбор технологий в этой области не велик — сейчас живы и развиваются только CUDA (проприетарный стандарт nVidia) и OpenCL (свободный стандарт, работает на GPU от ATI, nVidia, а также на центральных процессорах). В связи с тем, что мой ноутбук располагает видеокартой ATI (Mobility Radeon 5650 HD), то выбор и вовсе свёлся к одному варианту — OpenCL. В этой статье речь пойдёт о процессе изучения OpenCL с нуля, а также о том, что из этого получилось.
Читать дальше →

Работа с ssh в Python

Время на прочтение3 мин
Охват и читатели233K
Всем добрый день.

Хочу рассказать про paramiko — модуль для работы с ssh в python.
С его помощью можно написать скрипт, который получит доступ к удаленному серверу (или многим) и что-то на нем сделает.

Кому интересно — прошу под кат.
Читать дальше →

Пишем бота для Twitter на основе GitHub API

Время на прочтение5 мин
Охват и читатели22K
Доброго времени суток, уважаемое Хабрасообщество.

Сегодня пятница, а это значит, что можно отвлечься от серьезных проектов и отдохнуть. Например, прочитав очередную статью для начинающих, посвященную разработке простого twitter-бота на python, уведомляющего о нескольких видах GitHub-активности.

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



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

Результаты Djangodash 2012

Время на прочтение1 мин
Охват и читатели1.5K
Итак, оглашены результаты Djangodash 2012. 48 активных команд, 48 часов и 6873 коммита, а победителями стали:

Первое место команда BUSI-TEC Industries с проектом Busitizer (демо). Приложение добавляет Гэри Бьюзи в фотографии в Facebook.

Второе место команда UFO с проектом EasyNotice (демо). Приложение выводит фотки из instagram, flickr и google картинок существующих чудес свет в сгруппированном виде.

Третье место — WebRiders с проектом Lemidora (демо). Приложения для того, чтобы делиться фотками с друзьями, можно накидать фотки на рабочий стол приложения и отправить ссылку на него друзьям.

Полная таблица результатов — djangodash.com/judging/2012/results

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

RabbitMQ tutorial 2 — Очередь задач

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


В продолжение первого урока по изучению азов RabbitMQ публикую перевод второго урока с официального сайта. Все примеры, как и ранее, на python, но по-прежнему их можно реализовать на большинстве популярных ЯП.
Читать дальше →

Как я сам научился программировать за 8 недель

Время на прочтение3 мин
Охват и читатели572K
Для многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.

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

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

Отправка SMS из под Shell

Время на прочтение2 мин
Охват и читатели21K
Как-то раз пришлось мне собирать gentoo на очень древнем железе, и меня постоянно мучил вопрос: «Как же сделать так, что-бы знать когда закончится компиляция всех пакетов и я смогу приступить к дальнейшей работе с ПК?» В поисках истины нашел наиболее подходящее для меня решение это отправка SMS уведомлений.
Читать дальше →

Обработка естественного языка. Полезные инструменты

Время на прочтение3 мин
Охват и читатели8.9K
Последнее время на Хабре зачастили статьи про обработку естественного языка.
И так уж совпало, что последнее время я работаю в этой области.
Был очень хорошо освещен sentiment analysis, и теггер частей речи pymorphy.
Но мне хотелось бы рассказать, какие средства для NLP использовал я, и что я нашел нового, чего здесь еще не было
Читать дальше →

RabbitMQ tutorial 1 — Hello World

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


RabbitMQ позволяет взаимодействовать различным программам при помощи протокола AMQP. RabbitMQ является отличным решением для построения SOA (сервис-ориентированной архитектуры) и распределением отложенных ресурсоемких задач.

Под катом перевод первого из шести уроков официального сайта. Примеры на python, но его знание вовсе не обязательно. Аналогичные примеру программы можно воспроизвести практически на любом популярном ЯП. [так выглядят комментарии переводчика, т.е. меня]
Читать дальше →

Делаем standalone exe на IronPython

Время на прочтение2 мин
Охват и читатели20K
Иногда требуется написать маленькую программу, которая будет распространяться в виде исполняемого файла, и при этом не хочется, чтобы с программой ещё было море файлов. Один exe-шник и всё, да при этом хочется, чтобы его написание не занимало много времени (какой-нибудь лёгкий язык).
CPython в комплекте с py2exe или cx_Freeze не даёт требуемого результата: много файлов и большой размер программы, хотя и работает очень быстро. Хорошее решение смог получить в IronPython с помощью встроенного компилятора pyc. Даже IDE не потребовалась. Подробности под катом.
Читать дальше →

CPython vs. IronPython: вычисление MD5-хеша

Время на прочтение5 мин
Охват и читатели10K
Понадобилось как-то в проекте сделать автообновление для клиентского приложения. Так как работало оно с отечественными криптопровайдерами, доступ к которым проще получить из .Net, написано оно было на IronPython. При этом C# выбран не был, так как на стороне сервера уже активно использовался python и сильно переучиваться не хотелось.

Казалось бы всё просто. Был набросан скрипт, который вычисляет md5-хеши для файлов входящих в состав приложения, сводит всё в один файл со строками вида “относительный путь”:”md5” и выкладывает в директорию раздачи статики nginx. Клиентское приложение при запуске забирает файлик, прогоняет аналогичный скрипт, и сверяет полученный результат с эталоном.

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

Обучаем компьютер чувствам (sentiment analysis по-русски)

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


Sentiment analysis (по-русски, анализ тональности) — это область компьютерной лингвистики, которая занимается изучением мнений и эмоций в текстовых документах. Недавно на хабре появилась статья про использование машинного обучения для анализа тональности, однако, она была настолько плохо составлена, что я решил написать свою версию. Итак, в этой статье я постараюсь доступно объяснить, что такое анализ тональности, и как реализовать подобную систему для русского языка.
Читать дальше →

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

Учимся писать многопоточные и многопроцессные приложения на Python

Время на прочтение6 мин
Охват и читатели432K
Эта статья не для матёрых укротителей Python’а, для которых распутать этот клубок змей — детская забава, а скорее поверхностный обзор многопоточных возможностей для недавно подсевших на питон.

К сожалению по теме многопоточности в Python не так уж много материала на русском языке, а питонеры, которые ничего не слышали, например, про GIL, мне стали попадаться с завидной регулярностью. В этой статье я постараюсь описать самые основные возможности многопоточного питона, расскажу что же такое GIL и как с ним (или без него) жить и многое другое.
Читать дальше →

Web2py фреймворк

Время на прочтение4 мин
Охват и читатели27K
Я не изобретатель очередного велосипеда марсохода, а просто хочу рассказать про python фреймворк WEB2PY. На Хабре почему-то нет каких-либо статей про этот чудесный инструмент. Если интересно, под хабракатом небольшая история использования web2py и его описание.

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

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

Docstring coverage — покрытие python-кода документацией

Время на прочтение2 мин
Охват и читатели7.5K
Как проверить, что python-разработчики (или вы сами) хорошо задокументировали код, кроме как просматривать все руками или генерировать pydoc'ом документацию и сравнивать с исходниками? Вот и я не нашел никакого решения, пока случайно не натолкнулся на старый-престарый скрипт, который вдохновил меня на форк и последующую несложную доработку.

В результате у меня получился простой и полезный (по крайней мере для меня :) ) инструмент Docstring coverage, позволяющий оценить процентное покрытие кода документацией по всему проекту.

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

Yet another classifier

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

Вместо вступления


Лень — двигатель прогресса. Не хочешь сам молоть зерно — сделай мельницу, не хочешь сам кидать во врагов камни — сооруди катапульту, надоело гореть на кострах инквизиции и гнуть спину под феодалом — замути с ребятами ренессанс… впрочем, о чем это я.
Автоматизация, господа. Берешь какой-нибудь полезный процесс, в котором участвует человек, заменяешь человека на сложный механизм, получаешь профит. Относительно недавно также стало модно заменять человека куском кода. О, сколько благородных профессий может пасть под натиском информатизации. Особенно если учесть, что кусок кода в наше время способен не только на заранее определенное поведение, но и на «обучение» какому-то поведению.
Читать дальше →

Параметризованные запросы и производительность django orm

Время на прочтение7 мин
Охват и читатели10K
Столкнувшись с существенными потерями производительности на использовании django orm, я стал искать выход из положения, рассматривая разные способы использования orm. Что у меня получилось — смотрите подкатом.

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

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

Время на прочтение12 мин
Охват и читатели94K
Это перевод и форма повествования от первого лица сохранена. Автор — Бен Бойтер, бакалавр информационных технологий в Университете Чарльза Стерта (CSU).


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

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

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

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

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

Сокеты в Python для начинающих

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

Предисловие


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



Что это


Для начала нужно разобраться что такое вообще сокеты и зачем они нам нужны. Как говорит вики, сокет — это программный интерфейс для обеспечения информационного обмена между процессами. Но гораздо важнее не зазубрить определение, а понять суть. Поэтому я тут постараюсь рассказать все как можно подробнее и проще.

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

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