• Пришёл ответ от РКН по недоступности домена www.postfix.org. Как понять ответ?

    @Drno
    У РКН в данный момент могут быть любые основания, им дали полный картБланш блокировать что угодно без суда и разбирательств
    Ответ написан
  • Как мошенники делают на Госуслугах красную табличку "Кабинет занят, с ним работает оператор" и как этому противодействовать?

    @alexalexes
    До того, как увидеть табличку на странице браузера с человеком аккуратно поработали соц. инженерией. Дали ссылку на расширение браузера, дали почитать письмецо с нужным наполнением, порекомендовали установить "свои" гос. услуги на комп/телефон...
    Магии в этом нет, все делается словами и убеждением. Госуслуги, да и любая система тут не причем.
    Ответ написан
    Комментировать
  • Проблемы с ядром от ИСП РАН?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Возможно. Но будет:

    1) Высокая нагрузка в простое
    2) Характерный свист дросселей
    3) Не работать Wi-Fi
    Ответ написан
    Комментировать
  • Стоит ли переходить с АМ4 на АМ5? Стоит ли переходить с ryzen 5 5600 на ryzen 5 7500f?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Если только играть - все деньги в видеокарту должны пойти.
    Вот будет у вас 4090 (и если будет не хватать) - тогда уже подумайте о переезде на новую платформу.
    Ответ написан
    2 комментария
  • Как исправить "лагание" 3ds Max при удалённой работе на виртуальной машине?

    @rPman
    Не лагающие протоколы передачи экрана (для работы с графикой), требуют минимум гигабитные сети и алгоритмы, кодирующие изображение видеокодеками.

    Простейший vnc не подойдет.

    Хорошую скорость могут дать к примеру майкрософтовский rdpx (только с серверными ревизиями windows, только с прямым доступом к серверным видеокартам), или что то типа teamviewer/anydesk, попробуй parsec, так же мне очень понравилась работа steam link remote play (бесплатно, win/linux, заточена на realtime игры, и клиенты могут работать на очень старом железе, например планшетниках android, т.е. поддержка очень качественная, хотя что то я не уверен что какая-нибудь малинка тут справится).

    Открытые решения - например sunshine+moonlight (говорят лучшая замена steam link), rustdesk

    Но главное, виртуальные машины практически все не умеют предоставлять полноценный доступ к графическому ускорителю, за исключением специализированных серверных nvidia ускорителей и серверных ОС. Это сделано искусственно, на уровне драйверов (для linux есть попытки типа протокола spice). Это значит, что сами приложения будут медленно работать, используя только генерацию изображения на процессоре, либо использовать gpu не полностью (например для старых windows с virtualbox шли экспериментальные драйвера, позволяющие в некоторых пределах запускать в т.ч. cad приложения достаточно быстро, но уже начиная с windows 10 что то сломалось, и поддержка 3d ускорения прекратилась)

    p.s. ваша видеокарта кажется серверная, а значит если установить windows server то с помощью протокола rdpx можно работать достаточно эффективно (клиенты должны быть тоже windows, вроде бы linux remmina поддерживает rdpx но мне негде было проверить)

    p.p.s. если вам нужно в пределах одного помещения (десятки метров, в крайнем случае сотня, но за расстояние придется доплачивать за железо 10-20т.р. на рабочее место) вместо передачи по сети, рекомендую прямое подключение, т.е. к одной машине подключаете нужное количество мониторов (можно на одной видеокарте можно на нескольких), клавиатур и мышек, собрав несколько рабочих мест, устанавливаете на машину windows 10 (не серверную) и приложение ibik aster (лицензия на одно рабочее место примерно в 30 раз дешевле windows) и пользуетесь компьютером нативно, без тормозов и лагов сетевой передачи (один раз попробовав, никогда ни на какие rdp/vnc/anydesk/.. не вернетесь), единственная проблема - софт, многие просто не готовы одновременно быть запущенным на одной машине. Чаще всего проблем в принципе нет (каждое рабочее место свой аккаунт windows), во многих случаях приходится слегка по шаманить (например пару телодвижений для запуска steam, или к примеру некоторые игры требуют установку приложения для каждого рабочего места в разные места на диске и т.п.) и очень редко приложения не работают (например запрещено лицензионным соглашением, т.е. проверка сколько экземпляров приложения запущено), в каких то случаях решается кряками, а где то хватает той же песочницы sandbox.
    Ответ написан
    Комментировать
  • Почему не рендерится ответ fetch в виде DOM?

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

    1. Вы можете вообще взять под контроль весь рендеринг DOM при помощи React, Vue и т.д. Но это вам надо будет серьёзно погрузиться в изучение этих фреймворков, и в классическом варианте вы потеряете поисковую оптимизацию.

    2. Воспользоваться библиотеками, которые как раз для этого предназначены.

    - Для Symfony есть прекраснейший компонент Live Components. Вы пишете всё в Twig, вставляя там особые атрибуты, и компонент возьмёт на себя всю работу по замене частей страницы нужными компонентами.

    - Либо, если вам не понравится почему-то Live Components, можете воспользоваться Htmx

    В результате вам даже не нужно будет особо знать JavaScript, всё будет автоматом работать

    P.S. Если вы уже пользуетесь фреймворком, то пользуйтесь его плюшками, сильно упрощающими жизнь. Я имею ввиду, что не стоит использовать голый curl с простынёй настроек, когда в наличии имеется превосходный HTTP Client https://symfony.com/doc/current/http_client.html
    А для сериализации/десериализации из JSON в PHP и обратно, лучше всего использовать Serializer component https://symfony.com/doc/current/components/seriali...
    Ответ написан
    Комментировать
  • Почему PhpStorm показывает ошибку в строке с SQL запросом?

    Ну так измените ваш диалект SQL. Phpstorm просто не знает, каким именно SQL вы пользуетесь (PostgreSQL, MySQL, SQLite).

    На скрине во всплывашке прямо внизу слева есть синяя ссылка "Change dialect to"

    К тому же, по-моему, если в проекте подключить базу в окне с базами данных, то он должен сам подхватить диалект оттуда
    Ответ написан
    3 комментария
  • Почему HEVC не работает в Windows 10 и Ubuntu 24.04?

    ValdikSS
    @ValdikSS
    Лицензией на кодек владеет множество компаний, и каждая из них выдвигает собственные требования к лицензированию, в т.ч. с разделением по регионам.
    Из-за этого HEVC-видео воспроизводится только при определённых условиях. В браузерах оно обычно требует поддержки аппаратного ускорения (т.к. производитель железа уже заплатил за возможность поставки декодера в железе). Если аппаратного ускорения нет, в Windows можно купить декодер в магазине приложений за $0.99, с ним будет работать видео в Edge (не уверен про другие браузеры)

    https://caniuse.com/hevc
    Ответ написан
    Комментировать
  • Как встать картинку в мой HTML файл?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Картинка находится той же директории, что HTML страница.

    Если бы речь шла про сайт без бекэнда (т.е. просто набор html/css/js файликов, которые раздавал бы сервер), то такое решение могло бы сработать. В случае с Django (ну или любым другим фреймворком) сервер ни про html, ни про директорию, в которой он находится не знает. Его задача сводиться к:
    • передаче запроса фреймворку и возвращении получившегося ответа;
    • работе со статикой/медиафайлами;

    Поэтому картинку нужно поместить в папку со статикой и обращаться соответствующе. Т.Е. как минимум так-же как и с файлом стилей. А как максимум - придерживаться официальных (django/flask) механизмов подключения статических файлов.
    Ответ написан
    Комментировать
  • Какие короткие ссылки можно использовать на qna.habr.com?

    0xD34F
    @0xD34F
    полагаю это техническая ошибка и её нужно исправить

    Это сюда. Тема - "Ошибка в работе сайта".

    Или же пересмотреть правила

    Туда же. Только подавайте как гениальную идею.
    Ответ написан
    Комментировать
  • Как ускорить обработку POST запроса Python?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    8-10 секунд уходит, это не дело, как можно исправить?

    Переписать сервер, код которого Вы разумеется не предоставили.
    Ответ написан
    1 комментарий
  • Как добавить авторизацию в каждый последующий запрос коллекции Postman?

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

    66b377dacc9ab075006401.png
    Ответ написан
    Комментировать
  • Почему некоректно обновляется ширина в кастомном хуке?

    Aetae
    @Aetae
    Тлен
    Классика: ты этот width наверняка присваиваешь какому-то элементу. Соответственно, ширина этого элемента становится ровна width. Когда ты меняешь ориентацию - ты не убираешь width перед этим, а значит innerWidth окна не минимальное значение, а то, какое получилось с учётом элемента с width, который это окно распирает.
    Т.е. после каждого увеличения width, window.innerWidth не может быть меньше чем width.

    Такие задачи принято решать вёрсткой.
    Ответ написан
    2 комментария
  • Pritunl - почему Великий Русский фаервол блокирует openvpn?

    @Drno
    ПОтому что РКН блокирует опенВПН + WG.. и уже давненько. Потому что Вы ОБЯЗАНЫ смотреть только разрешенный кем надо контент, а не это вот всё...

    Варианты решения - если надо просто обходить незаконные ограничения от РКН - тогда -
    берем и настраиваем на сервере xray+vless+reallity, можно взять веб морду - 3x-ui на гитхабе

    Если принципиален опенВПН, тогда подключаться надо к серверу в РФ, дальше перенаправлять трафик на заграничный сервак. Сделать это можно просто включив NAT в ядре на сервере в РФ, и дальше с помощью iptables перенаправив нужный порт заграницу, где уже хостится сервер опенВПН. Пока такая схема работает, но чую ненадолго...

    Почему надо именно Pritunl использовать тоже не очень понятно... можно попробовать заменить на Amnezia, там есть обфускация изКаропки
    Ответ написан
    2 комментария
  • Для чего нужна отмена задач, кроме таймаутов и каналов?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Отмены задач используются, как ни странно, для отмены задач. А чтобы отменить задачу, это должно быть кому-нидуь нужно. Например, этим "кем-нибудь" часто бывает пользователь, которому результат задачи перестал быть нужным.

    В качестве примера: пользователь послал на сервер через веб-страницу запрос и ждет результата. Представим, что запрос - сложный, результат так сразу не получить, запрос выполняется, а пользователь ждет, потому что всё это понимает. Потом пользователю внезапно надоедает ждать и он посылает команду Отменить. Или - закрывает страницу. Так вот, по-хорошему, в этом случае надо отменить задачу, которая выполняет запрос, чтобы она не тратила впустую ресурсы сервера.

    А ещё отмена полезна для прерывания процессов потенциально бесконечных, типа смотреть, как горит огонь, как течет вода, как люди работают... :-)

    Таймауты тут не помогут в обоих случаях. В первом случае пользователь сам часто не знает, сколько он согласен ждать, а во втором - вообще нет никакого таймаута, ибо процесс бесконечен.
    Ответ написан
    Комментировать
  • Почему ajax выполняется по очереди?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вангую - на бэке PHP и сессии. Причём, открываются сессии в начале скрипта, а закрываются никогда, то есть по завершении скрипта.
    Тогда пока работает скрипт, файл сессии держится открытым и второй скрипт в той же сессии будет ждать освобождения файла. Файл сессии надо освобождать как можно раньше. session_start, считали нужные данные и сразу же session_write_close. Если надо что-то изменить в сессионных данных в процессе работы скрипта, то снова открыть сессию, записать изменения, закрыть.
    Ответ написан
    Комментировать
  • Как должен выглядеть идеальный контроллер?

    Если хотите идеал, то он должен соответствовать следующим пунктам:

    1. Сериализация/десериализация - это дорогостоящее мероприятие, поэтому оно должно делаться только в двух местах: прямо на входе и прямо на выходе. Вход - это ваш контроллер, Выход - это другой сервис, куда вы передаёте данные, или база данных (тут тоже происходит сериализация, либо явно, либо в ORM). Во всех остальных слоях инфообмен должен совершаться уже при помощи объектов PHP либо нативных типов. Это экономит ресурсы. При передаче между слоями приложения объектов вместо значений либо ассоциативных массивов вы сразу будете видеть очепятки, IDE вам прекрасно поможет при помощи автодополнения, объекты могут иметь какие-то полезные методы.

    2. Очень желательно в каждом из слоёв иметь собственный класс, отвечающий за данные. Например, нам в слой API приходит JSON-чик с новым пользователем.
    - Сериализуем JSON в DTO UserInAPI, сразу валидируем всё то, что мы можем валидировать без слоя бизнес-логики, и либо отдаём клиенту ошибку, либо передаём сам объект UserInAPI в следующий слой: слой бизнес-логики
    - В слое бизнес логики, получаем DTO UserInAPI на входе, преобразуем его в свой бизнес-объект UserInBusiness, валидируем его уже с точки зрения бизнеса, и либо возвращаем ошибку в слой API, либо совершаем над ним действия, и передаём объект класса UserInBusiness в слой работы с базой
    - В слое работы с базой данных получаем на входе объект UserInBusiness, преобразуем его уже в сущность базы данных UserInDB, валидируем всё на предмет корректности данных для базы, и либо возвращаем ошибку в бизнес, либо сохраняем сущность класса UserInDB в базу.

    Зачем такие сложности, вы спросите? А просто обратите внимание на то, что скорость изменения кода в разных слоях разная.
    - API вообще должен меняться раз в сто лет, чтобы не злить клиентов. Поэтому DTO класс UserInAPI будет стабильным и редко будет меняться.
    - Бизнес-логика меняется очень часто. У класса UserInBusiness постоянно будут добавляться поля и методы, тут жизнь будет кипеть.
    - Слой базы данных будет меняться реже, чем слой бизнеса, но чаще, чем слой API, потому что нам нужны будут новые поля в базе, новые таблицы и связанные таблицы.
    - И если мы один тип сущности протащим во все слои, то эта сущность обрастёт таким количеством различной хрени, что нам плохо станет, когда будем на неё смотреть. Либо она обрастёт кучей декораторов в каждом из слоёв. Поэтому лучше всё разделить.

    3. Теперь внимание, казалось бы, что мы слишком сильно связываем наши слои, и нижестоящие слои знают что-то о вышестоящих, а это неправильно. Ведь мы передаём объект UserInAPI в слой бизнеса, т.е. слой бизнеса должен уметь работать с этим объектом. И так же слой базы должен уметь работать с объектом бизнеса UserInBusiness. Как же быть? А очень просто. На входе слоёв использовать интерфейсы. Т.е. в слое бизнеса мы будем принимать не сам класс UserInAPI, а объект, имплементирующий интерфейс UserIncoming, который объявим в бизнес слое, и заставим слой API сделать так, чтобы его класс UserInAPI имплементировал этот интерфейс. Таким образом слой бизнеса ничего не будет знать о слое API, а будет ждать на входе данные по контракту, описанному в интерфейсе. Бизнесу плевать на конкретную реализацию, ему нужны только методы getUsername, getEmail из интерфейса. А какой класс ему их предоставит - пофигу. Таким образом мы практически полностью разделяем слои и в два счёта сможем поменять слой API, где у нас HTTP контроллеры, на слой RabbitMQ, SOAP, Grpc и т.д.
    Ответ написан
    6 комментариев
  • Почему на многих крупных сайтах не используются смысловые теги main,section, article, aside, header, footer?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Потому что современные веб-сайты основаны не на той концепции, которую продвигают теоретики-разработчики HTML.
    Вся эта смысловая разметка - она относится к коцепции документа как основного содержимого страниц. То есть - структурированного как текст содержимого, основное взаимодействие с которым - чтение и прочий просмотр. А в реальности большинсво крупных сайтов - это интерактивные приложения, у которых совершенно другая структура, в рамки "смысловой разметки" плохо впихуемая.

    Короче, смысловая разметка подобна Скрипачу: "А Скрипач не нужен, дорогой.".
    Ответ написан
    Комментировать
  • Можно ли чтобы PHP Storm напоминал про GIT обновления?

    delphinpro
    @delphinpro Куратор тега PhpStorm
    frontend developer
    Если вы просто откроете настройки шторма и в поиске (слева вверху) просто напишите три буквы "git", то легко найдете настройку "Explicitly check for incoming commits remote", которую следует выставить в Always

    Так же можете изменить "Check for conflicts with the server every"
    Ответ написан
    Комментировать