• Почему C быстрее Java (с точки зрения Java-разработчика)

    • Translation
    В листе рассылки Git развернулась дискуссия о том, как язык программирования высокого уровня снижает производительность приложения, в связи с обсуждением JGit. Дискуссия особенно интересна, потому что в ней принимали участие программисты, эксперты высочайшего уровня как в C, так и в Java. Один из них — Шон Пирс (Shawn O. Pearce), известный Java-программист из компании Google, активный коммитер в Eclipse, соавтор Git и автор Java-имплементации Git под названием JGit. В своём сообщении он назвал реальные ограничения, с которыми сталкивается высококвалифицированный разработчик, пытаясь написать эффективный Java-код, сравнимый по производительности с максимально оптимизированным кодом C. Хотя письмо датируется апрелем 2009 года, но некоторые аргументы Шона до сих пор не потеряли актуальность.

    List: git
    Subject: Re: Why Git is so fast (was: Re: Eric Sink's blog — notes on git,
    From: «Shawn O. Pearce» <spearce () spearce! org>


    Как было сказано ранее, мы сделали много маленьких оптимизаций в коде Git на C, чтобы добиться реально высокой производительности. 5% здесь, 10% там, и внезапно ты уже на 60% быстрее, чем был раньше. Нико [Питре], Линус [Торвальдс] и Джунио [Хамано] — все они потратили определённое время в последние три-четыре года для оптимизации отдельных фрагментов Git, исключительно для того, чтобы он работал максимально быстро.
    Читать дальше →
  • Великолепные стикеры с помощью CSS3

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

      Введение


      В своё время было необходимо сделать заметки в форме стикеров для веб-сайта. Как вы понимаете, выбора большого особо не было и мой выбор пал на всеми нам любимый CSS3. С его появлением осуществление задуманного стало возможным без какого-либо велосипедостроения. Итак, моё решение проблемы под катом. На самом деле, мопед не мой. Мне дали всего-лишь покататься.
      Читать дальше →
    • Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО

        Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

        Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

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

        Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
        Читать дальше →
      • Исследование о мобильных интерфейсах

        • Translation
        • Tutorial
        Представляю вашему вниманию перевод статьи под названием "A Study of Trends in Mobile Design" от Alexander Dawson. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.

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



        Цель этой статьи — рассказать вам о методах, которые используются на самых популярных сайтах для того, чтобы предоставить пользователям мобильных устройств удобное и (надеемся) полезное взаимодействие. Среди проанализированных сайтов много известных компаний, например Facebook и Amazon. Мы приготовили для вас настоящий экскурс в мир мобильного веб-дизайна, со статистикой и по-настоящему интересными открытиями.
        Читать дальше →
      • Создаем оригинальные hover-эффекты при помощи CSS3

        • Translation


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

        Пожалуйста, обратите внимание, что эти примеры будут корректно работать только в современных браузерах, которые поддерживают свойства CSS3.
        Читать дальше →
      • Создаем анимированные кнопки при помощи CSS3

        • Translation


        В данной статье я хочу поделиться с вами некоторыми экспериментами по созданию анимированных кнопок при помощи CSS3. Идея заключается в создании анимированных ссылок с разными стилями, hover-эффектами и пр.

        В данных примерах используются иконки с webiconset.com, а также шрифт от Just Be Nice.

        Мы рассмотрим каждый пример и разберем как выглядит их HTML-структура и стили для разных состояний кнопок.

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

        Чтобы не захламлять код в уроке я не буду использовать префиксы для различных браузеров. Их вы сможете увидеть в архиве с примерами.
        Читать дальше →
        • +199
        • 39.1k
        • 40
      • Анимация меню при помощи CSS3

        • Translation


        В данной статье я хотел бы показать вам некоторые приёмы создания эффектов при помощи CSS3 на примере меню. Идея заключается в простой композиции элементов: иконки, основного названия и вторичного названия, которое будет анимировано при наведении курсора, используя только CSS-переходы и CSS-анимацию. Мы рассмотрим несколько различных эффектов для элементов.
        Читать дальше →
      • Линейная алгебра для разработчиков игр

        • Translation
        • Tutorial
        Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
        Читать дальше →
      • Стилизация приложений часть первая

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

          Ну или пойдем по другому пути — у вас имеется своя контора Васей Пупкиных с некой деятельностью в мировой сети (допустим продажа хомячков), и (о ужас!) у вас есть целый сайт. Сайт, ага, сайт то у нас красивый, зелененький/красненький/желтенький ну и т.д. и есть программа-клиент для этого сайта, и мы хотим раскрасить свое приложение в цвета сайта.

          Это статья о том, как можно стилизовать свое приложение под конкретные цвета, а не ограничиваться цветами Андроида
          Поехали
        • 31 метод эффективного программирования под Android

          Данная статья является переводом очень хорошего топика с форума Stack Overflow. Так как английский язык не является для меня родным, то какие-либо непонятные мне места я просто пропускал, что бы не разгневать тех, кто его действительно знает. Статья содержит список советов и рекомендаций для начинающих разработчиков под Android.

          Читать дальше →
        • Apache Maven — основы

            После публикации топика о Maven в комментариях возникли вопросы о том, как начать с ним работать, с чего начать, как составлять файлы pom.xml, откуда брать плагины и т.п. Данный топик будет своего рода getting started или f.a.q.
            Поехали!
          • Знаешь ли ты JAVA, %username%? Часть вторая

              JAVA Evil EditionВ начале января я написал пост с интересными тестовыми задачками по Java. Он вызвал достаточно большой интерес, интересные задачки еще остались, поэтому продолжим.

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

              Так получилось, что в данную часть попали более легкие задачи, так что результаты должны быть лучше. Итак, очередной тест под хабракатом (Осторожно, во второй половине ответы и пояснения).
              Читать дальше →
            • Java сертификация — прохождение SCJP и SCBCD

                Не нашел на хабре статей, в которых бы авторы описывали сертификации по Java и делились своим опытом подготовки и ощущениями от сдачи.
                В некоторой степени хотел бы заполнить пробел этой статьей. Под катом – мое мнение по вопросу – сдавать или не сдавать сертификации, краткий обзор сертификаций по Java, а так же собственный опыт и ощущения от регистрации, подготовки и сдачи Java сертификаций SCJP и SCBCD.
                читать далее
              • Java сертификация. Подготовка к SCJP

                  В этом месяце я сдавал экзамен SCJP. В этом топике я расскажу о подготовке и экзамене.
                  В основном для тех, кто собирается сдавать и кому нужно больше информации об этом.

                  Уточнение


                  Так как Sun'a больше нет, то и экзамена SCJP тоже нет. Теперь он значится так:
                  1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam.
                  прочитать об экзамене и посмотреть задачи
                • Знаешь ли ты JAVA, %username%?

                  JAVA Evil EditionНедавно я сдавал экзамен Oracle Certified Professional Java Programmer (бывший Sun Certified), и за время подготовки прорешал огромное количество различных задачек. Отдельные задачки по джаве иногда появляются на хабре и вызывают немалый интерес, поэтому я решил поделиться накопленным и сделать небольшую подборку.

                  Итак, ниже представлен десяток наиболее, на мой взгляд, интересных задач по Java SE из более чем 1000, проработанных мной. Сложность варьируется от средней до ооооооочень сложной. Решение большинства задач практически не требует знания API, достаточно логики и фундаментальных основ Java.

                  К слову, сложность экзамена Oracle Certified Professional Java Programmer гораздо ниже чем сложность данного теста, поэтому все, кто правильно ответит хотя бы на половину этих вопросов, может смело сдавать этот экзамен без всякой подготовки.

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

                  ВНИМАНИЕ: во второй половине статьи — ответы и подробные пояснения по соответствующим нюансам JAVA.

                  Читать дальше →
                • Удачная модель ветвления для Git

                  • Translation
                  Перевод статьи Vincent Driessen: A successful Git branching model

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



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

                  Читать дальше →
                • Тестирование в Java. JUnit

                  • Tutorial

                  Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.

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

                  Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.

                  Я не претендую на автора каких-либо оригинальных идей, и возможно многим все, о чем будет рассказано в статье, знакомо. Но если вам все еще интересно, то добро пожаловать под кат.
                  Читать дальше →
                • Headtracking или как увидеть трехмерный чайник на двухмерном мониторе

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

                      image

                      Что такое авторское лево
                      www.gnu.org/copyleft/copyleft.ru.html
                      www.gnu.org/copyleft/copyleft.html

                      Категории свободных и несвободных программ
                      www.gnu.org/philosophy/categories.ru.html
                      www.gnu.org/philosophy/categories.html

                      Проблема лицензии BSD
                      www.gnu.org/philosophy/bsd.ru.html
                      www.gnu.org/philosophy/bsd.html

                      Свободные программы надежнее
                      www.gnu.org/software/reliability.ru.html
                      www.gnu.org/software/reliability.html

                      Почему «открытый исходный код» не передает понятия свободное ПО
                      www.gnu.org/philosophy/open-source-misses-the-point.ru.html
                      www.gnu.org/philosophy/open-source-misses-the-point.html

                      Зачем авторское лево
                      www.gnu.org/philosophy/why-copyleft.ru.html
                      www.gnu.org/philosophy/why-copyleft.html

                      FAQ по лицензии GNU
                      www.gnu.org/licenses/gpl-faq.html
                      Читать дальше →