• Что означает "!!~"?

    E1ON
    @E1ON Куратор тега JavaScript
    web, gamedev, anime
    https://developer.mozilla.org/en-US/docs/Web/JavaS...

    ~ Заменяет каждый бит операнда на противоположный.
    !! (Логическое НЕ) Возвращает false, если операнд может быть преобразован в true; в противном случае возвращает true.
    Ответ написан
    2 комментария
  • Что означает "!!~"?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Сокращалка, удобная для indexOf(), который возвращает -1 если не найдено, или индекс от 0 и больше.

    Для логики приложения часто бывает нужно узнать только, найдено или нет: т.е. -1 или иное значение. Можно просто сравнивать if (a.indexOf(b) > -1) { /* найдено! */ } но иногда хочется короче.

    Битовый оператор НЕ ~ хорош тем, что выделяет -1: только -1 с этим оператором даст 0. Прочие числа дадут какое-то ненулевое значение.

    ~(-1) === 0

    Остаётся привести значение из численного в булево. Для этого два воскл. знака — два логических НЕ.
    • для варианта «найдено» из числа от 0 и больше получилось тоже ненулевое число, и !! даст true
    • для варианта «не найдено» из -1 получится уникальный 0, и !!0 вернёт false
    Ответ написан
    6 комментариев
  • Приоритет в асинхронном коде, как это работает?

    Alexandroppolus
    @Alexandroppolus
    кодир
    1) Просто вызов: оба хендлера последовательно запускаются в одном и том же синхронном коде (в текущем таске), ставят в очередь 2 микротаска.

    2) Через клик: на каждый хендлер создается отдельный таск в event-loop, таски отрабатывают по очереди, каждый из тасков создает по одному микротаску, последний выполняется до перехода управления к след. таску.
    Ответ написан
    Комментировать
  • В чем суть такой записи в reset.css?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это разные по сути объявления.
    content: ""; - задаёт содержимое псевдоэлемента (пустую строку)
    content: none; - говорит, что псевдоэлемент вообще не генерируется
    Ответ написан
    2 комментария
  • В чем суть такой записи в reset.css?

    nowm
    @nowm
    Это специфичное для blockquote определение, которое Eric Meyer (автор reset.css) позаимствовал у Paul Chaplin. Первая строка content: "" делает так, чтобы у blockquote исчезли кавычки — на случай, если вторая строка content: none не поддерживается браузером, потому что первая строка — это CSS 2, а вторая — это CSS 2.1. В одну строку их записать нельзя, потому что по стандарту для свойства «content» нельзя комбинировать ключевые слова «normal» и «none» с другими значениями.

    Вообще, когда встречается перечисление одного и того же свойства с разными значениями, это делается для того, чтобы обеспечить совместимость с разными браузерами. То есть, если, например, браузер не поддерживает «content: none», он применит «content: ""», а другую запись проигнорирует.

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

    .some-class {
        background: #e66465;
        background: linear-gradient(#e66465, #9198e5);
    }


    В этом коде, если браузер поддерживает градиентный фон, он сначала прочитает, что нужно использовать цвет «#e66465», а потом это перезапишется записью «linear-gradient», и итоговое значение будет «linear-gradient(#e66465, #9198e5);». Если же браузер не поддерживает градиент, он сначала прочитает, что нужно использовать «#e66465», а потом увидит неподдерживаемое определение «linear-gradient», проигнорирует его, и итоговое значение будет «#e66465».
    Ответ написан
    Комментировать
  • Какие есть CMS, аналогичные Wordpress, с возможностью писать фронт на vue?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Зачем искать, если wp и так умеет rest api
    Ответ написан
    4 комментария
  • Действительно ли закончилось свободное место?

    SagePtr
    @SagePtr
    Еда - это святое
    А inode случаем не закончились? df -i что говорит?
    Ответ написан
    3 комментария
  • Рефакторинг кода. Как оптимизировать количество if?

    @rPman
    Вместо if в таких случаях используют switch case.

    Альтернатива - определи map с ключом твои сравниваемые значения и значением делегат Func или экземпляр класса с виртуальным методом. Но что бы ты не делал, синтаксически это не добавит тебе простоты, а просто переместит в другое место определение кода и сравниваемое значение.

    Есть еще препроцессор #if или даже собственный кодогенератор, иногда оно оправдано.

    Городить что то сложнее switch нужно, когда логика, стоящая внутри кода около каждого из вариантов значения, может быть свернута в общий единый код или наоборот, он весь сводится к коротким инструкциям,красиво смотрящимся в виде анонимных функций, которые неплохо смотрятся в виде констант иннициализатора map
    Ответ написан
    Комментировать
  • Стоит ли идти в NoCode разработку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    NoCode это инструменты для тех, кто не умеет кодить, но готов потратить немного времени чтобы сделать какую-то штуку сам для себя.
    Специалисты по NoCode не нужны вообще.
    Если кто-то сделал свой "бизнес" и решил сделать себе сайт-визитку, то благодаря NoCode, не особо криворуким рукам и невысоким требованиям к конечному результату, он сможет сам ее себе сделать в одном из тысяч конструкторов.
    Но такому бизнесмену ты вообще не нужен.

    Поэтому твой вопрос глуп сам по сути. NoCode - это возможность сделать что-то простенькое для себя не привлекая разработчиков вообще и экономя на этом деньги. Зарабатывают в NoCode только создатели подобных конструкторов.
    Ответ написан
    Комментировать
  • Стоит ли идти в NoCode разработку?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    No code это не разработка
    Ответ написан
    Комментировать
  • Стоит ли идти в NoCode разработку?

    BorLaze
    @BorLaze
    Java developer
    Как бы вайти в айти, но так, чтобы не учить ничего по айти?
    Ответ написан
    Комментировать
  • Как правильно получить промис?

    bingo347
    @bingo347 Куратор тега Node.js
    А кто будет ждать асинхронное действие?
    @Controller()
    @Get('/dashboard')
    @Render ('dashboard')
        async getDashboard () {
            const sites = await this.usersSitesService.selectSitesByUserId(1);
    
            return { sites };
        }


    selectSitesByUserId =  async (id: number): Promise<any>
    Какой смысл в тайпскрипте, если писать any?

    Репо с докой router-controller https://github-com.translate.goog/typestack/routin...
    Ссылка на машинный перевод? Вы это серьезно?
    Ответ написан
    2 комментария
  • Как улучшить производительность бота?

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

    Что касается вашего вопроса:
    1) Самое банальное - увеличить мощность того железа где запускается бот.
    2) Использовать профайлер для определения места в коде, где происходит самый долгий момент вычислений. Можно использовать например это
    Сделайте профайлинг, посморите какая функция выполняется дольше всех (а может не функция, а сетевой запрос?) и с этим вопросом уже приходите опять, если сами не поймете почему данная функция выполняется так долго. И ради бога, не просите никого заходить к вам в дискорд.
    Ответ написан
    Комментировать
  • Почему на сайте вордпрес, через поиск показывает только одну страницу с записями (10 шт), если записей у меня штук 40?

    Kozack
    @Kozack Куратор тега WordPress
    Thinking about a11y
    Скорее всего, в шаблоне страницы с результатами поиска в вашей теме просто не выводится пагинация.
    Ответ написан
    Комментировать
  • Почему на сайте вордпрес, через поиск показывает только одну страницу с записями (10 шт), если записей у меня штук 40?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов zolin.digital
    • search.php - шаблон который отвечает за результаты поиска
    • the_posts_pagination() - функция, которая выводит пагинацию
    Ответ написан
    Комментировать
  • Как работает веб-сервер и node js в связке? Зачем нужен Nginx?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Самое простое - nginx отдаёт статику. На больших объёмах делать это через Ноду неэффективно.
    Посложнее - nginx позволяет управлять ходом запроса. Например, редиректить на https.
    Ещё сложнее - можно настроить nginx, чтобы он умно балансировал запросы между несколькими бэкендами и автоматом блокировал слишком частые попытки подключения.

    Nginx очень хорошо в промышленных масштабах делает определённую часть работы, связанной с http-запросом, поэтому ему эту часть работы и делегируют.
    Ответ написан
    Комментировать
  • Как задеплоить бэк и фронт на одном сервере?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Всё в рамках стандартной конфигурации с проксированием. Делаете два серверных блока, разводите по разным портам в proxy_pass.
    Ответ написан
    Комментировать
  • C++ поиск практики, как найти работу за еду?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Проясните, каким путем сейчас люди попадают в С++ в системную разработку? Где людей берут стажерами, пусть дае и за бесплатно, но без особых требований?

    Не воротят нос и ищут любые вакансии на С++, работают 1-2 года, потом уже с опытом в резюме ищут более подходящие вакансии.
    Ответ написан
    Комментировать
  • Почему ответ 20?

    @V0vash
    [2,4,6] -> [4, 16, 36] -> 4 + 16 = 20
    Ответ написан
    1 комментарий
  • Почему ответ 20?

    w13vitaliy
    @w13vitaliy
    self-taught developer since 2020
    Дан массив [2, 4, 6] .
    Затем используется метод map который возращает новый массив. Как аргумент в метод map передается функция которая возращает новое значение в данном случае возводит в квадрат каждый елемент на выходе мы имеем массив [4, 16, 36] и он присваивается переменной squares. [a, b] = squares берутся числа a=4 и b=16 ну и складываются
    Ответ написан
    1 комментарий