Обновить
-3
0

Быдлокодер

Отправить сообщение

Подход в статье я рассматривал, когда первый раз в хромиуме увидел анализ использования кода, лет N назад (рабочий вариант, но автоматизация этого процесса чревата неожиданной потерей функциональности и всё равно можно мусора отхватить используемого, отказался от этой идеи)

В итоге пришёл к тому, что нужен оптимизирующий компилятор JS-JS с контекстом сред(ы) исполнения, запретом eval (хотя и для него можно что-то придумать, если рассматривать ситуацию как очередной import) и запретом модификации JS апишек сред(ы) вне "компилируемого" кода (т.е. набор модулей с одной точкой входа как единый контекст компиляции)
Иначе большая часть кода это различный мусор
Известные мне тогда JS-JS компиляторы (один даже через llvm прогонял для оптимизаций) имели слишком жёсткие требования к коду и/или требовали долгой настройки среды компиляции до её использования и/или подключение к сервисам третьих лиц, что делало их неприменимыми для массового использования

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

Исчерпывающее описание 99% JS статей про производительность.

Это криворукость, а не дикость:
1. Встроенный сервер NodeJS - убогое Г (решается аддоном типа uWS или переходом на среду исполнения Bun, должно на мелких ответах ~1-4KiB дать увеличение RPS с 30k+ до 90k+ на 1 ядро. идеал под JS - v8 и указатели + системные константы + системные вызовы, выкинутые в JS [обернуть в производительные JS абстракции] - так ещё в 1.5 раза можно поднять производительность и будет есть меньше проца и памяти)
2. express + React SSR + Next.js - убогое ГГГ (использовать что-то поверх uWS в NodeJS + шаблоны формата типа Marko [лучше не сам marko, т.к. тоже больше Г, чем не Г] и пр. решения не для ленивых)
3. Использование JS строк (rope string => flatten => utf8 encode - зачем? из БД бинарные данные, статичные строки можно заранее перегнать и потом соединять бинарники. если кол-во кусков очень большое, то строки могут быть быстрее за счёт батча операций, но здесь ещё GC даст циклу событий неизвестно когда стать куском Г, а в задержках 0+0>0, т.е. степень Г будет быстро нарастать при близкой к максимуму нагрузке)
4. VPS (тоже больше Г, бывает запуск докера внутри VPS делает ситуацию лучше, но это зависит от фазы луны)

В статье: берём 6Г и видим 34RPS, возмущаемся, оставляем 3Г и радуемся (если бы оставил VPS и убрал остальные 4Г, кроме JS строк, то даже дедик не нужен, т.к. оптимизированный вариант под полную утилизацию канала 1Гбит+).

Как у австралопитека, но из будущего
Написал TCP сервер для HTTP/1.1, чтобы гонять вебсокеты с низкоуровневым контролем соединений в JS
Решил добавить 2 и 3 (стырить MIT код у h2o), но перед этим глянул на поддержку вебсокетов по ним в браузерах - сэкономил время
Сайтики смотреть - работает, а дальше там мрак

Всё равно, что вы с другом сольёте средства в 1 счёт и твой друг террористов проспонсирует пока вы делите эти средства
Как доказать, что ты не спонсировал?

Да, вы правы
Только поддомены googlevideo.com не проходят у меня

Попробовал тот, что с manifest.googlevideo.com без selectel прослойки
Что на рос. серверах SSL с ошибкой, что на забугорных
Т.е. там нет SSL нормального на том домене, может быть раньше был и я что-то пропустил по этому поводу

До GGCшных r*.googlevideo.com уже странности происходят. То есть потери пакетов, то их нет (возможно стоит и здесь домены заменять на ip в каком-то прокси, чтобы исключить фильтры по доменам, хотя по статье данные по GGCшным серверам есть у фильтрующих...)
Для опр. рос. серверов RTT до них и от них до GGCшных меньше раза в 2-3 чем с локалки до GGCшных, может там повешу себе прокси

Скорее в России, но там один ISP, где географически обрубают - не понять

Взял это https://lg.selectel.ru/#/
Пинганул youtube.com, googlevideo.com и т.п. (или ip статичные поближе ищи руками)
Прописал соотв. ip в hosts (можно прокси поставить, чтобы имел список ip googlevideo.com и балансировал запросы, чтобы за счёт N коннектов к разным точкам задержки загрузки сегментов были меньше) и не нужны dpi, но пинг будет больше и соотв. большие потери будут создавать подвисания при большом кол-ве перезапросов данных (не зря GGC создавали)

