• Геймификация багфикса. Как мы превратили исправление ошибок в увлекательную многопользовательскую online-игру

      Автор: maxim_korobtsev, WorkAndPlay.Ru

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

      Фиксить баги скучно, если не превращать это в игру. Особенно, если речь идет о низкоприоритетных багах, которые не были исправлены в свое время из-за незначительности. Но, обо всем по порядку!

      Как все начиналось?


      Все началось за несколько месяцев до Багатлона, когда мы, Work&Play, вместе с OK придумывали игровые механики и само соревнование. Родилась достаточно неплохая идея: расфасовать все множество накопившихся низкоприоритетных багов по группам (коробкам с багами). Для каждого бага заранее указать навыки, которые он прокачивает у того, кто его фиксит или проверяет. Далее раз в несколько месяцев устраивать соревнование. Причем, победителем будет не тот, кто больше пофиксил, а тот, кто больше всех прокачался пока багфиксил. Также хотелось, чтобы вся игра проходила без отрыва от работы(в рабочие дни), по тикетам из багтрекера и доступ к ней был прямо из Jira.

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

      Что у нас получилось в итоге?


      В результате, после нескольких месяцев работы над плагином, у нас получилось вот это:
      главный экран jira модуля для геймификации багфикса
      Читать дальше →
    • Состоялся релиз библиотеки libGDX 1.0

        Библиотека libGDX известна почти каждому разработчику Android-приложений. С её помощью добавляются текстуры, проигрывается звук, вызывается вибрация и т.д. «Все думали, что этот день никогда не наступит, но он наступил. Официально вышла версия libGDX 1.0!», — сообщается в официальном блоге Badlogic Games, маленькой австрийской компании, которая с 2009 года ведёт разработку проекта.

        Среди самых важных изменений в версии 1.0 — новый интерфейс для сборки проекта на основе Gradle. Теперь любой проект можно скомпилировать из командной строки или из Eclipse, Intellij IDEA и т.д. Больше никаких jar’ов в репозитории!
        Читать дальше →
        • +22
        • 7.8k
        • 5
      • TestCafe: Краткая история обретения гармонии в функциональном тестировании (с картинками)



          TestCafe — это кросс-платформенный фреймворк для функционального тестирования веб-приложений, выпущенный недавно компанией DevExpress.

          Мы в DevExpress занимаемся разработкой широкого спектра компонентов для веб-разработчиков (ASP.NET WebForms, ASP.NET MVC, а также JavaScript-компоненты и фреймворки) и, естественно, их тестируем. Если с юнит-тестами все в общем-то понятно и тут для каких-то невероятных откровений места не осталось, то с функциональными тестами ситуация далеко не так однозначна в силу сложности их реализации. Изначально фреймворк TestCafe был внутренней разработкой, нацеленной на решение насущных проблем с функциональным тестированием наших компонентов и сайтов. И так получилось, что эта внутренняя разработка в итоге выросла в самостоятельный продукт.

          В этой статье я расскажу, каковы были предпосылки к созданию этого фреймворка, с какими проблемами (помимо фатального недостатка) мы столкнулись при тестировании существующими решениями и как попытались с ними справиться.
          Читать дальше →
        • Начинаем работать с графовой базой данных Neo4j

          В нашем проекте возникла следующая задача — есть база с большим количеством товаров, на уровне сотен тысяч. У каждого товара есть сотни динамически создаваемых характеристик. Необходимо обеспечить быструю фильтрацию по товарам по набору различных характеристик. Время формирования ответа должно быть не более 0.3 секунды, нужно поддерживать сложную логику в стиле.

          (характеристика1 = true AND (характеристика2 < 100)) OR (характеристика1 = false AND (характеристика3 > 17)) ... далее обычно мешанина из AND\OR


          Типичный пример подобного функционала — hotline.ua/computer/myshi-klaviatury

          Пример функционала

          У нас все реализовано в рамках MySQL + Symfony2/Doctrine, скорость неудовлетворительная — ответы формируются в течении 1-10 секунд. Мои попытки оптимизировать все это хозяйство — под катом.
          Читать дальше →
        • Облачная платформа для чатов в мобильных приложениях


            Чат в приложении или игре – актуальная тема во все времена. Создано огромное количество всевозможных решений для их реализации, в т.ч. на основе стандарта XMPP. Однако все они, на мой взгляд, имеют достаточно высокий порог входа: требуется вникание в клиентский API, особенности настройки и поддержки сервера.

            В случае с мобильными приложениями все еще хуже – простых в использовании решений, адаптированных под их особенности, нет. Наша команда в последний год в i-Free занимается разработкой мессенджера Salut (salut.im), который, к сожалению, пока не стал конкурентом для всем известных WhatsApp, Viber и проч. Тем не менее, в ходе работы над ним мы прошли очень интересный путь, и теперь многое знаем и умеем в разработке обмена сообщениями на мобильных устройствах. Созданный нами серверный бекенд оказался весьма производительным, надежным и масштабируемым, а клиент-серверный протокол – простым в реализации на клиенте. Поэтому мы решили сделать сервис Salut Cloud, который позволит разработчикам мобильных игр и приложений быстро, в течение нескольких часов, создавать в своем приложении полнофункциональные чаты.В этой статье я изложу концепцию нашего сервиса и прошу хабровчан дополнить его своими пожеланиями – что бы вам хотелось в нем увидеть.
            Читать дальше →
          • Ratchet 2.0 — самый красивый HTML5-фреймворк теперь дружит и с iOS, и с Android



              Ratchet — так называется HTML5-фреймворк для быстрого прототипирования мобильных приложений, который 1,5 года назад создали те же парни, которые когда-то выпустили Bootstrap.

              Инструмент позволяет быстро создать красивый интерфейс мобильного приложения — и дает вам красивые стили и замечательные иконки, согласованные с гайдлайном в зависимости от платформы. Можно сделать прототип, а можно завернуть в PhoneGap и без особых усилий получить сравнимый с нативным интерфейс приложения в продакшене.
              Фреймворк очень прост в использовании и прекрасно документирован.

              Я являюсь поклонником Ratchet с момента выхода первой версии. Тогда он был доступен только под iOS.
              Не так давно вышла вторая версия, которая наряду с iOS поддерживает Android. Ура-ура!
              (правда, обратной совместимости с первой версией нет)

              Кому интересно про новые возможности Ratchet 2.0 — прошу под кат!
              Читать дальше →
            • 1000+ часов видео по Java на русском

              • Tutorial
              Добрый день.
              Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
              1. Java Core
              2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
              3. Multicore programming in Java.


              Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

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

              (GolovachCourses.com)


              Здесь собраны несколько вариантов записи моего курса Java Core.
              Модуль #1 (Procedural Java):
              Набор июль 2013: #1, #2, #3, #4
              Набор апрель 2013: #1, #2, #3, #4
              Набор февраль 2013: #1, #2, #3, #4
              Набор январь 2013: #1, #2, #3, #4
              Набор октябрь 2012: #1, #2, #3, #4.
              Читать дальше →
              • +102
              • 1103k
              • 38
            • Порталы нежити в Android



                Новостями и исследованиями о новых зловредах для мобильной операционной системы Android сегодня уже никого не удивить. Но компания Google делает определенные шаги для улучшения безопасности платформы (кстати, из-за принятой модели безопасности ОС и большой фрагментированности версий ОС это сделать очень тяжело). И это, в свою очередь, заставляет вирусописателей идти на новые шаги для распространения своих детищ.
                В данной статье я рассмотрю существующие и использующиеся уже сейчас векторы распространения вредоносов для ОС Android. Если интересно, то прошу под кат.

                Читать дальше →
                • +34
                • 25.9k
                • 7
              • Signed Distance Field или как сделать из растра вектор

                  Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.



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

                  Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:

                  convert in.png -filter Jinc -resize 400% -threshold 30% \( +clone -negate -morphology Distance Euclidean -level 50%,-50% \) -morphology Distance Euclidean -compose Plus -composite -level 45%,55% -resize 25% out.png
                  

                  На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
                  Читать дальше →
                • Полезное для Android разработчика из Github

                    Доброго времени суток.


                    Много бороздя по простором Github, я нашел множество интересных проектов, source кодов, и библиотек. И теперь пришло время поделиться ими. Встречайте множество вкусностей под катом!

                    Зайти на огонек!
                    • +41
                    • 20.4k
                    • 7
                  • Несколько интересностей и полезностей для веб-разработчика #13

                      Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

                      Colour Schemes


                      image
                      Репозиторий уже набрал более 4000 старов на GitHub. Автор проекта — Dayle Rees — один из участников команды Laravel PHP, где люди убеждены, что «код должен приносить удовольствие разработчикам, а не только пользователям, принимающим вашу трудную работу». Сolour Schemes на сегодняшний день это 56 различных тем для: Sublime Text (2 & 3), Sublime Text UI (2 & 3), Textmate, Coda 2, VIM, Jetbrains Editors (inc. PHPStorm), Google Code Prettify, Highlight.js и Xcode.

                      Читать дальше →
                    • Transcend WiFi. Пишем клиент Shoot&View для Windows, Mac и Linux

                        На хабре неоднократно упоминали о карте памяти формата SDHC со встроенным WiFi передатчиком. Купив эту карту, я был разочарован ужасным программным обеспечением, которое идет «в комплекте» с картой. Если приложением для iOS и Android хоть как то можно пользоваться, то отсутствие клиента под windows и macos, лишает карту возможности использования ее профессионалами. Точнее сказать, на PC есть веб интерфейс, но кроме ужасного внешнего вида, меня разочаровало отсутствие востребованной у фотографов функции Shoot&View, которая позволяет практически мгновенно видеть на большом экране компьютера результат съемки.

                        Любители geek-porno скорее всего разочаруются — мы не будет модифицировать прошивку, хакать ее, вскрывать саму карту памяти. Мы будет работать со «стоковой» картой памяти, без каких либо модификаций.

                        Итак, в этой статье, мы разберем с вами протокол Shoot&View карт памяти Transcend WiFi и напишем на python кроссплатформенный клиент, который запустится на windows, linux и MacOS. А для самых нетерпеливых, в конце статьи вас ожидает готовый python модуль для своих проектов, консольный клиент, а так же GUI утилита, которая работает на windows, linux и macos.

                        Читать далее
                      • Умная обрезка картинок с использованием точки фокуса

                        Недавно передо мной встала задача обрезать около сотни огромных картинок из фотобанка под несколько десятков разных размеров. Эти готовые картинки потом будут использоваться клиентами CMS для оформления своих сайтов. Прикинув сколько времени займет этот процесс в Фотошопе, я пригорюнился — встретить следующий Новый год за обрезкой картинок не входит в мои планы.
                        Читать дальше →
                      • Скорочтение по технологии spritz на любом сайте



                          Совсем недавно, была представлена технология скорочтения spritz (500 слов в минуту без подготовки) она позволяет вам читать тексты намного быстрее, но, к сожалению, разработчик не реализовал тогда её в виде приложения для прочтения собственных текстов.

                          Теперь же, появился проект Squirt, который позволяет читать любой текст по технологии скорочтения от spritz, установив только 1 букмарклет.
                          Читать дальше →
                        • Логика мышления. Часть 9. Паттерны нейронов-детекторов. Обратная проекция



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

                            Продолжим разговор о нейронах-детекторах. Предположим, на зону коры посредством волновых туннелей проецируется некая информация. Каждый из проекционных пучков – это аксоны нейронов, расположенных на той зоне, которая эту информацию посылает. Проекция снимается с малого по площади участка коры. Волокна проекционного пучка, по сути, транслируют проходящие по этому участку волновые картины. То место принимающей коры, куда приходится проекция, само становится источником волн. Эти волны несут на принимающей зоне коры ту же информацию, что и волны на исходной зоне.

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

                            Если мы обучим несколько расположенных в относительной близости друг от друга нейронов детектировать одну и ту же волновую картину, то мы получим уже не одиночный нейрон-детектор, а детекторный паттерн. Реакция одного нейрона-детектора на характерный стимул – пакет импульсов вызванной активности. Реакция детекторного паттерна – это вызванная активность группы нейронов, образующих определенный узор. Естественно, что такой паттерн вызванной активности начнет обучать кору на распространение своего уникального идентификатора.

                            Читать дальше →
                          • Шаблоны проектирования PHP. Часть 1. Порождающие

                              Тема заезженная до дыр, не спорю… Вероятно, для опытных разработчиков моя статья будет мало, чем полезна. Я бы рекомендовал её к прочтению тем, кто только начал осознавать, что его коду чего-то не хватает, и что он созрел для вникания в это далёкое понятие – «паттерны». По себе помню, что довольно долгое время я путался в шаблонах, иногда даже не понимая, чем один отличается от другого. Именно этот факт стал основой для моей статьи. Примеры в ней не будут реальными. Они будут абстрактными и максимально простыми. Однако я постараюсь все примеры держать в едином контексте, чтобы можно было наглядно видеть отличия их использования в одной и той же ситуации. Я не буду нагружать классы лишним функционалом, чтобы можно было понять, какая именно часть кода имеет непосредственное отношение к шаблону. Главными героями примеров станут Factory (фабрика) и Product (продукт, производимый этой фабрикой). Возьмём это отношение за отправную точку. Возможно, в некоторых примерах это будет не очень уместно, но зато очень наглядно…

                              Статья будет разбита на несколько частей. В каждой я буду рассказывать о новом типе шаблонов проектирования. Всем, кого эта тема может заинтересовать, прошу под кат.
                              Меня заинтересовала...
                            • Пишем эффективный blur на Android

                              • Translation
                              • Tutorial
                              image
                              Сегодня мы попытаемся разобраться с методами размытия (blur) доступными для Android разработчиков. Прочитав определенное число статей и постов на StackOverflow, можно сказать, что мнений и способов выполнить эту задачу достаточно много. Я попытаюсь собрать все это в кучу.

                              И так, зачем?


                              Все чаще и чаще можно заметить эффект размытия в приложениях появляющихся на просторах Google Play Store. Взять хотя бы замечательное приложение Muzei от +RomanNurik или тот же Yahoo Weather. Глядя на эти приложения можно заметить, что при умелом обращении размытием можно добиться очень впечатляющих результатов.

                              Читать дальше →
                            • Мобильные приложения будущего

                                Дисклеймер


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

                                Смена парадигмы использования мобильных приложений


                                В существующей парадигме использования мобильных приложений есть 2 обязательных элемента: мобильное устройство (сейчас это, главным образом, смартфон или планшет) и, собственно, приложение.

                                В будущем приложения выйдут далеко за пределы существующих мобильных устройств, а понимание мобильных устройств значительно расширится. Мобилизация ожидает не только телевизоры, игровые консоли, умные часы и Google Glass, большинство отраслей промышленности и непроизводственной сферы будут использовать приложения вместо десктопного программного обеспечения. «Мобильным» станет мир вокруг нас.
                                Читать дальше →
                              • 10+ полезных jQuery сниппетов на каждый день

                                • Translation
                                • Tutorial


                                Спустя годы библиотека jQuery стала неотъемлемой частью в работе каждого web-разработчика. Ведь она простая в использовании, быстрая и имеет очень широкие возможности. В этой статье я собрал список из более чем десяти сниппетов, которые вы можете свободно брать для использования. Их очень легко адаптировать под нужды ваших собственных проектов.
                                Читать дальше →