Pull to refresh
36
0
Lain_13 @Lain_13

User

Send message
Следовательно, monitor не работает с arrow-функциями.
И это тоже. Удивительно как легко мозг адаптируется.
Пожалуй лучше всего то, что это совершенно бес проблем читается в контексте. Можно даже не заметить, что они боком повёрнуты.
Ещё можно сделать именно детектор наличия открытой консоли. Например, спам console.log(x) через тот же setInterval, где x это объект с подменённым toString, но это тоже можно обойти при желании.
Всё корректно, но кто сказал, что это ID записи в таблице? Ещё раз, это может быть ID чего угодно. Хотя я согласен, что для простоты лучше было назвать колонку более обще вроде nums. Такие названия обычно дают «по привычке». Как, например, счётчик в цикле обычно называют i или x. Не потому, что так нужно, а потому, что так привыкли его именовать.
ID вполне себе нормальное название. Разве кто-то уточнял, что идентификатор должен быть уникальным? Это ведь может быть ID чего угодно, а не данной конкретной записи в таблице. Всё зависит от того, что вы с этими данными собираетесь делать. Можно, например, посчитать количество повторов каждого ID, слить в другую таблицу, сделать truncate на первую и дальше ждать её наполнения новыми данными. Повторить.
Мне кажется или всё, что нужно для работы нормальному менеджеру паролей (встроенному в браузер или расширению), это наличие формы логина с более-менее стандартными именами полей на странице сразу при её открытии и то, что именно эти поля заполняет пользователь. А то как и в каком порядке поля отображаются его волновать не должно. Какая разница видно их или нет если у него есть доступ к DOM, в котором он спокойно может найти форму, заполнить её и отправить. Проблемы возникают только если поля генерируются динамически из кода. Вот за это реально нужно делать ататат. А как там изголяются авторы страницы со способами отображения формы логина если она уже есть где-то на странице не суть важно. В крайнем случае всегда можно сделать форму на отдельной странице, но отображать её во фрейме не покидая активную.

Более того, людей с неустойчивой психикой к насилию может подтолкнуть буквально что угодно. И если такой человек будет играть в игру, то не обязательно к насилию подтолкнёт жестокость. От «Getting Over It» люди плакали и кричали матом на стримах, а там насилия нет в принципе.
https://www.youtube.com/results?search_query=getting+over+it+snake

Если учесть, что с прототипами легко намухлевать:
medium.com/javascript-scene/common-misconceptions-about-inheritance-in-javascript-d5d9bab29b0a
То лучше сразу сказать, что идея универсального deepFreeze заранее обречена на провал.
Зачем вы проверяете hasOwnProperty?

А и правда, в сочетании с getOwnPropertyNames оно явно лишнее.


А вот про instanceof можно поподробнее? Впрочем, на сколько я понимаю проверять прототип тоже не самая здравая идея:
http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/
Если в том примере с xArray добавить Object.getPrototypeOf(arr) === Array.prototype, то тоже будет false. Тогда уже лучше o !== null && typeof o === 'object', наверное?


Т.е. полный варианту будет выглядеть как-то так:


const deepFreeze = o => {
    Object.freeze(o);
    Object.getOwnPropertyNames(o).forEach(
        (p, i, o) => {
            let d = Object.getOwnPropertyDescriptor(o, p);
            if (d && d.value !== null &&
                typeof d.value === 'object' &&
                !Object.isFrozen(d.value))
                deepFreeze(d.value);
        }
    );
    return o;
};

Боже, эта любовь к зависимостям…
deepFreeze:


const deepFreeze = o => {
    Object.freeze(o);
    return Object.getOwnPropertyNames(o).every(
        p => o.hasOwnProperty(p) && o[p] instanceof Object && !Object.isFrozen(o[p]) ? deepFreeze(o[p]) : true
    );
};

Можно ещё сразу же: deepFreeze(deepFreeze);

Вообще это весьма вероятная ситуация для местного софта, который по какой-то причине раздражает эвристику. И не важно есть там что-то или нет. Локальные антивирусы скорее всего будут в курсе данной софтины, проверят и сделают исключение, убедившись что там нечего ловить. Зарубежные же и через несколько месяцев могут понятия не иметь, что это такое и кому оно надо. В ловушки оно к ним не приходит, пользователи не жалуются, а делать исключения в эвристике и так полно для кого, чтоб ещё и этим заниматься. и это касается не только местного софта в РФ, а практически любой страны.
Вообще, на сколько я вижу, все, кто нашли, сделали это эвристикой. Если учесть, что прога Российская и за пределами РФ к использованию не предназначена, то зарубежные антивирусы могут понятия не иметь о том что это такое и есть ли там вредоносный код или нет. Я не утверждаю, что там ничего нет, но и с уверенностью говорить, что там что-то есть, тоже нельзя. Это может быть банальное ложное срабатывание, которое никто за рубежом не удосужился исправить. И это, кстати, вполне нормальная ситуация. Они ложные срабатывания и на родном софте не всегда успевают исправлять. Так, например, бинарник игры Scarlet Blade упакован Themida и на него ругается целый ворох зарубежных антивирусов просто из-за одного этого факта, хотя вредоносной деятельности за игрой вроде как не замечено.

Если оба требуют монетизацию через рекламу в их пользу, то фак обоим. И тому, кто выложил. Монетизация ролика полностью блокируется. А у Джима монетизация через Patreon. :)

Я так понимаю это возникло из-за повсеместного использования стрелочных часов у которых вместо ноля было 12. Мне тоже это не нравится, в том числе на стрелочных часах.

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

Хочу заметить, что это хоть и контринтуитивно, но 12 AM после 11 PM это именно что «логически правильно» так-как любой момент сразу после полуночи или полудня будет уже после, а сами по-себе полдень и полночь временной продолжительности не имеют. Если на то пошло, то идеально точное 12:00 будет просто meridiem без ante или post.

Я терпеть не могу, когда в 11:17 говорят «уже 12й час идёт», но ведь так оно и есть на самом деле и здесь то же самое. В 12:00 AM идёт первая минута до полудня.
Тогда попробуйте 56 или 57. Будете приятно удивлены. 56 если у вас много дополнений и вы пока не хотите искать им замену.
Или у вас Фокс наконец обновился. ;)
После 52 у них там и значительные оптимизации в потреблении памяти были, и движок начал новый приземляться и более-менее приземлился в 57, хотя доработки продолжаются. Сам браузер стал раза в два быстрее работать и раза в два меньше жрать при этом.
Естественно это всё крайне благоприятно отразилось при запуске новой версии на старом железе. 52й же и ниже и на новом трудно пользоваться без мата.
1
23 ...

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity