• PVS-Studio идёт в облака – запуск анализа на Travis CI
    –1

    Неужели минусующие защищаются от mitm, заменяя http на https в скриптах?

  • PVS-Studio идёт в облака – запуск анализа на Travis CI
    0

    Не понимаю, как ваш комментарий касается mitm.
    Тем не менее не стоит доверять даже образам от вендора, есть масса способов залить «исправленный» образ. Про чертеж и хешсумму полностью согласен.

  • PVS-Studio идёт в облака – запуск анализа на Travis CI
    –4

    https не спасает от mitm

  • Почему WhatsApp никогда не станет безопасным
    +2
    За те же шесть лет мы раскрыли ровно ноль байтов данных третьим лицам

    И это не правда. Банально пуши в ios отправлялись в открытом виде до осени прошлого года. Таким образом как минимум apple получали большую часть текстовых сообщений.

  • Как построить гоночный коптер и не устать
    0
    Смысла покупать F3 не вижу.

    Недавно проскакивала ссылка на новый контроллер, совмещенный с OSD, созданный вместе с Борисом, под betaflight. F4 больше F3, не все так просто.
  • Все рушится
    0

    В чем проблема скомпилировать две версии node.js?

  • Все рушится
    0

    на самом деле все ок и с таким подходом. есть npm rebuild.
    Правда бывает, что бинарники под разные OS выкачиваются postinstall, так делает electron и nodegit, навскидку. Тут уже ничего не поделаешь с любым подходом.

  • Все рушится
    +2

    толсто.


    Вы пропустили эпичный эпик с left-pad?

    нет, как и npm, больше такого не повторится с модулями старше 24 часов.


    HMR вам не понадобится, ибо приложение загружается мгновенно.

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


    gzip с этим справляется эффективней.

    любая минификация перед сжатием, делает сжатый бандл меньше. А переодически и код ускоряет.


    Вы бы ещё jQuery вспомнили.

    иногда и jquery нужен, если маленький проектик на вечер и сроком жизни пару недель. А lodash все еще must have, особенно fp часть божественна.

  • Все рушится
    +1

    Никто не призывает новичка использовать yarn. NPM освоит и хорошо.
    Тот факт, что каждый месяц что-то выходит — особенность области. Надо учиться различать перспективные новинки, от однодневок.
    А что по вашему делать, если npm устанавливает зависимости 5 минут, а yarn — 30сек?

  • Все рушится
    +3

    Комментарии сообщества в духе "надо было в npm законтрибьютить" забавляют. В OSS никто никому ничего не должен, а конкуренция(форки, аналоги) в итоге, только улучшает конечный продукт для пользователя.
    Но странно, что yarn выложили, а registry — нет.

  • Все рушится
    +4
    Вы видимо не застали такие эпики как dll-hell, rpm-hell, jar-hell и прочие dependency-hell?

    Современные инструменты существуют, чтобы решать старые проблемы. Иначе зачем эти новые инструменты нужны?

  • Каково оно учить JavaScript в 2016
    +1

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

  • Каково оно учить JavaScript в 2016
    +2

    Вы понимаете, что edge лучше поддерживал ES6 какое-то время, а у нового safari вообще 100% поддержка, судя по ES compatibility table?

  • Каково оно учить JavaScript в 2016
    +1

    Эм, старые версии браузеров, в смысле?)

  • Каково оно учить JavaScript в 2016
    +2

    За чем конкретно из списка выше не успели браузеры?)

  • Redux Action Creators. Без констант и головной боли
    0

    А где тесты?

  • Webpack + React. Как уменьшить бандл в 15 раз
    0

    таки куда угодно. А где неудобно настраивать? Вроде везде babelrc поддерживается одинаково, не?

  • Webpack + React. Как уменьшить бандл в 15 раз
    0
    Но у многих и нету.

    Например?

  • Проверяем скорость работы промисов
    0

    bluebird быстрее стандартных промисов, да и прочих реализаций промисов. Это факт.
    Но ваш тест, даже откинув остальные косяки, тестирует не промисы, а crypto.randomBytes. То, что происходит внутри промисов должно выполняться за константное время, чтобы протестировать непосредственно промисы.

  • Стоит ли Typescript усилий?
    0
    Мне кажется, я забыл упомянуть главное. TS — это как ни крути отдельный язык. Если из TS подключать js файл, ему нужно подсунуть аннотации (.d.ts). А flow работает поверх js. Ему не нужно ничего дополнительно указывать, только при особой необходимости.
    А .d.ts это еще та боль. Единицы библиотек поддерживают эти самые аннотации, а внешние постоянно старые.
  • Стоит ли Typescript усилий?
    0
    Что имеется ввиду под «выводить типы»?

    https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjOA7AzgFzHwFMCwBeMACgEoKA+MAchIKYG51X9aA6fOADEAlgA9iAE1qcgA
  • Стоит ли Typescript усилий?
    +2
    Как человек, попробовавший typescript и сейчас пробующий flow, скажу, что вы не правы. Оба инструмента имееют преимущества и недостатки. Например flow можно включать не для всех файлов, или даже не для всего файла. Он также умеет самостоятельно выводить типы, что прямо крутая фича для динамического языка.
  • It’s the future
    0
    Странный аргумент) У C++ также нет библиотеки для работы с фс, это не мешает ему быть одним из самых популярных языков.
  • 5 организаций, которые дарят студентам ВУЗ'ов платные инструменты для разработки
    0
    Потом остается только read-access. То есть можно импортировать куда-то, но не использовать далее.
  • Оптимизируем React приложение для отображения списка элементов
    0
    virtualized — это рендер куска списка. Начать с оптимизации рендера вполне здравая идея, прежде чем тянуть дополнительную библиотеку в проект. Особенно если кол-во элементов в списке конечно и предсказуемо.
  • Swift 3.0, много шума, а что на деле?
    +2
    Не факт, что будет сложнее. Я так понимаю к каждой версии выходит codemode-tool, который приводит весь старый код к новому виду. Если такое делать постоянно, но обратная совместимость имхо не так важна. Подобного не хватает в других технологиях.
  • 4 мифа о PostCSS
    +6
    Забавно, судя по комментариям многие действительно не понимают, что такое postcss. На самом деле сам по себе это парсер + код-принтер. То есть без плагинов postcss просто распарсит ваш css и запишет его обратно. Дальше есть плагины, вроде autoprefixer, которые изменяют css перед записью.
    Это как babel, только в мире css.

    zharikovpro css-loader под капотом использует webpack.
    Miklos потом вам понадобится еще какой-то плагин, который работает поверх postcss и он заново будет парсить css, вместо того, чтобы сделать это внутри postcss. Это тоже вариант, просто не стоит себя обманывать, что вы обходитесь без postcss, он уже внутри gulp-autoprefixer.
  • NPM запретил отзывать без разрешения open-source модули старше 24 часов
    0
    а, ясно. В своих проектах всегда фиксирую версии зависимостей.
  • NPM запретил отзывать без разрешения open-source модули старше 24 часов
    0
    В том, что произошло было не важно, зафиксированы ли у вас зависимости. Там была цепочка из 4 пакетов из которых последний удалили.
  • Javascript: проблемы с click event при использовании requestAnimationFrame
    +4
    У вас постоянно происходит перерисовка #main. В тот момент, как вы кликаете по тексту, этого текста в DOM уже нет.
    Попробуйте в render добавить логирование.
  • 6 впечатляющих веб-технологий 2015 года
    0
    Import {map} from 'lodash';
  • Генераторы в ES6 и асинхронный код по-новому
    +1
    Либо через regenerator, где здоровенный switch-case, либо await заменяет на yield и оборачивает функцией, которую указал в настройках. bluebird.coroutine, на пример.
    Второй вариант поддерживается node нативно, так что async-await можно спокойно использовать, если пишешь под node.
  • Fallback-действия в ES6 Promise
    +1
    Да почему снобизм-то? Если постоянно забивать на подобные мелкие недочеты, весь проект в целом будет работать медленнее, чем мог бы.
  • Fallback-действия в ES6 Promise
    +1
    не одним v8 едины

  • Fallback-действия в ES6 Promise
    +1
    В коде подобных библиотек — вполне может стать. Дело даже не в том, что приведенный мной вариант быстрее (в 4-30 раз), а в том, что вся функция не будет оптимизирована. Если эта библиотека используется на сотнях, или тысячах картинок это может вылиться в видимую задержку.
    да и не одним v8 едины

    Абсолютно верно, остальные движки еще медленнее в этом месте: jsperf.com/arguments-spread
  • Fallback-действия в ES6 Promise
    –1
    Нет. Я автору предложил использовать ES6 по полной, автор отказался, я показал альтернативный метод.
    К тому же Array.prototype.slice.call это уже давно классика.

    Продолжайте себя в этом уверять и не изучать изменения в языке.
  • Fallback-действия в ES6 Promise
    +1
    Ради экономии сотни байт вы теряете в читаемости и производительности? Странная экономия на спичках.
    В прочем вполне можно обойтись и без babel, самостоятельно приведя аргументы к массиву.
    function foo() {
      var args = new Array(arguments.length);
      for (var i = 0; i < arguments.length; i++) {
        args[i] = arguments[i];
      }
    
      console.log(args);
    }
    
  • Fallback-действия в ES6 Promise
    –1
    Последний хром:
    var foo = function() {}
    undefined
    foo.name
    ""
  • Против Apple организуется коллективный иск из-за «Ошибки 53»
    –9
    Теперь уже вы перегибаете. Есть движок, а есть интерфейс. Для разработчиков важен движок, для пользователя — интерфейс. У хрома почти отсутствует интерфейс, зато есть 100500 расширений. Яндекс браузер же сделан для обычного пользователя, которому нужно поставить браузер и дальше просто пользоваться.
  • Fallback-действия в ES6 Promise
    +1
    Array.prototype.concat.apply([], Array.prototype.slice.call(arguments));
    

    Автору не плохо бы самому на собеседование сходить. За подобное использование arguments стоит бить по рукам, тк из-за этого функция никогда не будет оптимизирована в v8.
    Для этого в ES6 придумали spread оператор:
    function foo(...args) {
      console.log(args);
    }