Больше похоже на то, что пути до GGC локальных не работают нормально или рубятся (возможно не зря РКН по статье запрашивал данные по GGC)
tracepath в России или Литве отваливается до youtube.com, если с локальной машины запускать

Захотел и прекратил блокировку ECH, VPN/proxy называется
Остальное слишком долго и сложно для пользователя (сайт нужен сейчас, а не когда что-то там с блокировками изменится)

Это серьёзный вопрос к ответу или хабр совсем прокис?
Странные подмены в hosts, rdp соединения странные и пр.
Сесурити для того и нужен, чтобы зондировать на отклонения от нормы

TLDR: суть в бесконечном отрицании при использовании идентификатора (определение через суд, кто не имеет право его иметь)

1. ТГ не отвечает за действия третьих лиц и их прямое определение невозможно (нет регистрации по ID/паспорту)
2. Но ТГ отвечает за идентификаторы и владелец ТМ его дрючит, чтобы ситуация, в которой придётся обтекать из-за отсутствия юридически ответственного лица за действия третьих лиц (мошенники и пр.), не случилась (ну и пиар, естественно)
3. Сомневаюсь, что dodopizza.ru предоставляет идентификаторы третьим лицам без прямой привязки ответственности

Идентификаторы, отображаемые в ТГ, всё равно в руках ТГ при отображении
При предоставлении способа просмотра контроль в руках того, кто предоставляет способ просмотра, и это же лицо несёт ответственность за отказ от ограничения отображения на определённой территории согласно решениям судов (удалите экстримистов под такими идентификаторами и т.п.)

С доменами там свои правила
Но и домен заблочат по решению суда, если посчитают это целесообразным решением юридической проблемы

// Rendering - 2d - Cairo под Linux есть, под другие есть своё
// 3d тоже можно завести
// Можно ассемблер исполнять из JS через API хоста на машине
// Ограничений нет, только трудности кросплатформенной разработки, чтобы API везде одинаково себя вели для JS
// В теории даже движки можно выбирать на лету (хочу исполнять этот код в JSC/V8/SM/QuickJS/etc.)

// Loop - JS обёртка над epoll/kevents (пока есть задачи в нём мы не завершим исполнение [необработанные ошибки завершат исполнение программы])
const loop = new Loop();
// Timer - kevents + kevents.EVFILT_TIMER / epoll + file descriptor из timerfd_settime
// работает как setInterval, для setTimeout нужно будет в обёртке до вызова callback закрыть таймер
const timer = new Timer(loop, 1000, on_timer);
while (loop.poll() > 0) runMicroTasks();
timer.close();

Университет (нормальный) имеет программы по областям научных дисциплин. Т.е. можно измерить, что он предоставляет студентам (имея корочку, свежеиспечённый выпускник должен иметь опр. набор знаний).
Книга "как стать успешным руководителем" - товар. Набор слов.

Успешный успех - эфемерная сущность от начала и до конца. Если оформлена в виде образовательной програмы, то - 100% можно идти в суд и пришить ответственность за мошенничество. В зависимости от суммы - вплоть до уголовной.

Играюсь с uWebsocketsjs C/C++ аддоном для ноды (можно использовать без ноды uWebsockets). Очень шустрый http сервер (https не тестировал).


Сравнивал поверхностно с отдачей строки из nginx и нода с аддоном плевалась ответами незначительно лучше. Тесты были на nginx 'из коробки' и не претендуют на абсолютную истину, но настраивать nginx не было никакого желания.


Велосипедить тоже интересно, но я инвалид без нормальных знаний C/C++, чтобы писать что-то быстрое на нём. Хотя перенести в C++ кэш с мелкой статикой было бы неплохо (JS ArrayBuffer`ы должны, в моём понимании, передавать указатели в аддон, но я в исходниках ноды по этому поводу не копался).

Против вещей из content-script.js
В первом скрипте в header страницы (можно из своего расширения [очень просто], которое вы установите до любого другого)

{
  // fu MV3
  window.stop();
  
  // load page content here
  // 
}

А так whitelist доменов под расширение в настройках расширений или сохранение файлов расширения локально и кастрация разрешений до безопасного минимума

Ключевое слово "Госзакупки".
Анализировать текст на хабре давно разучились...

Ситуация скорее с заменой коня на двух ослов. Два осла неплохо, но при масштабировании это большая проблема.

Wise перестал работать в России (минимум пару дней назад). Основных плятёжных систем не так много.

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

1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность