Задать вопрос
  • Можно ли как-то запретить пользователю через консоль браузера отключать стили?

    bingo347
    @bingo347 Куратор тега JavaScript
    есть ли возможность определять открытую консоль и блокировать ее на 100%?
    нет такой возможности. Консоль можно открыть несколькими способами, и не все из них отслеживаются на странице.

    А проблема такая: это игра и тебе нужно ждать проигрывания анимации, если анимацию отключить, то это упростит прохождение.
    Как анимация может влиять на сложность прохождения?
    Ну и вообще, если какие-то правила игры можно обойти на клиенте и кому-то будет выгодно их обойти - их обойдут так или иначе, и помимо консоли есть еще несколько способов это сделать.
    Поэтому все значимые проверки должны происходить на сервере. На клиенте их разве что можно дублировать рад снижения нагрузки на сервер.
  • Написание системы на базе Linux kernel?

    а какие есть минималки на подобие этих но чтобы лёгкие были, например при работе с arch он у меня довольно много занимал места в ОЗУ при том что не было установлено ни какого wm

    joyrax-dev, в голом арче уже есть system-d, который далеко не легковесный.
    В debian сейчас вроде тоже system-d по умолчанию, но насколько знаю в нем можно выбирать. Хотя нужно ли? system-d - это мега удобная штука, если в ней разобраться.
    Есть еще void linux, он без system-d, не знаю что там вместо, init.rc ил еще что, но точно что-то иное. Правда в его пакетной базе не так много софта, и возможно многое придется ставить ручками, что явно не для новичка.
  • Как в 2022 году проверяют верстку в Safari и Safari Mobile, если нет мака и нет айфона?

    eugene159, у меня MacBook Air 2016 года (который на самом деле из линейки 2014) вполне себе обновляется до актуальных версий макоси, а сафари обновляется вместе с ней. На авито такие стоят недорого.
    Есть еще совсем бюджетный вариант - мак мини б/у, но нужны будут моник, клава и мышь, можно самые обычные.
    ойфоны вполне себе тестируются через xcode.
  • Как в 2022 году проверяют верстку в Safari и Safari Mobile, если нет мака и нет айфона?

    Сафари - это IE6 нашего времени :(

    wadowad, у IE6 были вполне предсказуемые проблемы и проверенные рецепты их решения в отличии от сафари
  • Как деплоить файлы сайта с github на хостинг?

    Можно на github настроить вебхук, и он будет слать post http запрос с json в теле с инфой о коммитах в пуше, а на сервере сделать скриптик, да хоть на том же php, который при данном запросе будет делать git pull сам
  • Как будет работать linux на моём ноутбуке?

    Sanes, версия 4.16 вышла более 1.5 года назад, но ее в большинстве популярных дистров придется ставить в обход репозиториев, а из репозиториев встанет 4.12, которой уже 7 лет...
    При этом крыс без дополнений - абсолютно пустой, а с дополнениями чтобы довести его до приличного современного десктопа он запросто сожрет 2 гига оперативы...
    Ну это так для сравнения с кедами, у которых последняя версия вышла неделю назад, и вообще они обновляются достаточно часто, при этом плазма юзабельна из коробки и жрет 200-300 мб, и даже если обвешать ее финтифлюшками, больше 700м плазма не жрет
  • Как будет работать linux на моём ноутбуке?

    Sanes, XFCE давно не обновлялся уже и по факту он тоже тяжелый, кеды более легковесные при большей функциональности из коробки
  • Будет ли работать веб-страница на телефоне без Интернета?

    bingo347
    @bingo347 Куратор тега JavaScript
    Леонид, вот только доказывая непонятно что, Вы забываете, что на каждом origin свой изолированный LocalStorage, у любого файла на диске origin будет file:/// - то есть общий для любых файлов с диска
  • Как правильно отключить нажатие кнопок?

    bingo347
    @bingo347 Куратор тега JavaScript
    KrotKrotKrotTest, нет, можно только проверить какая кнопка была нажата, благо у букв цифр коды выглядят весьма специфично, можно проверять обобщенно
  • Не форматирует код eslint?

    bingo347
    @bingo347 Куратор тега TypeScript
    WbICHA, у каждого свой вкус фломастеров... у меня ровно противоположная ситуация, уже второй коллектив где люди психовали от преттиера из-за того что мало того что между яп скакать приходится, еще у ts форматтер кривой, а с моей помощью настроили eslint и выкинули преттиер - все счастливы.
  • Не форматирует код eslint?

    bingo347
    @bingo347 Куратор тега TypeScript
    это в какой вселенной нету преттиера

    WbICHA, преттиер практически не конфигурируемая штука, в отличии от eslint, притом многие его форматы являются вырвиглазно-нечитаемыми для людей которые помимо js/ts пишут на чем-либо еще (java, c#, c++, go, rust)

    По поводу автофикса для max-len в eslint - это нетривиальная задача, одну и ту же строку кода можно разбить на несколько множеством способов, притом некоторые из этих способов могут конфликтовать с настройками других правил
  • Что почитать про многопоточность в вебе?

    А чем "многопоточность в вебе" отличается от простой многопоточности?

    Василий Банников, если говорить про браузеры, то там реально не хватает примитивов расшаривания/синхронизации данных между потоками, объекты передаются только через глубокое копирование, при этом часть вещей так передать вообще нельзя. Некоторые штуки правда можно мувнуть в другой поток, а не копировать, но таких штук не так уж и много.
    Из общей памяти по сути только SharedArrayBuffer, в котором сырые байты, а из примитивов синхронизации - только атомики поверх SharedArrayBuffer, притом только с sequentially-consistent memory ordering.
    Хотя когда завезут многопоточку в wasm возможно дела с этим будут получше
  • Как преобразовать массив в строку js?

    bingo347
    @bingo347 Куратор тега JavaScript
    Дмитрий Путилов, покажите код, то что у Вас в примере это не код, он вообще работать не будет и не запустится.
    Откуда приходит такой формат и в виде чего? В строку завернут?
  • Как реализовать полиморфизм у одной сущности с разными типами?

    GolangNoob, а, тогда все проще, если все функции с одинаковой сигнатурой, сделайте map из string в указатель на функцию
  • Как реализовать полиморфизм у одной сущности с разными типами?

    GolangNoob, я вот давно go не трогал, разве можно в нем сделать структуру с любым типом внутри?
    Вообщем мне кажется с go такое вообще не провернуть, нужны дженерики, вроде их собирались завезти в go, но вот не знаю как с этим дело в итоге обстоит.
    Я бы такую задачу решал на расте в виде статической библиотеки, которая потом будет линковаться с остальным проектом на go через cgo. Ну или на плюсах еще можно с их темплейтами.

    Ну еще как вариант, если payload - это просто некий набор байт, то тащить его до обработчика как сырые байты, а обработчик уже сам решает как из сырых байтов восстановить нормальный тип. По крайней мере в C, где тоже весь полиморфизм ручками, именно так делают, функции принимают на вход void* data и разбирают из него байты в нормальную структуру.
  • Как реализовать полиморфизм у одной сущности с разными типами?

    Разработка ведётся на Go
    сочувствую... в go практически нет ни одного типа полиморфизма, разве что криво сделанный динамический в виде утиной типизации на интерфейсах
  • Почему esLint меняет такой код?

    bingo347
    @bingo347 Куратор тега JavaScript
    Максим Морев, люди просто не понимают всей прелести статического анализа кода, пока им не покажешь всех его возможностей. А еще людям лень в чем-то разбираться. Тот же конфиг airbnb не покрывает и половины возможностей встроенных в eslint правил. И то что к eslint бывают плагины не все знают, хотя как по мне - настроенный eslint-plugin-eslint-comments это вообще обязательная штука.

    Нужно просто показать людям "смотри как можно". Я так уже на второй работе собственный конфиг eslint успешно внедрил, притом на прошлой до меня вообще tslint был, а на текущей тот самый airbnb + поотключали что мешало, а сейчас люди мой конфиг сами тащат, вижу его в тех проектах где я вообще не участвую.

    Или вот еще пример, основной проект на расте, была проблема со скудной документацией, я предложил решить проблему радикально:
    #![deny(
        missing_docs,
        clippy::missing_safety_doc,
        clippy::missing_panics_doc,
    )]
    в каждый крейт... По началу конечно пришлось тут же навесить allow на многие сущности, но это решили простой договоренностью - поправил что-то в функции/методе/типе без доки - напиши доку, иначе не апрувим МР. Спустя несколько месяцев покрытие документацией выше 80%.
  • Как ожидать завершения дочерних потоков?

    FlensT, Цикл loop так-то тоже заблокирует поток, но при этом будет жрать вычислительные ресурсы как не в себя
  • Как правильно написать макрос для такого выражения?

    Василий Банников, iihaarr, можно вот такое извращение написать для подсчета:
    https://github.com/tokio-rs/tokio/blob/master/toki...

    Но как по мне, через proc-macro такое сделать все же проще...

    Хотя если вопрос стоит только в подсчете количества в компайл-тайм, то можно так попробовать:
    macro_rules! name {
        ($t:ty, $({$($el:expr),*}),*) => {
            vec![$(
                name!(@chunk {$($el),*}) as $t
            ),*]
        };
        (@chunk {}) => { 0 };
        (@chunk {$($el:expr),+}) => {
            std::mem::size_of_val(&[$(
                name!(@byte $el)
            ),+])
        };
        (@byte $el:expr) => { 0u8 };
    }
    
    fn main() {
        let v = name!(i32, {1, 2, 3, 4}, {1, 2}, {});
        println!("{v:?}")
    }


    std::mem::size_of_val - константная, для sized типов гарантировано считается в compile-time, и из условногоstd::mem::size_of_val(&[0u8, 0, 0, 0])генерируется movq $4, (%rsp) без создания массива