• Горячая перезагрузка Chrome-расширения

    • Tutorial

    На днях возникло желание написать простенькое расширение для Google Chrome. Столкнулся с такой проблемой, что после изменений в коде расширения, браузер не перезагружает его автоматически. Это очень сильно затрудняет разработку, т.к. после каждого Cmd-S в редакторе, приходится нажимать "Reload" в списке расширений, а затем еще и рефрешить страницу, чтобы перезапустить контент-скрипты.


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


    Готовое встраиваемое решение лежит на github.com/xpl/crx-hotreload, а в этой статье я расскажу, как оно реализовано.

    Читать дальше →
    • +14
    • 4,6k
    • 7
  • JavaScript: где мы сейчас и куда двигаться

      Привет, хабраюзер. Поскольку, судя по всему, мы уже живем в будущем, то недавно я плотно засел за изучение новых фич ES6, ES7 и новых идей, предлагаемых React и Redux. И написал для своих коллег статью, в которой изложил сублимацию этих своих изысканий. Статья неожиданно получилась довольно объемной, и я решил опубликовать её. Заранее извиняюсь за некоторую непоследовательность изложения и отсылки к проприетарному коду из наших проектов — но думаю, что это всё же может помочь некоторым из нас лучше понять то, куда движется мир JavaScript, и почему не стоит игнорировать происходящее в нём.


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


      Читать дальше →
    • It’s the future

      • Перевод

      Этот пост просто шутка и не пытается выставить инструменты, упомянутые здесь, в дурном свете. Я использую их постоянно, они великолепны, и я рекомендую их использовать. По мотивам It's the future @ CircleCI Blog


      — Эй, я бы хотел научиться писать крутые веб-приложения. Слышал, у тебя есть опыт.


      — Да, я как раз занимаюсь фронтендом, юзаю пару тулз.


      — Круто. Я щас делаю простое приложение — обычный TODO-лист, используя HTML, CSS и JavaScript, и планирую заюзать JQuery. Это норм?


      — Не-не-не. Это олдскул. Джиквери мёртв — никто не использует его теперь! Тебе нужен React. Это будущее.


      — Окей, лады. А что это?


      Читать дальше →
    • Диалоги о шумах и антропоморфизмах (в поисках человека и сознания)

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

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

        Приятного чтения.
        Читать дальше →
      • Sublime Text: валидация синтаксиса, автодополнение (v.1.1)

          UPD: по совету комментаторов, заменил jsl на более новый eslint

          Заметил у себя на работе, что многие JS-разработчики до сих пор используют «голый» Sublime Text, матерясь и чертыхаясь после каждой пропущенной запятой, непарной скобочки или еще какой опечатки. Поэтому написал краткий гайд по исправлению этого недоразумения, которым с вами и делюсь. Итак:
          Читать дальше →
          • +6
          • 23,1k
          • 9
        • Мечтают ли электроовцы об андроидах?

            экспериментальная проза / огурец мозга / sci–fi

            ***

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

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

            Над стадом будут летать автономные беспилотники на солнечных панелях. Коммутировать соединения, передавать картинку в терминал пастуха. Волков выпаливать. Сеть в любой точке планеты.
            Читать дальше →
          • C++/CLI — «клейкий» язык

              В этом топике я расскажу про C++/CLI — промежуточный язык для склеивания кода на C/C++ и .NET

              Это довольно распространённая задача, ведь на C/C++ написаны тонны проверенного временем высокопроизводительного кода, который невозможно переписать на управляемые языки.

              Наша задача — обеспечить .NET-интерфейс к этим библиотекам. Но как это сделать, если они написаны на C/C++?

              Microsoft предлагает два варианта решения проблемы.
               
              Читать дальше →
            • Three Futamura Projections и не только

                Привет, хабрачеловек. Сегодня я расскажу тебе про некоторые фундаментальные вещи в computer science: частичные вычисления, три проекции Футамуры и суперкомпиляцию.
                 
                 

                1. Сразу к коду


                -- функция, которая возводит x в степень y (неотрицательную)
                power x y =
                    case y of
                        0 → 1
                        1 → x
                        _ → x * (power x (y - 1))


                Читать дальше →
              • South — новый клёвый syncdb

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

                  А добавление или удаление полей в уже существующие модели превращается в настоящий pain in ass — приходится «подсматривать» за тем, как ORM создала бы таблицы заново (manage.py sqlall) и вручную делать ALTER TABLE для изменившихся столбцов таблиц.

                  То есть, ORM в Django так или иначе предполагает активный трах с SQL shell, потому что в процессе прототипирования эти поля в моделях изменяются просто пачками.

                  Погуглив, я нашел несколько способов...
                • Новый способ SMO

                    Вы открываете ваш профайл и видите незнакомца, добавившего вас в друзья. «Наверняка очередной wannabe-тысячник» — думаете вы; но на смену скепсису приходит интерес, когда вы замечаете, что большинство из его немногочисленных френдов — ваши друзья.

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