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

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


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


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


      — Да, в курсе.


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

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

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


          Вступление

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

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

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

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

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

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

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

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

              Зачем?


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

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

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

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

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

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

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

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


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

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

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

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

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

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



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

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