• CSS3: жизнь без префиксов

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

      Проблема очевидна. Нужен способ облегчить работу с префиксами.

      Естественно, перестать использовать префиксы было бы неразумно. Но переложить обязанность по их генерации на существующие специально для этого инструменты вполне возможно. Я попробовал перечислить возможные варианты.
      Читать дальше →
    • Не желаешь выкинуть ардуину?

        image Если тебе надоело в наш век повальной 32-битности возиться с древней как дерьмо мамонтатеплой ламповой восьмибитной ардуиной — у тебя есть уникальный шанс! Microchip совместно с DesignSpark дают тебе шанс совершенно бесплатно получить плату, совместимую по размерам и контактам с Ардуино, но имеющую на борту 32-битный микроконтроллер плюс уйму всяких ништяков.
        Читать дальше →
      • Новый алгоритм MIT в десятки раз ускоряет быстрое преобразование Фурье



          На симпозиуме по дискретным алгоритмам ACM на этой неделе группа исследователей из MIT представила новый алгоритм быстрого преобразования Фурье sFFT (Sparse Fast Fourier Transform), который на некоторых задачах может быть в десятки или сотни раз быстрее классического БПФ.
          Читать дальше →
        • Viola Jones на собственной шкуре, часть 2. — Emotion? — OMG, Yes!!!

            Привет всем еще раз! Я решил сразу попробовать выпустить две статьи, практически в одно время, чтобы не прерывать цепь повествования, т.к. начало данной статьи очень важно!
            Итак, многие ждали примеры моей программы и объяснения ее работы с точки зрения написания кода. Я же рассказываю последовательно, чтобы каждый смог ее повторить у себя на компьютере. Обращайте внимание побольше на обильные комментарии в коде, в них сила! И не бойтесь мега-мелкого скролла, т.к. информации много. Передислоцируйтесь в место с хорошим интернетом, в статье много схем и фотографий!
            Let's get it started!
          • Upgrade Viola Jones

              В моём предыдущем топике я старался показать, как метод Viola Jones работает, с помощью каких технологий и внутренних алгоритмов. В данном посте, дабы не прерывать цепочку, будет также много теории, будет показано за счет чего можно улучшить и до того прекрасный метод. Если здесь описать еще и программную реализацию, то будет огромное полотно, которое читать будет очень неудобно, и смотреться это никак не будет — решено разбить объем информации на два отдельных поста. Ниже — теория, мало картинок, но много полезного.
              Заинтересованных прошу под кат
            • Метод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц

                Хотя метод был разработан и представлен в 2001 году Полом Виолой и Майклом Джонсом [1, 2], он до сих пор на момент написания моего поста является основополагающим для поиска объектов на изображении в реальном времени [2]. По следам топика хабраюзера Indalo о данном методе, я попытался сам написать программу, которая распознает эмоцию на моём лице, но, к сожалению, не увидел на Хабре недостающей теории и описания работы некоторых алгоритмов, кроме указания их названий. Я решил собрать всё воедино, в одном месте. Сразу скажу, что свою программу успешно написал по данным алгоритмам. Как получилось рассказать о них ниже, решать Вам, уважаемые Хабрачитатели!
                Добро пожаловать под кат!
              • ExtJS/Rails CRUD приложение за 7 минут

                • Перевод
                Этот пост покажет вам простые шаги по созданию TODO веб приложения с ипользованием ExtJS, Ruby on Rails и Netzke. Это займет у вас приблизительно 7 минут, и если вам заранее любопытно стоит ли оно того, смотрите сразу последнюю часть (кстати самую большую), где и обсудим результаты. Наша цель заключается в создании веб приложения которое позволит вам добавлять, редактировать и удалять TODO задачи, а также отмечать сделанные. В дополнение к этому вы сможете сортировать и искать задачи, редактировать несколько задач одновременно, и это еще не все. Можете засечь время на своих часах, давайте приступим к работе.
                Читать дальше →
              • JSZip Создаем .zip файлы

                  Очень хороший и простой способ отдать клиенту несколько файлов в zip архиве. Не нагружая и без того нагруженный сервер.
                  var zip = new JSZip();
                  zip.add("Hello.txt", "Hello World\n");
                  img = zip.folder("images");
                  img.add("smile.gif", imgData, {base64: true});
                  content = zip.generate();
                  location.href="data:application/zip;base64,"+content;
                  

                  Итак давайте разберем, что тут происходит.
                  Создается экземпляр нашего zip архива, класс JSZip,.
                  Далее мы можем добавлять в него любые данные, допустим Hello.txt, также можно добавить папку images.
                  Далее положить в нее smile.gif, все это завернуть, и отдать вам как zip фаил.
                  Узнать вкусные подробности
                • Dart — путь к мировому господству за 24 час… месяца

                    image

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

                    Сразу после анонса Dart получил просто шквал критики: скудность синтаксиса, непонятная позиция и переспективы на рынке, слабо развитые средства разработки. Разве это когда-нибудь станет языком #1 для Web и вытеснет JavaScript? Знаете, станет, и вот почему…

                    1. Chrome уже обогнал Firefox в некоторых странах(UK), через полгода обгонит суммарно, а потом вытеснит совсем: к сожалению новый цикл разработки не пошёл Firefox на пользу: плагины не успевают обновлятся, жалуются на схему как системные администраторы, так и разработчики, а стабильность и прожорливость ресурсов — пока на старом уровне. Internet Explorer так же продолжает терять рынок. В ближайшем будущем на десктопе будет доминирование IE & WebKit(Chrome & Safari).



                    На мобильных устройствах, которые растут куда быстрее, WebKit уже #1 с практически полным покрытием рынка смартфонов и таблеток: Android/iOS/BlackBerry/Bada/WebOS/Symbian. Именно здесь сейчас протекают самые интересные инновации пользовательских интерфейсов.

                    Но, как мы помним, в основной ветке WebKit используется не V8 от Google, а JavaScriptCore/SquirellFish. Я думаю, что Google попытаются перенести V8 в проект WebKit — таким образом Google может получить ~50% рынка десктопов и 90% рынка мобильных устройств, которые из коробки смогут поддерживать Dart.

                    Читать дальше →
                  • has_many :through => Как быстро обратиться к join-объектам?

                      Вы знаете, что когда требуется организовать many-to-many отношения между двумя моделями, прогрессивная часть человечества применяет join-таблицы и метод has_many с опцией :through => :join_model_name. Каждая связь между двумя ActiveRecord-объектами представляет собой ActiveRecord-объект.

                      И это чудесно, ибо в join-таблице можно насоздавать полезных (так называемых «extra») полей с дополнительной информацией о связях между объектами.

                      Вопрос в том, как красиво достучаться до этих extra атрибутов.

                      Все скринкасты и книжки, как назло, оперируют простыми примерами. Например, дружат между собой модели Article и Category. Само собой, для join-класса интуитивно напрашивается имя Categorization или ArticleCategorization.

                      has_many through

                      Соответственно, если у нас есть два объекта — article и category, и мы хотим найти AR-объект (или объекты), олицетворяющий связь между ними, то авторы книжек с чистым сердцем предлагают делать так:

                      relations = article.article_categorizations.find_by_category_id(category)


                      В жизни все сложнее. Модели нередко имеют длинные составные имена, либо между моделями такая связь, что придумывание имени для каждой join-модели превращается в маленькую пытку. Представим, что у нас модели не Article и Category, а UserGroup и Community, или Preorder и CustomerNotification. Как должна называться связующая модель? Возможны варианты.

                      Читать дальше →
                    • Поддомены в Rails

                      • Tutorial
                      Думаю каждый кто работал с под-доменами в Rails 3 видел данный скринкаст.

                      Когда столкнулся с этим примером стояла задача сделать динамические поддомены + некоторые фиксированные. Динамические должны были соответствовать некоторому полю одной из моделей. Таким образом были выдвинуты условия для конечного решения:
                      • возможность указания фиксированного поддомена, либо группы поддоменов;
                      • возможность привязки к полю из модели ActiveRecord;
                      • удобный синтаксис для записи всего этого в routes.rb.
                      Читать дальше →
                    • Первая open-source библиотека мобильных платежей для Android


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

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

                        Читать дальше →