• Разработка в монорепозитории. Доклад Яндекса

      Моё имя Азат Разетдинов, я в Яндексе уже 12 лет, руковожу службой разработки интерфейсов в Я.Недвижимости. Сегодня я хотел бы поговорить про монорепозиторий. Если у вас всего один репозиторий в работе — поздравляю, вы уже живете в монорепозитории. Теперь о том, зачем он нужен другим.



      Как сказала руководитель службы разработки API Яндекс.Карт Марина Перескокова — посадил дед монорепу, выросла монорепа большая-пребольшая.

      Читать дальше →
    • Загрузка скриптов браузерами: вести с полей

      • Перевод
      Как справляются браузеры с параллельной загрузкой скриптов?

      Во времена IE7 и Firefox 2.0 ни один браузер не загружал скрипты параллельно с другими ресурсами. Вместо этого старые браузеры блокировали все последующие запросы до полной загрузки, парсинга и выполнения скрипта. Вот так выглядел лог HTTP-запросов при подобной блокировке в старых браузерах:

      HTTP-запросы

      На тестовой странице, по которой была сгенерирована данная диаграмма, есть шесть HTTP-запросов:
      • HTML-документ;
      • первый скрипт — 2 секунды на скачивание, 2 секунды на выполнение;
      • второй скрипт — 2 секунды на скачивание, 2 секунды на выполнение;
      • картинка — 1 секунда на скачивание;
      • стилевой файл — 1 секунда на скачивание;
      • iframe — 1 секунда на скачивание.

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

      Читать дальше →
    • Nokia начала закрывать своих конкурентов

      • Перевод
      Письмо 27 625 631 пользователю Nav4All

      Дорогие клиенты!

      С большим сожалением уведомляем вас, что системы глобальной навигации Nav4All и Tracking & Tracing уйдут в офлайн в течение 3 дней. Причина — лицензионное соглашение на данные с Navteq (100% дочерняя фирма Nokia) совершенно неожиданно не было продлено. Перейти на другого поставщика в кратчайшие сроки невозможно. Системы Nav4All были разработаны для данных Navteq. Следовательно, Nav4All вынуждена приостановить работу.

      Читать дальше →
    • Проверка равенства, неравенства, идентичности узлов в XPath

        С одной стороны, в языке XPath используются знакомые каждому программисту операторы сравнения «равно», «не равно», «меньше», «больше» и другие. С другой стороны, эти операторы умеют работать не только с примитивными типами, но и с целыми наборами узлов. Незнание правил сравнения наборов узлов может привести к некоторым сюрпризам.

        Попробуйте быстро ответить на вопрос, чему равно следующее выражение:

        foo = 'bar' and foo != 'bar'

        Если ваш ответ — false, автор предлагает
        Читать дальше →
      • Три редкоиспользуемые оси в XPath

          Основная мощь языка XPath заключается в осях, позволяющих добраться до любого элемента в исходном документе. Рассмотрим применение таких редкоиспользуемых осей, как ancestor, descendant и self.

          ancestor


          Задача: получить атрибут id элемента-«прадеда» foo.

          Обычно в таких случаях начинают рисовать лестницы:

          ../../../@id

          Такая запись плоха тем, что малопонятна без знания исходного xml. Автор рекомендует в подобных случаях использовать более информативное выражение:

          ancestor::foo[1]/@id

          Эта запись не только даёт представление об искомом элементе, но и продолжает работать даже в том случае, когда текущий элемент изменил своё положение в дереве.
          Читать дальше →
        • Subversion: cлияние переименований файлов

            — Зачем ты, Белка, летишь за мной, Кабаном?
            — Не знаю, Кабан! Приказ Хорька. Как понял? Приём.
            — Ни хера не понял! Какого Хорька, Белка? Я Кабан. Кто такой Хорёк? Кто это? Приём.
            — Кабан, ты дятел! Как понял? Приём.
            — Понял тебя, Белка. Я — Дятел. Повторяю вопрос про хорька. Кто это?
            — Кабан, сука, ты всех заманал, лети вперёд молча! Конец связи.
            Виктор Шендерович

            Как известно, Subversion не умеет отслеживать переименования файлов. Согласно документации, команда svn move равносильна svn copy с последующим svn delete. Такое поведение вызывает большие проблемы при слиянии веток. Рассмотрим способы их решения.
            Читать дальше →
          • Управление вкладками в разных браузерах

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

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

              Не имея возможности сравнить все существующие программы, автор ограничился анализом реализации 1) браузерами 2) для Windows 3) следующих операций:
              — создание вкладки;
              — закрытие вкладки;
              — отмена закрытия вкладки;
              — навигация по вкладкам;
              — открытие адреса/ссылки во вкладке.
              Читать дальше →
            • Контрол-навигация

                Нельзя не заметить, что в рунете всё бóльшую популярность набирает т. н. контрол-навигация: перемещение по страницам одного уровня с помощью сочетаний Ctrl + ← и Ctrl + →. Некоторые товарищи даже неуютно себя чувствуют, когда попадают на сайт, не поддерживающий листание страниц с клавиатуры.

                Почему эта функциональность до сих пор не реализована в самих браузерах?
                Читать дальше →
              • guid как средство от дубликатов в RSS

                  Читающие Хабр через RSS наверняка замечали, что иногда один и тот же топик дублируется в ленте. Это происходит, когда пост перемещается из одного блога в другой. Меняется ссылка, и RSS-ридеры воспринимают её как новый топик. Это поведение легко исправить.

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