Задать вопрос
  • Зачем нужен блок инструкций без управляющей инструкции?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    В изначальных исходниках там TypeScript. Вы смотрите уже скомпилированный код. В исходниках местами все обернуто в разные условия, завязанные на__DEV__:
    export function setExtraStackFrame(stack: null | string): void {
      if (__DEV__) {
        currentExtraStackFrame = stack;
      }
    }

    Когда происходила сборка кода, который вы смотрите, вероятно __DEV__ был true, условие было опущено, т.к. оно всегда выполняется, а скобки остались как артефакт. Скорее всего транспилятор TS не проверяет весь контекст, и чтобы ничего не сломать случайно, оставляет скобки на своих местах.
    Ответ написан
    2 комментария
  • Зачем нужен блок инструкций без управляющей инструкции?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Любой блок создает лексическую область видимости (переменные объявленные с помощью let и const видны только в пределах своего блока).

    Очень похоже, что такой код уже обработан какими либо инструментами.
    Допустим в исходном коде было что-то вроде:
    var currentExtraStackFrame = null;
    function setExtraStackFrame(stack) {
      if (process.env.NODE_ENV === 'production') {
        currentExtraStackFrame = stack;
      }
    }
    В процессе сборки process.env.NODE_ENV было заменено на 'production', а так как 'production' === 'production' - это всегда истинное условие, то от if можно избавиться, оставив только его тело, вот только от блока при этом инструменты не избавляются, так как можно сломать видимость переменных.
    Ответ написан
    Комментировать
  • Как лучше хранить много изображений для веб-приложения?

    @Drno
    в БД обычно хранится "ссылка" \ хеш на файл, а сам файл может хранится либо просто на диске в системе, либо на подключенном S3 к примеру, это уже как по деньгам \ удобству итд...
    Ответ написан
    7 комментариев
  • Тест nginx -- сколько сообщений в log без потерь?

    @asmelnik Автор вопроса
    Итог:
    Судя по количеству подписавшихся на вопрос -- вопрос явно вызвал интерес, судя по полному отсутствию ответов и комментариев -- подобную статистику не ведут.
    Этот же вопрос задан на https://forum.nginx.org
    Но там ответов тоже пока нет.

    Кому интересно подробнее -- можете почитать ветку
    https://forum.nginx.org/read.php?21,298858,298858#...
    Спасибо за внимание.
    Ответ написан
    2 комментария
  • Как создать прокси сервер на своём компьютере?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Чтобы создать прокси сервер на своем компьютере - нужно установить и запустить прокси сервер на своем компьютере
    Ответ написан
    Комментировать
  • Почему на хостинге у многих есть папка public_html и почему она так называется?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Раньше, когда трава была зеленее, интернет меньше и добрее, существовало вот такое в настройках веб сервера:

    # UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # The path to the end user account 'public_html' directory must be
    # accessible to the webserver userid. This usually means that ~userid
    # must have permissions of 711, ~userid/public_html must have permissions
    # of 755, and documents contained therein must be world-readable.
    # Otherwise, the client will only receive a "403 Forbidden" message.
    #
    # See also: httpd.apache.org/docs/misc/FAQ.html#forbidden
    #


    Т.е. можно было просто получить логин на сервер, где был запущен веб сервер и получить домашнюю страничку вида:
    example.com/~username

    И вот с тех древних времен так и потянулось... Каталог, в котором размещаются файлы сайта - public_html....
    Ответ написан
    4 комментария
  • Можно ли как добраться до iframe?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Получить доступ внутрь фрейма с другим доменом невозможно.
    Ответ написан
    Комментировать
  • Как сейчас работает закон о маркировке рекламы в интернете?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если вкратце, то алгоритм следующий:
    1. Находишь какого-нибудь ОРД (оператор рекламных данных)
    2. Регистрируешься у него (договор, можно даже с физ.лицом)
    3. Он выдает тебе инструкцию, как подключить рекламу на сайт

    Он тебе и ERID представит и статистику по кампании в РКН отправит.
    Самое простое, подключиться к яндекс директу - тебе только ставить нужный скрипт на сайт надо будет.

    Если хочешь свое запилить, то никто не мешает - главное, чтобы ERID был виден:
    - В изображении (в углу баннера)
    - В тексте (подпись внизу)
    Сами рекламные кампании создаются ОРД, список которых ведет РКН.

    Вот есть описание этого всего
    https://vc.ru/legal/963878-markirovka-reklamy-erir...

    Например, для яндекса все просто - надо только зарегистрироваться у них, а остальное сделают за тебя (вкладка "Паблишеры") - https://ord.yandex.ru/
    Ответ написан
    Комментировать
  • Является ли это корректной записью?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Не является. Массив используется на хранения списка значений, в нём нет никаких "имён".
    Значения с "именами" можно хранить либо в объекте, либо в специальном типе Map.

    Но при этом, если речь про значения примитивных типов, то при их добавлении в объект или Map теряется связь с изначальной переменной, откуда значение было взято.

    let a = 3;
    let b = 15;
    
    let one = {};
    
    one.a = a;
    one.b = b;
    
    a = 42;
    
    console.log(one.a, one.b); // 3, 15
    console.log(a, b); // 42, 15


    let a = 3;
    let b = 15;
    
    let two = new Map();
    
    two.set('a', a);
    two.set('b', b);
    
    a = 42;
    
    console.log(two.get('a'), two.get('b')); // 3, 15
    console.log(a, b); // 42, 15
    Ответ написан
    Комментировать
  • Как сделать кастомный переход слайдов swiper slider?

    @apoca1ipsis
    демо с официального сайта

    const swiper = new Swiper('#swiper', {
        effect: 'coverflow',
        loop: false,
        centeredSlides: true,
        slidesPerView: 3.4,
        spaceBetween: 0,
        coverflowEffect: {
                    rotate: 0,
                    stretch: 0,
                    depth: 275,
                    modifier: 1,
                    slideShadows : false,
                }      
        }
    });


    демо с моими настройками
    Ответ написан
    Комментировать
  • Реальны ли SIM-карты со статическим IP для видеокамер?

    @Drno
    Потому что это выдают только юр лицам. И не все операторы

    Проще впн сеть организовать и не париться
    Ответ написан
    5 комментариев
  • Qr code на python?

    fenrir1121
    @fenrir1121
    Начни с документации
    Потому что если попросить chatGPT написать код, который "генерит qr и добавляет на него изображение" он сделает все точно по ТЗ, не обращая внимания на то, что изображение перекрыло половину qr.
    Бред на входе -> бред на выходе, все честно.
    Ответ написан
    1 комментарий
  • Что такое культура программирования?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Не слышал о таком понятии. Скорее всего это HR развлекается
    Ответ написан
    Комментировать
  • Как наработать навык декомпозиции задач?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Программирование - это как плаванье. Ты сколько книжек не читай - все равно программистом не станешь.
    Ты просто должен сесть и начать программировать. Прыгнуть в воду и плыть.

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

    Чаще заказывай code-review своего кода и слушай советы старших коллег. Даже если обидно и стыдно.
    Слушай. Записывай и потом применяй.

    По поводу Алгоритмов и Структур данных. Почитай Никлауса Вирта. Он как раз такую книгу и написал.
    Ответ написан
    2 комментария
  • Как сделать резервную копию сайта?

    borisdenis
    @borisdenis
    Ленив и вреден...
    уйдет несколько часов на перенаправление домена на новый ip

    Ставите в настройках днс для домена TTL в 5 минут и через двое суток на изменение ip будет уходить как раз 5 минут....
    Если управлять днс записями через cloudflare.com, то изменение ip практически мгновенно.
    Ответ написан
  • Как реализовать отправку голосование пользователям в Telegram через TeleBot?

    @TKDBOT
    Учу python. Готов к конструктивной критике.
    1) Хендлером @bot.message_handler(content_types=['poll']) ловишь сообщение с голосованием.
    2) Разбираешь сообщение и находишь там:
    'question' - Вопрос викторины
    'options' - Список ответов
    'correct_option_id' - Номер правильного ответа, если в режиме викторина.
    'explanation' - Объяснение ответа, в режиме викторина
    3) Методом send_poll отправляешь голосование/викторину с этими параметрами.
    4) Профит

    P.S. дока для send_poll
    Ответ написан
    2 комментария
  • Как правильно реализовать проверку на наличие новых сообщений?

    @Everything_is_bad
    Как уже сказали, для чатов самое оптимальное websocket, только тут всплывет что у Django с этим проблема, есть channels, но мне они очень не нравятся, выглядит как переделанный сбоку костыль. Кроме этого, год назад видел попытки реализации websocket на основе текущего async в Django, но за этим не следил, так что не знаю какое там сейчас состояние. Так что лучшее решение, перенести чат на async фреймворки
    Ответ написан
    3 комментария
  • Получение з/п в крипте. Какие минусы?

    Минусы:
    1. Вам самим придётся все свои доходы декларировать, чтобы потом не жаловаться, что вам заблокировали счета и начислили пени за неуплаченный налог в лучшем случае
    2. Закон тебя никак не защищает (могут уволить одним днём, например, и вполне законно могут недоплатить, списав на волатильность курса)
    3. Работодатель, который такое предлагает - в 99% случаев занимается чем-то серым, а то и незаконным => тебя ещё могут как соучастника накрыть, если очень сильно не повезёт.
    4. Курс волатильный и могут быть проблемы при попытке перевода в фиат (начиная с комиссий и невыгодного курса, заканчивая обвалом курса и отсутствием покупателей. Про возможность объявления крипты вне закона или блокировки счёта на бирже или в банке я молчу)

    Законно ли это(живу в России)?

    То что ты делаешь уже не законно, даже без привлечения крипты, тк в России запрещено иметь трудовые отношения (регулярные работы на полный рабочий день с фиксированной ежемесячной оплатой) между самозанятым (исполнителем в статусе самозанятого) и заказчиком, ибо это очевидное уклонение от налогов (со стороны исполнителя, ибо так ты уклоняешься от НФДЛ) и нарушение трудового кодекса (со стороны заказчика, тк он уклоняется от уплаты взносов в ФСС и ПФР, и не обеспечивает тебя-работника социальными гарантиями)

    Законно ли это(живу в России)?

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

    Иначе потом будут вопросы "а откуда крипта" и "а где деньги, которые ты должен был получить за оказание услуг".

    Много ли уходит на комиссиях?

    Это уже зависит от того, как будешь выводить и как тебе будет твой "работодатель" деньги присылать.
    Ответ написан
    4 комментария
  • Python, что правильнее использовать, запуск бота на прямую или крон?

    @q2digger
    никого не трогаю, починяю примус
    правильнее сервис systemd нарисовать
    Ответ написан
    1 комментарий