• В чем разница между --save-dev и --save?

    keksmen
    @keksmen
    Just a programmer
    Как верно подметил ruddy22 в production версию продукта попадают не все модули, использующиеся при разработке. К примеру, если вы хотите минифицировать модуль, то, скорее всего будете использовать уже готовые продукты, которые в его использовании не пригодятся.

    Если совсем коротко, то модули из devDependencies не будут установлены в production. Вот и всё.
    Ответ написан
    2 комментария
  • Как реализовать возможность проверки результата игры с помощью криптографии?

    sim3x
    @sim3x
    Игрок делает ставку и шлет ее на сервер
    Сервер решает, что он выиграл
    Ответ написан
    2 комментария
  • Как сделать скругление углов наружу?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега CSS
    Руководитель frontend направления, предприниматель
    Псевдоэлементы с абсолютным позиционированием.
    Ответ написан
    Комментировать
  • СокетИО и большое количество событий?

    @Abcdefgk
    Да нет никакой "ситуации". При подключении 100 клиентов будет создано 100 объектов-сокетов - каждый с уникальным ID. А "слушатели" событий есть не просят, они их только слушают и, при поступлении, отдают обработчикам - это общая для всех коннектов абстракция.
    Ответ написан
    2 комментария
  • Какая разница между change и .on('change')?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Никакой. Первая форма просто алиас / шорткат / псевдоним для второй. См. исходник:
    jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
    	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
    	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
    	function( i, name ) {
    
    	// Handle event binding
    	jQuery.fn[ name ] = function( data, fn ) {
    		return arguments.length > 0 ?
    			this.on( name, null, data, fn ) :
    			this.trigger( name );
    	};
    } );
    Ответ написан
    Комментировать
  • В чем разница между --save-dev и --save?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    devDependencies — пакеты, которые нужны для разработки. Всякие галпы-гранты и плагины к ним обычно подпадают в эту категорию.
    dependencies — пакеты, от которых ваш пакет зависит непосредственно: как правило — библиотеки.
    Ставятся они все в node_modules.
    Тут подробнее: https://toster.ru/answer?answer_id=559717#comments...

    Если кто-то делает npm install вашему пакету, то npm подсосет те пакеты, которые указаны у него в dependencies, но не в devDependencies.
    Если сделать npm install внутри папки, в которой есть package.json, то установятся и те, и другие.
    Ответ написан
    3 комментария
  • Хотите задать вопрос администрации Тостера?

    rockon404
    @rockon404
    Frontend Developer
    Сервису не хватает минусов для ответов. Бывает не очень опытный человек публикует плохой ответ, который вроде работает, но является очень плохим решением. Самое интересное, что такие ответы часто набирают плюсы. Если бы была возможность поставить минус, уверен они бы были заминусованы и не сбивали с толку людей столкнувшихся с похожей проблемой.

    UPD: По поводу вкладки Избранное еще в комментариях к вопросу написал.
    Ответ написан
    54 комментария
  • Как создать функцию persistence()?

    rockon404
    @rockon404
    Frontend Developer
    const persistence = (number, i = 0) => {
      const digits = number.toString().split('');
      const result = digits.reduce((acc, el) => acc * el);
     
      if(result > 9) {
        return persistence(result, ++i);
      }
    
      return ++i;
    }


    Демо.
    Ответ написан
    3 комментария
  • Нормально ли работает обычная мышь с Macbook 2017?

    ajaxtelamonid
    @ajaxtelamonid
    Laravel
    Если кто-то найдет этот пост поиском, хочу его предупредить. Ни одна мышь не работает в макоси как в винде. Причина - кривая акселлерации, которая в макоси заточена на тачпад. Вот описание проблемы:

    В Макосе акселерация, конечно, есть, но она ужасна. Движения мыши дёрганы и неадекватны. Допустим, курсор находится над каким-то пунктом меню, а тебе нужен следующий. Ты начинаешь плавно вести мышку вниз. Она еле-еле шагает по одному пикселю. Ты уже проехал по столу 2 сантиметра, и так и не доехал до нужного пункта меню. Тогда ты слегка ускоряешь движение... и ты уже перепрыгнул через 3 пункта. Чёрт возьми.
    ilyabirman.ru/meanwhile/2007/05/27/1

    Так что если вы перепробовали кучу мышей и все они с маком работают как-то странно - вы не сходите с ума, с вами все в порядке.

    Насколько я могу видеть, проблема до сих пор (10 лет прошло) не решена. Поведение мыши можно слегка приблизить к нормальному виндовому при помощи SteerMouse и т.п. утилит, но полного аналога добиться не получится. Одно радует - после пары недель мучений мозг все-таки приспосабливается к новым правилам игры . И, если вам повезёт, также есть шанс, что вы не заметите смены кривой акселлерации - некоторые не замечают, для них движения мыши в винде и макоси субьективно одинаковы.
    Ответ написан
    Комментировать
  • Как получить название массивного кейворда?

    @TheMoth
    console.log(Object.keys(items));
    Если я правильно Вас понял.
    UPD
    console.log(Object.values(items))
    Или, если у вас массив объектов:
    console.log(Object.values(items)[0]);
    Ответ написан
    2 комментария
  • Какие проблемы решает качественный дизайн сайта?

    @Insayt
    Ну тут надо уточнить, что дизайн сайтов/приложений не является продуктом. Это услуга.
    "Картошка" - это продукт. "Доставка картошки" - это услуга. Вы предоставляете услуги, соответственно ставить вопросы надо исходя из понимая этого.

    Бизнес выбирает поставщика услуг по нескольким пунктам:
    1. Доступность - важно что бы было легко вас найти.
    2. Понимание проблем клиента - важно что бы поставщик услуг четко понимал как его деятельность скажется на нашем бизнесе.
    3. Скорость реакции сотрудников и их вежливость - тут думаю все понятно, если на email отвечают неделями и на от*бись, то такой поставщик услуг не получит заказ.


    В контексте вашего вопроса речь идёт о "Понимании проблем клиента".
    И тут важнее не написать большой список, а выбрать конкретный пункт и давить на него. Объясню:

    1. Увеличение продаж - на этот пункт вы влияете очень косвенно (ниже объясню почему). Потребитель больше будет смотреть на цену и скорость доставки, чем на форму кнопочки "Перейти в корзину".
    2. Привлечение внимания - это тоже не ваша работа. Привлекают внимание маркетологи. Клиент даст рекламу в директ, и она будет привлекать внимание. Если вы занимаетесь дизайном рекламных баннеров, то тогда можно говорить о привлечении внимания, но в контексте вашей деятельности вы привлечением внимания к продукту/услуге заказчика не занимаетесь.
    3. Большая конкурентоспособность/отстройка от конкурентов - это тоже не про вас. Конкурентоспособность никак не соотносится с визуальной составляющей. Вы можете сделать идеальную упаковку для пиццы, но если её везут 3 часа, то никакой конкурентоспособности быть не может.
    Отстройка от конкурентов - это тоже не про вас. Немного погуглите про то что такое "отстройка от конкурентов", и поймете это. Отстраиваются на уровне позиционирования и бизнес процессов. Например вы открыли магазин продуктов возле дома. Через пол года рядом открывается пятерочка. Вы начинаете проседать по доходам, потому что пятерка дает лучшую выходную цену для клиента, и тогда вы решаете отстроится от конкурента, убираете весь ассортимент и становитесь магазином "Колбасы от Васи". И расставляете на прилавке 1 вид продукта, но в широком ассортименте, который пятерочка никак не может себе позволить, потому что им не выгодно иметь широкий ассортимент одной товарной позиции. Вот это и есть отстройка.

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

    Так что вывод - переимуйте абстрактный пункт "Увеличение продаж" в более конкретный "Увеличение конверсии", и продавайте его.
    Ответ написан
    1 комментарий
  • Как проверить на соотношение сторон?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Взять абсолютное значение разницы отношения ширины к высоте и 16/9, и если то меньше некого порога, выполнить действия:
    if( Math.abs($( window ).width()/$( window ).height() - 16/9) > 0.01) {
      // сделать что-то, когда соотношение не 16:9
    }
    Ответ написан
    Комментировать
  • Как осуществляется шифрование телеграм?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1. Алгоритмов не тысячи. Но вот количество вариантов ключей - неисчислимо.
    Телеграм использует симметричное 256-битное шифрование AES и шифрование RSA 2048. Обмен ключей идет по методу Диффи-Хеллмана. Также почитайте технический FAQ
    2. Шифруются не все сообщения и чаты, а только в том случае, если вы создаете секретный чат.

    3. Почитайте банально википедию - что такое открытый ключ.

    Вкратце.

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

    2. Вася передает Ане публичный ключ

    3. Аня шифрует им сообщение и передает Васе

    4. Вася расшифровывает.

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

    В идеале, временная пара ключей может генериться отдельно для каждого чата/сессии - так работает https.

    P.S. Полезные ссылки:
    https://medium.com/@tglive/stop-reading-gizmodo-7f...
    Ответ написан
    2 комментария
  • ReactJS: Почему компонент не обновляется при изменении хранилища?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Вы передаете в компонент один и тот же объект. Вот он и не обновляется. Изменения хранилища ваш компонент не интересуют, только изменение данных которые вы туда передаете.
    Храните плоские данные. Тогда таких проблем возникать не будет.
    Ответ написан
    3 комментария
  • Как посмотреть что находится в методе .data?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    /* Вместо alert устроили */
    console.log( b );
    /* открыли консоль разработчика (в Chrome по F12) и смотрим, что там внутри */
    Ответ написан
    4 комментария
  • Что делать, если сломался блок у MagSafe 2?

    Nikulio
    @Nikulio
    NaN !== NaN
    Ориг, конечно, что за вопрос?
    Если жаба душит, то чехольчик на айфон с поднебесной взять можно, но зарядка это важно. Ты же не хочешь квартиру сжечь?
    Ответ написан
    Комментировать
  • Как в React сделать внутренний component position:absolute к корневому app?

    Так а причем тут React, если проблема c CSS?
    position:absolute задаётся относительно ТОЛЬКО парент компонента

    Нет, «position: absolute» задаётся относительно родителя, только если у родителя значение свойства position равно fixed, absolute или relative, то есть не static.
    Ответ написан
    2 комментария
  • Какие есть способы сократить данную строку?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    if( !/search|search_input|cancel_btn/i.test(target.className) ) cancelSearch();

    UPD:
    OR
    !/search|search_input|cancel_btn/i.test(target.className) && cancelSearch();
    Ответ написан
    Комментировать