• Обзор электрического самоката EcoReco M3 E-Scooter

    • Translation
    Самокат M3

    Когда я сказал моим колегам что я получил M3 для обзора, они с завистью бросились вниз в гараж, чтобы посмотреть на это чудо техники. Но я говорил не о легендарной спортивной машине выходного дня BMW M3, а о EcoReco M3, электрическом самокате. В отличие от «Бумера», самокат M3 приводится в движение электричеством, он складывается для удобного хранения и разгоняется всего до 32 км/ч.
    Читать дальше →
  • С большой силой приходит и большая ответственность — техника безопасности в AngularJS

      image

      Несомненно, ангуляр даёт вам силу. Но пользоваться ей нужно с умом. Я постарался сформулировать три простых правила, которые я много раз нарушал и страдал от этого.
      Читать дальше →
    • Наследование HTML файлов в xslt-стиле

        Проблема


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

        {{if app.version==versions.main}}
        <!--один html код-->
        {{else if app.version==versions.custom1}}
        <!--другой html код-->
        {{else if app.version==versions.custom2}}
        <!--и ещё html код-->
        {{endif}}
        

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

        Привыкнув к удобным методам управления версиями приложения с помощью инъекции зависимостей, когда в зависимости от версии используются разные реализации интерфейсов, я решил изобрести свой велосипед для XSLT-подобного управления версиями html файлов: grunt-html-inheritance. Он позволяет подменять кусочки базового html-файла с помощью маленьких патчей.
        Как этим пользоваться?
        • +10
        • 4.5k
        • 2
      • Доступ к JavaScript веб-страницы из расширения для Chrome

          Как известно, расширения для браузера Chrome работают каждое в своей песочнице. Для внедрения в веб-страницу существует механизм content script-ов, когда javascript код внедряется в страницу, и имеет доступ к DOM дереву. Этот механизм позволяет работать с контентом страницы, изменять внешний вид, запускать произвольный JS, обмениваться данными с фоновым процессом расширения.

          Но одну вещь механизм content script не позволяет делать — получать доступ к javascript-окружению веб-страницы.

          Читать дальше →
        • Расширение timeStats — на что вы тратите время в интернете

            Всплывающее окно


            Как показывает реакция хабрапублики на топик «Старт „Motivate Clock: “Не думай о секундах свысока”“, учёт потраченного времени интересует многих. Поэтому я хочу познакомить вас со своим проектом — расширением „timeStats“ для браузера Chrome. С его помощью вы всегда будете знать, сколько времени уходит на различные сайты.

            Скачать расширение можно тут.

            Читать дальше →
          • Колпачок — стилус для ёмкостных экранов



              Как известно, ёмкостные сенсорные экраны используют тот факт, что предметы большой ёмкости (в том числе и мы с вами) проводят переменный ток. А значит, чтобы заставить работать стилус, нужно, чтобы кончик стилуса был электрически соединён с телом.
              Читать дальше →