• Duolingo

      image
      В последнее время различные системы онлайн обучения, от LinguaLeo и до Coursera и Udacity, активно набирают все большую популярность. В этом посте мне бы хотелось рассказать о еще одном сервисе для обучения иностранным языкам, Duolingo, обзора которого я еще не встречал на хабре.
      Читать дальше →
    • Настройка Jenkins для django проекта с нуля

        Всем привет.

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

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

        В качестве новой системы был выбран Jenkins, о его установке и настройке для django-проекта и пойдет речь в этой статье. Кто заинтересовался, добро пожаловать под кат.
        Читать дальше →
      • Интеграция Django и Selenium



          Всем привет.

          Ни для кого не секрет что тестирование приложений является важным этапом разработки ПО, а если вы разрабатываете веб-приложения, то вам просто необходимо тестировать веб-интерфейс. К счастью, для этой цели существует такой инструмент как Selenium. Небезызвестные на хабре компании СКБ Контур и Яндекс уже выбрали его как инструмент функционального тестирования своих приложений и сервисов (Яндекс рассказывал об этом на недавно прошедшей YaC).

          Теперь к делу.
          В одном из проектов, над которым я работаю, мы использовали Selenium начиная еще с первой ветки. Но время не стоит на месте, вышел Selenium 2.0, основанный на технологии webdriver, более функциональный, удобный, и правильно имитирующий события в браузере (подробнее о преимуществах).

          Чтобы не заниматься обновлением старого кода поддержки Selenium внутри нашего приложения (а вдруг это придется делать еще и не один раз?), а также чтобы попробовать сделать что-то полезное для других разработчиков, мы решили сразу вынести интеграцию с Selenium в отдельную библиотеку.
          Что из этого вышло
        • Асинхронные задания в Django c помощью Celery

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

            Около года назад на хабре была довольная хорошая статья, рассказывающая о том, как использовать Celery. Однако, как было упомянуто в заключении, уже вышла Сelery 2.0 (на данный момент стабильной версией является 2.2.7), где интеграция с django была вынесена в отдельный пакет, а также произошли другие изменения.

            Данная статья будет полезна прежде всего новичкам, которые начинают работать с Django, и им требутся что-то, способное выполнять асинхронные и/или периодические задания в системе (например очистку устаревших сессий). Я покажу как установить и настроить Сelery для работы с Django от начала до конца, а также расскажу про некоторые другие полезные настройки и подводные камни.
            Итак, приступим.
          • Django — обработка ошибок в ajax-формах

              Hello everyone!

              Все мы знаем что Django — очень мощный и динамично развивающийся фреймворк для создания веб-приложений. Однако, несмотря на наступление эпохи Веб 2.0, в нём всё ещё нет встроенных механизмов для работы с AJAX, в частности отправки и проверки форм. Возможно django просто не хочет навязывать пользователю какой-то js-фреймворк и хочет оставаться гибкой в этом вопросе, но так или иначе при разработке часто требуются формы, работающие через ajax, без перезагрузок страниц.
              О создании таких форм и работе с ними и пойдёт речь в данной статье.

              Сразу оговорюсь, что идея не нова, и существует несколько библиотек, реализующих требуемую функциональность, например одна из них — http://www.dajaxproject.com/.
              Для тех же, кто предпочитает сам управлять взаимодействием клиента с сервером или тех, кто не хочет втягивать в проект дополнительную библиотеку и иметь дело с её багами, я расскажу как изобрести велосипед реализовать механизм самостоятельно и опишу различные способы решения проблемы.
              Читать дальше →
            • Индикатор прогресса с помощью HTML5 Canvas

                Привет, Хабр!
                Всё больше статей появляется про Canvas, и это не может не радовать. Основы, будем надеяться, уже изучены, а мне хотелось бы поделиться примером возможного практического использования canvas, а именно создать анимированный индикатор прогресса.

                Для нетерпеливых результаты эксперимента можно посмотреть здесь: http://pastehtml.com/view/1d7z824.html, а также скриншот конечного результата:


                Прогресс-бар получился довольно простой, но в то же время в стиле веб 2.0 — закругленный (конечно же!), с элементами глубины и объема: то есть тенями и градиентами.

                За подробностями прошу под кат.
                Приступить к созданию
              • Работа и аспирантура в Швейцарии

                  Здравствуйте, дорогие хабравчане. Так вышло, что около полугода назад у меня получилось устроиться на работу в Швейцарии, в швейцарскую федеральную политехническую школу (EPFL) в Лозанне. К текущему моменту накопилось множество различных впечатлений, о которых я и хочу рассказать.
                  Читать дальше →