• Библиотека f для функционального программирования в Питоне

      Привет, коллеги!


      Я расскажу о библиотеке для Питона с лаконичным названием f. Это небольшой пакет с функциями и классами для решения задач в функциональном стиле.


      — Что, еще одна функциональная либа для Питона? Автор, ты в курсе, что есть fn.py и вообще этих функциональных поделок миллион?


      — Да, в курсе.


      Причины появления библиотеки

      Читать дальше →
    • Программный захват с вебкамеры

        Недавно мне потребовалось получать данные с вебкамеры для автоматической их обработки. Перебрав несколько программок, обнаружил, что ни одна из них не позволяет рулить камерой программно — только формы да кнопки, в лучшем случае есть планировщик записи, но для этого приходится постоянно держать программу запущенной. Плюс не кросплатформенно, привязка к конкретному ПО в проекте. Решение — задействовать любимый язык программирования.
        Читать дальше →
      • Queryfeed — RSS-ленты из Твиттера и Фейсбука


          Вступление

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

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

          Итак, милости прошу на Queryfeed.
          Читать дальше →
        • Моя интеграция с 1С

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

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

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

            Читать дальше →
          • Авторизация через Хабр

              Я бы хотел, чтобы Хабр имел возможность авторизовывать пользователей на сторонних сервисах.

              Зачем?


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

              Во-вторых, некоторые хабраюзеры проектируют сервисы, целевой аудиторией которых является Хабр, например, небезызвестный хостинг картинок habreffect.ru, всевозможные мониторы кармы и рейтинга и тд. Само собой, что для таких сервисов напрашивается хабраавторизация.

              В-третьих, при такой авторизации разработчик может вносить ограничения, например, не пускать пользователей с кармой < -100, что, согласитесь, порой имеет смысл.
              Читать дальше →
            • Класс-клиент goo.gl и настройка API

                UPD: репозиторий теперь на Гитхабе.

                Здравствуйте, коллеги!

                Помню, в свое время меня очень обрадовала новость, что у гугловской сокращалки урлов появились официальные API. В то время я как раз разрабатывал приложение, которому часто требовалось сокращать ссылки новостных лент. Я как раз прикручивал bit.ly, но испытал соблазн попробовать новый сервис от Гугла. Воспользовавшись документацией, я за несколько часов набросал базовый функционал и встроил скрипт в проект.

                С течением времени в скрипт вносились изменения, и, наконец, я решил дополнить код комментариями, написать простую документацию и выложить всё на гуглокод.

                Основные возможности и особенности класса от конкурентов:
                Читать дальше →
                • +46
                • 32.2k
                • 3
              • Рисуем волну .wav-файла


                  Некоторое время назад я решил посвятить себя решению экзотической задачи — нарисовать волну wave-файла, как это делают аудио- и видеоредакторы, используя для этого Питон. В результате у меня получился небольшой скрипт, который вполне с этим справляется. Так, картинка выше сгенерирована им из песни «Under Pressure» группы Queen. Для сравнения — вид волны в аудиоредакторе:

                  Для разбора звука я использовал библиотеку numpy, а для построения графика — matplotlib. Под катом я изложу основы работы с wav-файлами и алгоритм скрипта.
                  Читать дальше →
                • Моделирование отношений в App Engine

                  • Translation
                  Одной из проблем, с которой сталкиваются GAE-разработчики, привыкшие работать с реляционными СУБД и ORM, являются ссылки и отношения в App Engine. В данном руководстве рассматриваются два вопроса: во-первых, что вообще представляют из себя отношения в СУБД?; во-вторых, как ими пользоватья в GAE?
                  Читать дальше →
                • App Engine API под капотом

                  • Translation
                  Этим топиком я хочу открыть серию переводов блога Ника Джонсона. Ник публикует крайне полезные статьи по GAE, делится опытом, ставит необычные экспериметы. Надеюсь, эти материалы будут вам полезны.

                  Если вы используете App Engine только для простых приложений, то лучше воздержаться от дальнейшего чтения. Если же вам интересны низкоуровневые оптимизации или вы хотите написать библиотеку для работы с самыми сокровенными компонентами App Engine, прошу читать далее!

                  Общий API-интерфейс



                  В конечном счете, каждый API-вызов проходит через один общий интерфейс с 4-я аргументами: имя службы (например, 'datastore_v3' или 'memcache'), имя метода (например, 'Get' или 'RunQuery'), запрос и ответ. Запрос и ответ являются буферами протоколов — двоичным форматом, широко используемым в Google для обмена структурированными данными между процессами. Конкретный тип запроса и ответа буферов протокола зависит от вызванного метода. Когда происходит вызов API, буфер протокола запроса формируется из данных, отправленных в запросе, а буфер протокола ответа остается пустым и в дальнейшем заполняется данными, возвращенными ответом API-вызова.
                  Читать дальше →
                  • +43
                  • 1.5k
                  • 6
                • PDF-версия руководства по быстрому старту в Drupal

                    интро
                    Отверстал PDF-версию перевода руководства, изложенного в первой и второй частях.
                    Объем 48 страниц.
                    Выложил на амазон, чтобы всегда был доступен.
                    В документе оглавление, букмарки, все ссылки оригинала.
                    Критика, пожелания, поправки приветствуются.
                  • Начинаем работать с Drupal: полное практическое руководство (часть 2)

                    • Translation
                    Продолжение первой части.

                    Создадим страницу вакансий с помощью модуля Views

                    Хотя вы и можете самостоятельно писать запросы к базе данных для чтения содержимого, дело это долгое и сложное, даже с учетом мощного API Друпала.
                    Для построения страницы со списком вакансий мы задействуем Views — модуль, позволяющий извлекать содержимое из базы данных вообще без написания кода.
                    Попросту говоря, Views — это пользовательский интерфейс построения MySQL-запросов. Views — это невероятно мощный модуль, но порой его бывает трудно освоить начинающим пользователям. Лучший способ разобраться с Views — немного с ним поиграть, чем мы сейчас и займемся.
                    Читать дальше →
                  • Начинаем работать с Drupal: полное практическое руководство (часть 1)

                    • Translation
                    Здравствуйте!

                    Выношу на суд хабраобщества перевод замечательной статьи Getting Started with Drupal: A Comprehensive Hands-On Guide. Данный материал является незаменимым руководством для начинающих друпальщиков, поскольку в нем рассматриваются не только установка и базовые принципы, но и два из «трех китов» Друпал-сайтостроения — Views и CCK. Самое приятное, что вся статья посвящена практическому созданию полезного сайта (доски объявлений). Право, во времена Друпала 4.7, когда я только начинал с ним знакомиться, о таких подробных и внятных руководствах можно было только мечтать.
                    Читать дальше →
                  • Работа с 3G-модемом и смс с помощью Python

                      Привет, %username%!

                      Недавно мне пришлось столкнуться со следующей задачей: есть старенький десктоп с установленной на нем Windows XP. Необходимо, чтобы с заданным интервалом времени программа на этом десктопе посылала GET-запрос на нужный сервер, парсила ответ и, в зависимости от результата, отсылала смс-сообщения на нужные номера. Из дополнительных девайсов имелся только 3G-модем E160g от Биллайна, а подключение к интернету по проводной сети или WI-FI было физически невозможно.

                      Задача была выполнена с помощью только этого модема и языка Python.
                      Читать дальше →
                      • +10
                      • 1.5k
                      • 4