Задать вопрос
  • Проблема с жёстким диском?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    у меня сборка где весь мусор вырезан

    Дальше можно не читать :) Мусор-то вырезан, а где гарантия, что майнер не врезан? Десятка ставится с официального образа, нет там особо ничего шляпного... (это я говорю, как человек, только вот полгода назад пересевший дома на десятку)
    Ответ написан
  • Проблема с жёстким диском?

    Adler_lug
    @Adler_lug
    Ставить винду на hdd это уже давно моветон.
    Купите ssd.
    Ответ написан
    2 комментария
  • Как обойти DOM дерево с поиском нужно класса на JS?

    neuotq
    @neuotq
    Прокрастинация
    Алгоритм:
    0. В любом случае есть родительский контейнер, поэтому работаешь от него. Лучше чтобы у него был id, тогда при работе функции отслеживания ты сможешь её запускать с нужным айди, она будет универсально и поддерживать множество независимых подобных контейнеров с этим меню.
    1. По клику ищешь текущий isActive (с учетом специфичности родительского контейнера) и снимаешь все активные.
    2. Делаешь кликнутый активным.

    Условный пример. Не продашн рэди) Но смысл ясен.

    Ответ написан
    Комментировать
  • Как скачать docker image с официального сайта elastic.co?

    deepblack
    @deepblack
    У меня поднят xray (VLESS, Reality - в инете инструкций по настройке полно) на зарубежном хостинге,
    на серверах где нужен доступ к подобным ресурсам стоит все тот-же xray но настроенный как обычный прокси (SOCKS, http, https)
    в настройках Docker указан этот (локальный) прокси, который в свою очередь пересылает запросы на сервер зарубежом.
    Все работает отлично
    66c59f9c7f21b408311176.png
    66c59f3d5ec98392538715.png
    Ответ написан
    1 комментарий
  • Как отслеживать изменения на сайте?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это сложный вопрос и вобщем на 99% он зависит от дизайна самого сайта.
    Сайт вам вобщем -то ничего не должен предоставлять для трекинга информации.
    Но согласно HTTP-протколу например GET/HEAD может вернуть заголовок документа
    где будет много интересного.

    Например артифакт gravitee-am-repository-api-4.4.4.jar внутри maven repository
    хранит много метаинформации о себе. Например etag (контрольная сумма md5)
    и last-modified метка времени которая показывает как давно обновлялся
    документ.

    $ curl --head https://repo1.maven.org/maven2/io/gravitee/am/repository/gravitee-am-repository-api/4.4.4/gravitee-am-repository-api-4.4.4.jar
    HTTP/2 200
    etag: "3f5e67c1a10ded796a27108ba3756823"
    content-type: application/java-archive
    last-modified: Mon, 19 Aug 2024 13:49:25 GMT
    x-checksum-md5: 3f5e67c1a10ded796a27108ba3756823
    x-checksum-sha1: 4ac91e2e6d1cfd393c505e6a8db6bf0031dcc517
    via: 1.1 varnish, 1.1 varnish
    accept-ranges: bytes
    age: 0
    date: Mon, 19 Aug 2024 22:52:11 GMT
    x-served-by: cache-iad-kcgs7200147-IAD, cache-fra-etou8220101-FRA
    x-cache: HIT, MISS
    x-cache-hits: 2, 0
    x-timer: S1724107932.544121,VS0,VE90
    content-length: 71040


    Если вам повезет - то можете использовать эти атрибуты как метод трекинга обновлений.
    Ответ написан
    Комментировать
  • Тормоза браузера из-за стилей, решение?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Для начала для нас важно осознать, что у разных фильтров разная вычислительная сложность. Они не все "плохие". Алгоритмы для brightness, grayscale, hue-rotate и других манипуляций с цветом выполняются за O(1) для каждого пикселя. Т.е. нагрузка на железо растет линейно в зависимости от площади элемента на экране. Это не так страшно. А вот фильтры размытия, blur или drop-shadow, имеют сложность где-то в районе O(R^2). Там есть разные варианты оптимизаций, но в среднем мы говорим именно о квадратичной зависимости от радиуса размытия. И это для каждого пикселя. Именно отсюда мы имеем сильные тормоза при попытке что-то большое размыть на пол экрана. Дохлые видеокарты телефонов и ноутбуков не вывозят. Браузеры не умеют такие вещи переиспользовать, так что это переразмытие происходит снова и снова, и мы имеем что имеем.

    При этом фильтры в CSS, в SVG - это все грубо говоря высокоуровневые обертки над одними и теми же универсальными алгоритмами рендеринга. Мы можем в рамках WebGL написать свои шейдеры, которые будут делать то же самое. Обертки разные, но алгоритмы одинаковые. Поэтому замена одной технологии на другую ничего особо не даст в плане производительности. В вопросах оптимизаций нам нужно не по-тупому менять инструменты-обертки, а смотреть в конечные алгоритмы, которые будут задействованы на странице в реальном времени, и по возможности рассчитывать все заранее и переиспользовать.

    В контексте верстки тут есть полтора варианта, что можно сделать. Можно рассчитывать такие вычислительно-сложные штуки еще при разработке и загружать в страницу сразу в виде картинок или видео. Это не идеальный вариант, пропорции получаются фиксированные, но иногда подходит. Есть вариант рассчитывать такие штуки в фоне на WebGL. Т.е. мы грузим интерфейс, смотрим какого там все размера получается, и один раз в фоновом режиме генерируем картинки нужного размера и потом плавно показываем. Такой вариант частенько встречается в рекламно-конкурсных проектах, когда за прелоадером в начале скрывается в том числе и такая генеративная история. Тут мы получаем гибкость в плане размеров и хорошую производительность сайта в целом, потому что все операции проходят только один раз, а дальше у нас все переиспользуется в виде обычных картинок. Каких-то принципиально других вариантов у нас пока нет. Только дизайн менять.
    Ответ написан
    3 комментария
  • Опасно ли не закрыть сокет сервера или клиента в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Хэндлеры, хоть сокетов, хоть файлов - это конечный ресурс, а ОС и интерпретатор не дают вам никаких гарантий его автоматического освобождения. Так что если у вас интенсивно работающее приложение, то оно может в какой-то момент поставить раком машину, на которой работает. Готовы ли вы принять этот риск ради возможности говнокодить - вопрос к вам.
    Ответ написан
    5 комментариев
  • Почему в Go вакансиях требование знания PHP?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Или это просто такое количество кодовой базы на PHP накопилось, которую все дружно решили переписывать на Go

    Скорее всего.

    если да, то почему именно на Go?

    Если компания решилась вложиться в переписывание продукта на другом языке, то у неё на это точно очень веские причины, вероятнее всего - проблемы производительности. В этом случае Go - очевидный выбор. Python, Ruby и JS не дадут никакого выигрыша относительно PHP. Хоть на языках из мира jvm и .net можно писать высокопроизводительный софт, но они скорее решают проблемы сложности огромных кодовых баз. С++ и Rust очень сложны и для прикладного софта применяются только в крайнем случае. Всякая экзотика, типа Erlang, Elixir и Haskell - это вообще редкий случай в энтерпрайзе. Go же одновременно очень прост и ориентирован на высокую производительности.
    Ответ написан
    7 комментариев
  • Зачем нужен Kubernetes?

    Кубер для крупных микросервисных проектов, где сервисов, ну, хотя бы десяток. Для одного маленького монолита преимуществ не будет.
    Кубер нет смысла эксплуатировать в проде всего на одной ноде - все преимущества отказоустойчивости минус.
    Какие преимущества кубера - развертывание сервисов в N инстансов на K серверов, выживаемость этих серивсов при отказе нескольких нод или инстансов, балансировки, обновления без даунтаймов (rolling update)... Там еще много всего что касается массированных развертываний.

    Съехать с композов в кубер проблема незнаичительная, можно развиваться по мере необходимости
    Ответ написан
    7 комментариев
  • Как ускорить YouTube на OpenWRT?

    ValdikSS
    @ValdikSS
    Я установил на роутер zapret nfqws, не используя стандартные скрипты из поставки. Конфигурация такая, какая описана вот в этом баге:

    https://github.com/bol-van/zapret/discussions/262

    Взял бинарник из репозитория, написал простейший init-скрипт (/etc/init.d/nfqws) для openwrt с вшитыми параметрами, написал свои правила firewall’а. Оригинальные тоже хорошие (и обрабатывают разные конфигурации), но вот эти банально проще.

    # cat /etc/init.d/nfqws 
    #!/bin/sh /etc/rc.common
    
    USE_PROCD=1
    START=91
    
    PROG=/etc/zapret/nfqws/nfqws
    
    start_service() {
      procd_open_instance
      procd_set_param command "$PROG"
      procd_append_param command --dpi-desync=fake
      procd_append_param command --dpi-desync-fooling=md5sig,badseq
      procd_append_param command --dpi-desync-split-pos=1
      procd_append_param command --dpi-desync-repeats=12
      procd_append_param command --dpi-desync-ttl=4
      procd_append_param command --qnum=200
      procd_append_param command --hostlist=/etc/zapret/nfqws/youtube.txt
    #  procd_append_param command --hostlist=/tmp/domains-export.txt
      procd_set_param stdout 1 # forward stdout of the command to logd
      procd_set_param stderr 1 # same for stderr
      procd_close_instance
    }


    С моими правилами файрволла (connbytes) в nfqws копируются только первые 8 пакетов, а дальше всё маршрутизируется как обычно. /etc/zapret/zapret.nft:

    chain zapret_lan_hook {
        type filter hook forward priority mangle;
    
    #    iifname {"br-lan"} \
          ip daddr != {0.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 100.64.0.0/10, 169.254.0.0/16, 224.0.0.0/3, 255.255.255.255/32} \
          tcp dport {80, 443} ct original packets lt 8 counter queue flags bypass to 200 comment "zapret IPv4 443 tcp"
    
    #    iifname {"br-lan"} \
          ip6 daddr != {::ffff:0:0/96, fc00::/7, fe80::/10, ff00::/8} \
          tcp dport {80, 443} ct original packets lt 8 counter queue flags bypass to 200 comment "zapret IPv6 443 tcp"
    
    #    iifname {"br-lan"} \
          ip daddr != {0.0.0.0/8, 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 100.64.0.0/10, 169.254.0.0/16, 224.0.0.0/3, 255.255.255.255/32} \
          udp dport 443 ct original packets lt 8 counter queue flags bypass to 200 comment "zapret IPv4 443 udp"
    
    #    iifname {"br-lan"} \
          ip6 daddr != {::ffff:0:0/96, fc00::/7, fe80::/10, ff00::/8} \
          udp dport 443 ct original packets lt 8 counter queue flags bypass to 200 comment "zapret IPv6 443 udp"
    }


    Нужно заinclude’ить скрипт в настройках firewall’а. /etc/config/firewall:

    config include 'zapret'
    	option type 'nftables'
    	option path '/etc/zapret/zapret.nft'
    	option position 'table-post'
    	option enabled '1'


    Необходимо отключить offloading, с ним, скорее всего, работать не будет (но я не проверял, оригинальные правила учитывают этот момент).

    В таком виде всё установить можно на ЛЮБОЙ роутер, даже на 4/32, при большом желании (скриптом скачивания бинарника в оперативную память, при необходимости).

    /etc/zapret/nfqws/youtube.txt:

    youtube.com
    youtu.be
    googlevideo.com
    googleapis.com
    gvt1.com
    ggpht.com
    ytimg.com
    youtube-nocookie.com
    play.google.com
    video.google.com
    youtube-ui.l.google.com
    youtubeeducation.com
    youtubekids.com
    Ответ написан
    2 комментария
  • Как уберечь сайт который у тебя используется в портфолио, от безвкусных правок заказчика?

    @Drno
    Копию на свой "хостинг" выкладываете и всё
    а то что в реальности пусть само по себе работает
    Ответ написан
  • Как вывести список элементов из структуры Map?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Array.from(CarStore.cars).map(([key, car]) => <Text key={key}>{car.name}</Text>);
    Ответ написан
    Комментировать
  • Как сделать расплывчатый градиент для фона сайта, как на изображении ниже?

    @karminski
    Senior React.JS Developer
    Открыть консоль браузера, выбрать нужный элемент и посмотреть как сделали это разработчики сайта.
    Ответ написан
    Комментировать
  • Каковы шансы устроиться на работу в IT без военника и образования?

    xez
    @xez
    TL Junior Roo
    Отсутствие образования и военного билета - не самая большая проблема при трудоустройстве.
    Если устроетесь в акредитованую IT контору - получите отсрочку от призыва.
    Недостаток образования должен быть скомпенсирован скилом и/или опытом.

    Короче, шансы есть, но вам придется конкурировать с образованными ребятами, которые закрыли каким-то образом вопрос с армией. Перевесят ли ваши навыки ваши "недостатки" зависит только от вас.

    UPD.: все таки отсрочку it контора без профильного образования не даст...
    https://www.gosuslugi.ru/armydelay
    Ответ написан
    9 комментариев
  • Как красиво использовать динамически подгружаемый API?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Вот те простой хэлпер для ленивой загрузки одной функции:
    function lazyAsync(lib) {
      let promise;
      return async function (...args) {
        promise ??= lib();
    
        return (await promise).call(this, ...args);
      };
    }
    
    const doSomething = lazyAsync(async () => {
      // тут загружаем
      const doSomething = await loadLib('doSomething');
    
      // тут что-то делаем с загруженным
    
      // тут возвращаем конечную функцию
      return data => {
        // тут делаем с аргументами
        return doSomething.process(imgData);
      };
    });
    
    // если сразу загружается нужная функция - можно не усложнять
    const doSomething = lazyAsync(loadDoSomethingProcess);
    
    await doSomething(1);
    await doSomething(2);
    await doSomething(3);
    Ответ написан
    Комментировать
  • Как добавить авторизацию в каждый последующий запрос коллекции Postman?

    petermzg
    @petermzg
    Самый лучший программист
    66b377a8d838f387114270.png
    66b377c874caf398469806.png
    var res = pm.response.json();
    pm.environment.set('token', res.token);

    66b377dacc9ab075006401.png
    Ответ написан
    Комментировать
  • Не будет ли процессор i5-9400f "бутылочным горлышком" для видеокарты 3060ti?

    Wispik
    @Wispik
    Не будет
    Ответ написан
    Комментировать