• Почему не получается удалить событие?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    (function(e) {}) === (function(e) {}) // false

    Хотя код функций идентичен – они не равны, т.к. сидят в разных областях памяти.

    Как починить:
    function func(e) {
      console.log(e.target.id);
    }
     
    // Назначить событие
    document.body.addEventListener('click', func);
    
    // И сразу его удалить
    document.body.removeEventListener('click', func);
    Ответ написан
  • Где найти начинающих веб разработчиков для совместной работы над образовательным проектом?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Я согласен — и впредь не платите, 
    Пусть шатает меня на ходу, 
    Не давайте жилья, не кормите, 
    Всё равно на работу приду. 
    
    День получки — нет траурней даты, 
    Просто нет её в этом году, 
    Не давайте паёк и зарплату, 
    Всё равно на работу приду. 
    
    Отдыхать ни за что не поеду, 
    Это море имел я (в виду), 
    Чай пустой и сухарик к обеду, 
    Всё равно на работу приду. 
    
    И лечиться мне вовсе не надо, 
    Могут вылечить вдруг на беду, 
    Не нужны никакие награды, 
    Всё равно на работу приду. 
    
    Ничего, что одежда в заплатах, 
    Я не вру Вам, имейте в виду, 
    Даже если проезд будет платным, 
    Всё равно на работу приду.
    Ответ написан
  • Метод call объекта-функции в js как работает?

    @abberati
    frontend-разработчик
    Давай по порядку

    const result = [].indexOf.call(this.children, event.target)


    []
    Пустой массив

    [].indexOf
    Метод массива. Он же функция. Если вызвать его как есть ([].indexOf(42)), то он будет искать в пустом массиве, следовательно ничего не найдёт. Он работает на this, то есть в теле этого метода this указывает на массив [], по this и происходят итерации для поиска. В случае [1,2,3].indexOf он внутри будет итерироваться по this, которое указывает на [1,2,3]

    [].indexOf.call
    Метод любой функции. Позволяет вызвать этот метод с явным указанием, чем будет являться this. В приведённом примере это this.children. Все остальные аргументы будут переданы в indexOf.

    Трюк в том, что метод indexOf есть только у массивов, но искать индекс этот метод может не только в массиве, но вообще в любой структуре, у которой есть поле length и остальные поля, доступные через численный ключ.

    Приведённая запись – способ вызвать метод массива на псевдомассиве.
    Ответ написан
  • Как сформировать новый массив объектов с переименованными полями?

    @StockholmSyndrome
    const mapFields = (arr, fields) => arr.map((o) => 
      Object.entries(o).reduce((acc, [k, v]) => ({...acc, [fields[k] || k]: v}), {}));
      
    const arr = [{
      a: 2, 
      b: 5, 
      c: 6
    }, {
      d: 8, 
      e: 3, 
      f: 4
    }];
    
    const newArr = mapFields(arr, {
      b: 'e', 
      a: 'w', 
      f: 'v', 
      c: 'b'
    });
    Ответ написан
  • Как языки получают новые возможности из библиотек?

    @res2001
    Developer, ex-admin
    Грубо говоря в компьютере взаимодействие с любыми устройствами заключается в том, что нужно записать некоторый набор байт по определенному адресу в памяти (порт). Адресные диапазоны устройств (порты) и протокол обмена заранее известны. Каждый тип устройства имеет свой собственный протокол обмена с ПК (т.е. набор и количество данных и размер адресного пространства устройства).
    Современные ОС запрещают напрямую работать с устройствами, т.к. защита и все такое. Но ОС предоставляют собственные функции, позволяющие управлять устройствами, только более высокоуровневые. Ну т.е. вы не думаете куда и что именно надо записать, чтоб на экране нарисовалась точка. Вы просто вызывавете функцию ОС с заданными координатами точки.
    Когда все работали под MS-DOS, то ОС не препятствовала низкоуровневому доступу к оборудованию и любая программа могла непосредственно взаимодействовать с устройством без посредничества ОС. Сейчас погрузиться в это можно программируя микроконтроллеры.

    Обычно ОС пишут на Си. Поэтому разработчику ОС достаточно легко предоставить библиотеку API функций для Си. С++ как потомок Си так же умеет работать с Си библиотеками. В других ЯПах приходится реализовывать механизмы, чтоб из них можно было бы вызывать библиотечные Си функции.
    Ответ написан
  • Где искать программистов для проекта?

    Athanor
    @Athanor
    Лайк + Решение: не жмись, нажми
    Давайте сначала про дороговизну )

    Как правило, найти сильного разработчика, работающего на себя, за которым не нужен отдельный проджект-менеджер, аналитик в помощь и тестировщик, это редкость и если рассматривать индивидуальных разработчиков, то сейчас сильные фронтендеры, которые обладают достаточным объемом как технических, так и коммуникационных навыков, зарабатывают в районе 170-250к до вычета налогов в компаниях, где за них платят еще и страховые и пенсионные отчисления и где они имеют оплачиваемый отпуск. За эти деньги такой разработчик работает условные 8 часов (по факту, 6 - это обычно максимум) в день в течение 248 рабочих дней. При этом, у работодателя у него есть еще 28 дней отпуска, что уменьшает количество рабочих дней до 220, практически не уменьшая сумму его зарплаты.

    Соответственно, опытный разработчик, который разбирается в рынке, запросит как минимум 170000 * 12 / 220 = 9272 руб/день, а более уверенный в себе - все 13636 руб/день, что является вилкой от 1159 руб. до 1704 руб (или от $18 до $27) в час при 8-часовом рабочем дне (а при 6-часовом от $24 до $36), что для мирового рынка является достаточно низкой ставкой для таких услуг. Эту сумму вы можете считать некой планкой качества, ниже которой риски взаимодействия с недостаточно опытным разработчиком существенно возрастают.

    Теперь по вашему вопросу: разработчикам с такой ставкой интереснее работать на зарубежных заказчиков и продвигаться на upwork.com им, вероятно, будет комфортнее, чем работать на российском рынке. Я сам много лет работал на апворке и по себе, например, могу сказать, что на заказы со ставкой >$35 уже обращал внимание. Моя гипотеза в том, что $25-35 это нижняя планка, за которую можно найти разработчика и искать лучше именно там (хотя есть и другие биржи, но делюсь своим личным опытом) и именно там они обитают и я слышал много историй успеха (и в т.ч. был ей), где люди и компании находили очень достойных исполнителей. Важный момент только брать проверенных исполнителей с хорошими отзывами.

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

    С уважением,
    Иван Томилов
    CEO of Athanor
    Ответ написан
  • Не срабатывает свойство CSS при динамической вставке в JS?

    fallus
    @fallus
    Ну, у вас в оригинальной разметке есть перенос строки.
    Браузер понимает, что эти «слова» разделены между собой.
    Либо поставьте перенос строки, либо после каждого <span> поставьте пробел.
    <div class="block"><span>1</span> <span>2</span> <span>3</span></div>


    *если нет переноса строки или пробела, то это типо как одно слово получается. А text-align: justify не разрывает слова.
    Ответ написан
  • Как учесть этот параметр - нужно еще?

    @BATPYIIIKOB
    PHP, JS
    Если рассматривать общую концепцию, то учитывать параметр лучше или. Или если не вдаваться в подробности, то я бы выбрал всё таки или. Но иначе не получиться не учитывать параметр. Нужно ещё?

    З.Ы.: Пишите вопросы понятно и развёрнуто...
    Ответ написан
  • Работа с объектами в js, а точней как убрать кавычки?

    RomReed
    @RomReed
    JavaScript, React js, ReactNative, Redux, Firebase
    вы же понимаете что разница в типе данных 59.95 и "59.95". В первом случае у вас число во втором строка. Вы собираетесь изменить тип данных. при создании данного объекта вы должны преобразовать данные к тому типу что вам нужен и затем уже прокинуть в компонент (это будет наверно правильнее всего). Другой способ это из текущего объекта создать новый в котором будет преобразован тип (тоже выход но не такой красивый).

    const current ={lat: "59.95", lng: "30.33"}
    const newObj={lat:parseFloat(current.lat),lng:parseFloat(current.lng)}
    Ответ написан
  • Как сделать скриншот страницы полностью?

    @Samoglas
    В Firefox теперь есть нативная поддержка скриншотов всей страницы, открывается прямо из адресной строки

    5e25b1bf46393462789136.png
    Ответ написан
  • Как решить задачу без зацикливания?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    function test(arr) {
      let len = arr.length;
      let sum = arr.reduce((acc, val) => acc + val, 0);
      while (sum / len <= 4.9) {
        arr.push(5);
        len++;
        sum += 5;
      }
      return arr;
    }
    console.log(test([2,5,3,5]));
    
    // Array(51) [ 2, 5, 3, 5, 5, 5, 5, 5, 5, 5, … ]
    Ответ написан
  • Как сделать глобальную переменную в REACT?

    // globals/index.js
    const restApiHost = 1231313;
    export { restApiHost };
    
    // component.js
    import { restApiHost } from './globals';
    console.log(restApiHost);

    Так?
    Ответ написан
  • Как очистить кеш на стороне всех юзеров?

    fwlone
    @fwlone
    ^^
    Добавь какой-нибудь гет параметр, к урлу
    <link rel="stylesheet" href="/style.css?v=07-11-2019"/>
    Ответ написан
  • Что не так в этой рекурсии?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Что не так в этой рекурсии?

    Она выглядит непонятно. Её можно переписать понятно так:
    int mul(const int *x, int n)
    {
        assert(n > 0);
        if (n == 1)
            return x[0];
        if (n == 2)
            return x[0] * x[1];
        return mul(x, n / 2) * mul(x + n / 2, n - n / 2);
    }
    Ответ написан
  • Объявление идентификатора #define в прототипе функции в Си (C), можно ли так делать?

    myjcom
    @myjcom
    Олег Филимоненко,
    у вас кривой вариант перевода
    ОНА?
    Б. Керниган, Д. Ритчи "Язык программирования C" Третье издание.
    Автор: Б. Керниган, Д. Ритчи (Перевод с английского Вт. С. Штаркмана, под редакцией Вс. С. Штаркмана.)
    Год: 1992
    Издательство: "Финансы и статистика"
    ISBN: 5-7940-0045-7
    Тут еще:
    5c61ed8cad500947739165.png
    в печку ее
    ...
    в оригинале
    прототип функции:
    int getline(char line[], int maxline);

    Правильное издание
    5c61ddfb74bf7964476334.png5c61de311e4e4785447824.png
    Язык программирования С, 2-е издание.
    Год: 2009
    Автор: Kernighan B., Ritchie D. / Керниган Б., Ритчи Д.
    Издательство: Вильямс
    ISBN: 978-5-8459-0891-9

    А в самом первом
    The C programming language - First Edition
    Год издания: 1978
    Автор: Kerninghan, Brian W.
    Издательство: Bell Telephone Laboratories
    ISBN: 0-13-110163-3
    Язык: Английский
    5c61e83b28570703220686.png5c61e8f0e2cc4890842644.png
    Ответ написан
  • Почему даже максимальная ставка не влияет на выигрыш крупной суммы?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Вы серьезно?

    Если даже на условные фишки слоты все сжирают есть ли вообще смысл играть (плюсовать) их?

    конечно нету, это математически доказано миллион раз. При длинной истории игр казино всегда в плюсе, а Вы в проигрыше. Это вложено в логику любого автомата (слотов или еще чего-то).
    Единственной вариант выиграть - это сыграть 1 раз в жизни, чудом сорвать джекпот и больше никогда не играть. И то это маловероятный сценарий. А учитывая человеческую психологию - невозможный.
    Чем больше игр тем больше теория вероятности и статистика будут забирать у Вас деньги. Везение может сработать в 1 игре. При 1000 игр уже везение не при чем, уже работает математика и она работает в данном случае против Вас. Так устроен мир казино. В этом суть.

    Возьмите кубик, допустим только 5 и 6 это Ваш выигрыш, а 1,2,3,4 - выигрыш казино. Бросьте 5 раз и возможно вы будете в плюсе. Бросьте 1000 раз и я готов гарантировать, что в плюсе будет казино. А онлайн слоты имеет логику, намного более печальную для Вас, чем этот кубик.

    Математику учат сейчас в школе, Маск планирует на Марс лететь, создаются нейронные сети. Откуда в этом мире берутся люди, которые пытаются выиграть у казино?
    Ответ написан
  • Где может пригодиться физика программисту?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    С ног на голову перевернуто. А физики умеющие программировать и программисты знающие физику востребованы например в CERN или NASA Ames Research Center.
    Ответ написан
  • Где может пригодиться физика программисту?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    * Проводку в квартире рассчитать, чтобы знать где можно включить чайник и холодильник в одну розетку, а где у вас пробки выбьет прямо посреди раунда в дотку
    * Wifi расставить так, чтобы минимизировать влияние от соседей и максимально покрытие по квартире для своего wifi обеспечить
    * Понимать разницу между оптикой, ethernet, wifi, спутниковой связью, и благодаря основам в физике понимать где тут пинг а где тут пропускная способность влияет.
    * кроме геймдева и робототехники, физические движки помогают создавать удобный и красивый юзер интерфейс, с нормально двигающимися менюшками, с адекватной цветовой гаммой.
    * 3д графика есть не только в игрушках, есть еще видео - реклама, клипы, мультфильмы, фильмы

    P.S. Школькая физика вообще маст хев для любого, не только в ИТ мире.
    Ответ написан