Pull to refresh
37
Lain_13@Lain_13

User

19
Subscribers
Send message
Вообще я бы подумал в сторону хранения вектора в виде набора инструкций для 2D Canvas в бинарном формате. Хотя, конечно, SVG удобнее заменять потом на реальную картинку.
Кстати, я правильно понимаю, что двойное отрицание в таких конструкциях всегда работает как подтверждение, а не отмена отрицания? Т.е. «мы не хотим никакого образования», а не «мы не хотим остаться без образования».
Вообще да, сеттер на onload/onerror для основного скрипта не поможет. Просто они там в случае ошибки сначала создают ещё один и вот на нём уже сработает. Правда если его адблок не заблокирует, то тут уже без разницы сработает onload на нём или нет, наверное. В JS Fixes я там и window.open переопределил, да.
Шикарная штука. Изучаю. :)
Попробуй. :)

Для начала там нет eval, который можно было бы заменить. Это, конечно, классный способ развернуть недоразумение вроде «eval(function(p,a,c,k,e,d){...}(...));» — некоторые «разработчики» до сих пор думают, что такое сжатие усложняет понимание их кода, но в данном случае код скрипта изначально исполним в браузере и не проходит предварительную обработку. Браузеру ведь без разницы будет ли у тебя умножение записано как let c = a * b; или как let z = {m1f:(x,y)=>x*y}; let c = z.m1f(a,b); Результат в обоих случаях тот же. Во втором случае просто больше лишних действий.

Там есть два блока кода в текстовой форме: скрипт в две команды закодированный в data:url и используемый для перехода на другую страницу при открытии оного в новом окне, и скрипт, спрятанный в стиле. Последний действительно можно выцепить при желании через код, но поди ж пойми что он там вообще есть не разобрав для начала этот вот.
> Написать расширение для браузера, которое будет инжектить в head страницы скрипт реализующий всё вышеперечисленное и выполняющийся до вызова скрипта с рекламой?

Да, именно так. Правда писать само расширение не нужно — достаточно скрипта для Tampermonkey/Violentmonkey с "@run-at document-start" в заголовке.

Я вот такой кошмар поддерживаю, например: greasyfork.org/en/scripts/19993-ru-adlist-js-fixes

> Btw, jsnice не нужен, можно сделать pretty print прямо в Chrome DevTools.

Мне просто этого зверька прислали в виде текста. На сайте я эту дрянь потом очень долго отлавливал. Там на рандоме то ничего не выпадает, то другой скрипт вылезает с банальным eval(function(p,a,c,k,e,d), в котором интересным является лишь то, как они открывают попап в Хроме. А этот вот довольно редко.

Кстати, разве DevTools приводит числа в разных формах записи к десятичной системе?
К сожалению prepack там только хуже делает. Удаляет большую часть кода так-как считает её недостижимой, выносит все функции из словаря отдельными функциями (и оставляет словарь), не собирает даже те строки, которые не выкинул и оставляет часть тернарных операторов. Идея у них хорошая, но с таким вот кошмаром пока не работает.
Разве что для перехвата тех скриптов, который этот вот код распаковывает. А вот сам код оно, на сколько я помню, покажет как есть в том ужасном виде, что в начале.
Вы забыли последний шаг — прокинуть VPN работающий с ФГИС через самого себя.
Кстати, здравствуйте. Если что, то я автор JS Fixes. :)

А таймаут в 5 секунд без загрузки системы можно сделать через async await, например. Смотря где применить так-как промис async возвращает сразу, а вот код внутри уже можно тормозить через дичь вроде:
await new Promise((r,j)=>setTimeout(()=>r(), 5000));

Игры обычно покупают не столько из-за доступности плюшек вроде DLC — они обычно входят в пиратские паки. А из-за удобства. Обновления всегда вовремя и без проблем и поиска новых репаков и обновлений к ним, которые либо дико задерживаются, либо вообще никогда не выходят. Это особенно актуально с release-day патчами. Установка в 1-2 клика в клиенте вместо того же поиска, кривых сетапов и потенциальной вирусни. К тому же в пиратках часто недоступен сетевой функционал.

Если учесть, что последнее время Valve напоминает одну большую бухгалтерию при магазине и практически не занимается даже теми проектами, которые приносят баблище, то я бы не стал ждать HL3 в этом веке.
Хочу добавить, что специально для проверки на NaN есть более короткая функция isNaN().
Я бы хотел заметить, что такого рода сравнение в принципе не верно и ведёт к заведомо ложному результату. Это даже не хак, а ошибка в коде.
1 < 2 < 1.1
true

Дело в том, что второе "<" производит сравнение true < 1.1, приводит true к 1. Естественно оно меньше 1.1.

Главная проблема Оперы заключается в том, что они делали всё как для людей… вот только так и не смогли найти этих самых людей, для которых её делали.


ИМХО, но единственное, что действительно великолепно было сделано в Опере, это работа на медленных соединениях. Раньше пользовался, но потом сбежал с неё на Фокс так-как понял, что не вхожу в список тех людей, для которых её делали.

Пожалуй пора было бы уже привыкнуть, что ждать стоит только спиннер на табе, да и тот не всегда.
Но, пожалуй, могу понять.

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

Для слежения за обновлениями в интересующих меня темах и использую подписки на почту. Следить за каждым форумом и комиксом персонально его посещая для этого это какое-то адово извращение.

Фокус в том, что они реально нужны подавляющему большинству пользователей для того, чтобы понять, что вообще происходит. Так, например, анимация добавления элемента в закладки или меню дополнительных функций сразу говорит где его потом искать. Это особенно критично для начинающих пользователей и тех, кто не часто пользуется браузером и компьютером вообще.
В то же время с новым интерфейсом не на XUL это всё будет жрать даже меньше процессорного времени, чем то, что есть сейчас.

Information

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