• Поддержка Django приложений в Google App Engine

      Недавно google анонсировал Cloud SQL для своего облака. Но вначале подержки django не было, и вот в начале февраля выходит App Engine 1.6.2 с поддержкой запуска приложений на django. Теперь можно забыть про скакания вокруг app-engine-patch и django-nonre, и пытаться эмулировать реляционную базу данных поверх bigtable.
      Читать дальше →
    • Популярно об Amazon Web Services

      Вступление


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

      Управление AWS осуществляется как с помощью веб интерфейса (AWS console), так и с помощью Command Line Tools. В консоли собраны все сервисы AWS, но функциональность настройки несколько обрезана. В командной строке же можно более гибко настроить тот или иной сервис, так же доступны закрытые в консоли функции.

      Amazon Elastic Compute Cloud (EC2)


      Описание

      EC2 — это облачный сервис, предоставляющий виртуальные сервера (Amazon EC2 Instance), 2 вида хранилищ данных, а так же балансировщик нагрузки (Load Balancer).
      Читать дальше →
    • Популярно об Amazon Web Services: CloudFront [продолжение]

        Всем доброго дня!image

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

        Amazon CloudFront


        Описание

        CloudFront — CDN (Content Delivery Network — Сеть Доставки Контента) от Amazon, основанный на сервисе S3 или другом источнике файлов. Раздача (Distribution) создаётся и закрепляется на бакет S3, либо же на другой источник, который задаётся пользователем.
        Читать дальше →
      • Список проверки глупых вещей — Лимончелли

        Многим известны книги Томаса Лимончелли по системному администрированию, очень ценные для админа книжки. На его сайте тоже немало интересного, среди прочего нашёл такую статью: «A list of dumb things to check». На русском языке она, к сожалению, не нагуглилась, переводил сам. После допилинга под свои условия буду использовать как часть КМБ у себя в отделе, а первоначальный перевод выкладываю тут.
        Читать дальше →
      • viewdoc — удобный доступ к любой документации

          Для просмотра разной внешней документации (man/perldoc/pydoc/etc.) в Vim есть множество плагинов и рецептов. Проблема в том, что одни не настраиваются на открытие окон с документацией удобным мне способом, другие не расширяются для поддержки новых источников документации, третьи глючат и написаны слишком криво чтобы их можно было относительно просто пофиксить и выслать патч автору. На днях меня эта ситуация окончательно достала, и я написал плагин viewdoc, решающий все эти проблемы.

          Он прост внутри и удобен в использовании, предоставляет единый пользовательский интерфейс для работы с любой документацией (включая встренный :help), умеет определять требуемую документацию по контексту, гибко настраивается, и очень просто расширяется (внешними плагинами или прямо в ~/.vimrc) для добавления новых источников документации. Основной недостаток — тестировался только в linux, может работать в других *nix, точно не будет работать в винде.
          Читать дальше →
        • Вызываем функции Windows API (и любые другие функции, написанные на языке Си) джаваскриптом из Node.js

          • Tutorial
          Со вчерашнего дня, господа, можно написать вот такой скрипт:

          // функция преобразования строки JavaScript (UTF-8) в UTF-16
          function TEXT(text){
             return new Buffer(text, 'ucs2').toString('binary');
          }
          
          var FFI = require('node-ffi');
          
          // подключаемся к user32.dll
          var user32 = new FFI.Library('user32', {
             'MessageBoxW': [
                'int32', [ 'int32', 'string', 'string', 'int32' ]
             ]
          });
          
          // диалоговое окно
          var OK_or_Cancel = user32.MessageBoxW(
             0, TEXT('Привет, Хабрахабр!'), TEXT('Заголовок окна'), 1
          );
          

          и, запустив его в Windows, получить желаемый результат — диалоговое окно Windows.

          Это стало возможным потому, что модуль node-ffi (обёртку вокруг той необыкновенно полезной библиотеки libffi, которая используется для вызова библиотек на языке Си не менее чем в восьми других языках) вчера портировали на Windows.

          Читать дальше →
        • Новый программерский жаргон

          • Translation
          Посетителям сайта stackoverflow.com был задан вопрос: «Какие программерские термины вы придумали, так чтобы они стали популярны в ваших кругах (то есть вы слышали, что кто-то их повторяет)?

          Ниже — вольный перевод самых популярных ответов.

          Читать дальше →
        • XMPP-бот на Java с использованием Smack API

            image

            Всем доброго времени суток!
            Тема написания ботов для жаббера довольно широко распространена. Но на хабре нашел всего одну статью, в которой бот был написан для сервера OpenFire. И в первом же комментарии написано, что было бы неплохо почитать про написание универсального бота, не привязанного к серверу. Так я и решил написать эту статью. Также расскажу про бота для Google Talk и один нюанс, связанный с этим ботом.
            Читать дальше →
          • Пишем онлайн игру на NodeJS, Express и Socket.IO

            Привет %habraname%!





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


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

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

            Но сейчас я чувствую в себе силы чтобы уже написать полноценный обучающий и не унылый материал от новичка до реального работающего приложения. Это будет не просто приложение, а онлайн игра с использованием самых популярных инструментов Express и Socket.IO, да-да, мультиплеер, который сможет сделать любой средне-статистический js разработчик.

            О том, что такое Express и Socket.IO уже писали много где, поэтому описывать ещё раз я не буду, уделив больше внимания процессу разработки.

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

            И так, решено! Начинаю делать крестики-нолики.
            Читать дальше →
          • Простая real-time коммуникация с посетителем

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

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

              Читать дальше →
            • Как ускорить эмулятор Android на 400%

              • Translation
              Последние несколько месяцев я работал над SDK для Android, входящим в платформу управления контентом Nuxeo. Особенно много работы было в последнее время, с приближением официального релиза SDK. Я хочу поделиться несколькими практическими советами по поводу разработки под Android, в частности тестирования и эмуляции. Уже после нескольких дней разработки я понял, что работа с эмулятором Android — не сахар, потому что он чудовищно медленный.

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

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

              В любом случае, мне хотелось найти решение, потому что я хотел показывать результат работы приложения на проекторе и не хотел чтобы демонстрируемое приложение тормозило.
              Читать дальше →
            • Tactoom.com изнутри — социальная блог-платформа на NodeJS/NoSQL

                Tactoom.com - under the hoodИтак, пришло время раскрыть некоторые карты и рассказать о том, как устроен Tactoom изнутри.

                В этой статье я расскажу о разработке и выведении в production веб-сервиса с использованием:
                NodeJS (fibers), MongoDB, Redis, ElasticSearch, Capistrano, Rackspace.
                Читать дальше →
              • Кое-что о соглашениях об именах почтовых ящиков


                  Заведя для себя «почту для домена» на Яндексе, я решил открыть свободную регистрацию посторонним юзерам почтовых ящиков на своем «модном» домене. Помимо включения функции catch-all, которая направляет всю входящую почту несуществующих ящиков моего домена на мой основной ящик, предо мной встала необходимость зарезервировать за собой все «стандартные» названия ящиков, чтобы не было недоразумений, когда какое-то имя уже забил посторонний, и вся «служебная» почта уходит совсем не вам. В П.Д.Д. можно, конечно, в любой момент экспроприировать любой ящик подконтрольного домена, но ведь осадочек-то остается. Я озадачился: какие же имена почтовых ящиков являются стандартными и системными? Техподдержка Яндекса ответила, что они резервируют для себя только имя postmaster@ на каждом домене, чтобы отслеживать жалобы и проблемы с почтой, и что на данный момент вопрос о наборе резервированных имен у них остается открытым. Далее, результат поиска в интернете оказался немного предсказуем.
                  Читать дальше →
                • Мой подход к созданию ТЗ на шаблонные сайты

                  eyestopper

                  Вместо эпиграфа.


                  Поймал дед золотую рыбку. Она ему говорит:
                  — Чего тебе, дед?
                  — Хочу чтоб мой аппарат был длиной до колен.
                  Взяла рыбка и укоротила деду ноги.
                  Мораль: ставьте корректно техническое задание.

                  Добрый день великий и могучий Хабр.
                  Некоторое время назад было несколько постов о технических заданиях (Как поставить задачу для простого (шаблонного) сайта, Почему мы никогда не составляем ТЗ. А что взамен?, Правила технического задания), которые хотелось бы продолжить и рассказать про мой подход к написанию ТЗ на шаблонные сайты.
                  Читать дальше →
                • CSS хаки

                  Браузеры и стандарты. Вечная погоня. Из-за несоответствий стандартам, из-за разных способов рендеринга страниц большая часть времени веб-дизайнера уходит на то, чтобы загладить эти несоответствия (использовать хаки). В итоге, вместо эффективной работы, дизайнер вступает в противоестественные отношения с браузерами, теряя драгоценное время.
                  Читать дальше →
                • Продуктивная работа в vim с использованием snipMate

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

                  snipMate — позволяет быстро вставить в документ текстовый шаблон с помощью ключевого слова + <tаb> и предоставляет удобную навигацию по вставленному шаблону.
                  Читать дальше →
                • Flash в открытую объявил о своей дружбе с обычной телефонией!

                    Анонсировано первое свободное RTMP решение для VoIP с открытым исходным кодом!


                    http://ru.wikipedia.org/wiki/RTMP

                    Команда разработчиков FreeSWITCH сообщает о выходе официального релиза mod_rtmp – первого свободного решения для VoIP с открытым исходным кодом, и выражает благодарность компании Barracuda Networks, которая позволила выпустить модуль под лицензией MPL, т. е. под той же лицензией что и FreeSWITCH.

                    RTMP (Real Time Messaging Protocol ) – протокол обмена мгновенными сообщениями в режиме реального времени, изначально был разработан компанией Macromedia, что позволило передавать потоковое аудио и видео в вездесущем Flash-плеере. После того, как компания Adobe приобрела Macromedia, первая анонсировала релиз спецификации RTMP, что позволило сторонним разработчикам заняться программированием серверной части приложений, поддерживающих протокол RTMP, а также работать с Flash-плеером и другими RTMP-клиентами.

                    Программный модуль реализации протокола RTMP позволяет серверу FreeSWITCH выступать в качестве RTMP-сервера, что в результате позволяет бриджевать клиентские RTMP-потоки с SIP каналами и телефонными линиями с канальной коммутацией (TDM), ровно как и осуществлять конференц-связь между ними.

                    В данный момент модуль mod_rtmp поддерживает speex голосовой кодек.

                    Одним из прикладных применений этой технологии является осуществление web-клиентом вызова непосредственно из браузера! Web-страница компании может обнаружить, установлен ли Flash у клиента, и предложить посетителю нажать специальную кнопку для связи с представителем компании.
                    Читать дальше →
                  • Анализ реальных паролей пользователей и улучшенный полный перебор

                      Прочитал сегодня на хабре перевод статьи Распределение символов в паролях. Захотелось провести свой небольшой анализ. Интерес для меня представляют длины паролей, первые символы паролей и используемые в паролях биграммы (пар смежных символов). А также в статье будет рассмотрен алгоритм улучшенного полного перебора паролей.
                      Читать дальше →
                    • Новые возможности XMLHttpRequest2

                      • Translation
                      Одним из незамеченных героев вселенной HTML5 является XMLHttpRequest 2. Строго говоря XHR2 не является частью HTML5 и не является самостоятельным объектом. XHR2 это тот же XMLHttpRequest, но с некоторыми изменениями. XHR2 является неотъемлемой частью сложных веб-приложений, поэтому ему стоит уделить большее внимание.

                      Наш старый друг XMLHttpRequest сильно изменился, но не многие знают о его изменениях. XMLHttpRequest Level 2 включает в себя новые возможности, которые положат конец нашим безумным хакам и пляскам с бубном вокруг XMLHttpRequest: кросс-доменные запросы, процесс загрузки файлов, загрузка и отправка двоичных данных. Эти возможности позволяют AJAX уверенно работать без каких-либо хаков с новейшими технологиями HTML5: File System API, Web Audio API, и WebGL.

                      В этой статье будут освещены новые возможности XMLHttpRequest, особенно те, которые можно использовать при работе с файлами.
                      Читать дальше →
                    • Bitcoin. Как это работает

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

                        Поиск хабра по Bitcoin выдает два топика. Но это скорее новости. По комментариям заметно, что у многих людей, особенно не знакомых с Bitcoin напрямую, возникает много вопросов насчет принципов его работы. Также много догадок, зачастую неверных. Чтобы как-то прояснить ситуацию, было решено написать эту статью.
                        Читать дальше →