Задать вопрос
  • Как запретить вход на сайт по ip через nginx?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Слушать порт не для 0.0.0.0, а только для localhost
    Ответ написан
    Комментировать
  • Какую технологию выбрать для выдачи результата по выбранным параметрам?

    @Refguser
    Решения для бизнеса: от создания ИМ до...
    Вопрос в том, какую технологию, библиотеки или алгоритмы выбрать под эту задачу?

    У тебя описан простой фильтр. Реализовывается на любой "технологии".
    Ответ написан
    5 комментариев
  • Как можно оптимизировать SQL запрос?

    @Akina
    Сетевой и системный админ, SQL-программист.
    насколько оптимально такое решение?

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

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

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

    Хотя как по мне, следует отделить систему безопасности Постгресса от авторизации в приложении. Мнение по данному вопросу от Everything_is_bad в комментарии - это не сарказм, а весьма правильное замечание.
    Ответ написан
    Комментировать
  • Почему в .txt файле на Linux появляется "лишний" байт?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Откройте файл в шестнадцатеричном редакторе/вьюере, например wxHexEditor или GHex и посмотрите, что в нём лежит.
    Ответ написан
    Комментировать
  • Как скрыть элемент при изменении размеров экрана с помощью медиа запросов?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Если вы меняете картинку, то используйте специально для этого придуманный тег picture
    Ответ написан
    Комментировать
  • Как скрыть элемент при изменении размеров экрана с помощью медиа запросов?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    да все правильно
    https://codepen.io/delphinpro/pen/KKJqNoJ
    Ответ написан
    Комментировать
  • Как удалить склонированный репозиторий с локальной машины (linux)?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Рабочий каталог удаляйте таким-же способом.
    cd .. # разумеется надо выйти из него
    rm -r "название каталога"


    И избегайте статей с названием «Git за полчаса» — это развод.
    Вбивание непонятных команд в терминал это не обучение.
    Git простой, но лучше потратить неделю чтобы понять азы и потренироваться.
    Ответ написан
    Комментировать
  • Как реорганизовать структуру каталогов проекта с сохранением истории?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    В 2023 году рекомендованным методом является использование пакета filter-repo
    Задача решается буквально одной командой
    # Клонируем репо в соседний каталог
    git clone --no-local . "../repo2" # тут будет новый репозиторий
    # Перейдем в новый репо 
    cd ../repo2 
    # Оставим в проекте только содержимое подкаталога folder2, 
    # сделав его новым корнем проекта
    git filter-repo --subdirectory-filter "folder2/"
    Ответ написан
    Комментировать
  • Обязателен ли web-server (NGINX) для Actix Web?

    Eugene-Usachev
    @Eugene-Usachev
    Обязательным nginx не будет, но он рекомендован большинству веб-проектам. Очень многие проблемы на себя берёт nginx, и вообще странно брать высокопроизводительный инструмент (Actix Web) и не позаботься о балансировке нагрузки (или вы хотите сами писать балансировщик?).
    Ответ написан
    Комментировать
  • Обязателен ли web-server (NGINX) для Actix Web?

    bingo347
    @bingo347
    Crazy on performance...
    Кэширование, сжатие, https все же лучше на nginx переложить
    Ответ написан
    Комментировать
  • Нужно ли взять деньги за оценку больших ТЗ веб-разработчику?

    Нужно. Назови это чем-то типа "анализ и уточнение технического задания, и составление плана работ " назначь цену изходя из размера ТЗ и количества необходимых созвонов и доработок.

    Дай скидку, если в итоге решите сотрудничать.

    В случае возражений - проведи аналогию с реальным миром: замер окон, геодезические работы перед стройкой, итд.

    Если скажет что другие исполнители не берут деньги за это - напомни про скидку и скажи, что это тоже работа и оно позволяет точнее предсказать цену и, меньше затягивать сроки, и не делать лишних правок ближе к концу проекта.
    Ответ написан
    1 комментарий
  • Где допущены ошибки и как можно улучшить код?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Добавлю свои пять копеек.
    - публичные свойства $user и $name;
    - функция init вместо конструктора класса;
    - (холивар) использование синглтона Database вместо внедрения зависимости.
    Ответ написан
    Комментировать
  • Где допущены ошибки и как можно улучшить код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Штош...

    1) Элементарные ошибки на уровне запросов с инжекциями.
    2) Класс документ зачем-то получает объект юзера, нигде его не использует, тем не менее даже при использовании нарушает принцип инкапсуляции, объекты не должны по логике знать о других объектах.
    3) Класс юзер так же нарушает принципы инкапсуляции и единой ответственности, в частности зачем-то работает с документом, а не занимается обслуживанием сущности юзера, опять же, класс не должен знать о других сущностях, он должен реализовывать только логику собственной сущности.
    4) методы getTitle() и getContent(), кроме того что не указывают явно на необходимые поля, надеясь на неизменность сущности в бд, еще и накладывают множественную нагрузку, по сути на каждый чих выполняя один и тот же запрос, вместо 1 запроса инициализации данных и далее обращения к уже существующим атрибутам.
    5) Отсутствие неймспейсов и изоляция кода по классам так же отсутствует, соответственно про нормальный автолоад можно забыть.

    Вывод: говнокод в чистом виде.
    Ответ написан
    3 комментария
  • Как смотреть популярные видео-объяснения по CS новичку с нехваткой теории?

    например «как работает транзистор и их виды» и т.д.

    Это тема для урока физики в 10-11 классе.
    Нужно ли его конспектировать?

    Если тебе это помогает в усвоении материала. Например чтобы быстро вспомнить какой-то момент.
    Если не знаешь, помогает ли, то обязательно всё конспектируй - потом поймёшь, что ты хорошо усваиваешь, а что хуже, и тогда уже будешь конспектировать только то, что заранее не понятно.
    «академические» основы,

    Что это такое?

    Как новичку работать с «популярным» материалом в интересующих сферах?

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

    Eugene-Usachev
    @Eugene-Usachev
    Вы пытаетесь сравнивать не сравнимые вещи. Главное преимущество MobX в том, что он позволяет создать глобальный store. Глобальный store позволяет описать в себе множество различных состояний и обращаться к ним из любого компонента.

    В вашем случае нет нужды использовать MobX, вы это и сами заметили, однако давайте представим ситуацию, в которой этот ваш таймер нужен не в этом же компоненте, то есть создаётся в этом, но прокидывается дочерним компонентам. Это может привезти к увеличению кода в программе и может затруднить её чтение. В вашем случае выше, вы могли бы использовать export const myTimer и использовать его в любой компоненте.
    Ответ написан
    3 комментария
  • Почему не работает редирект с определенным User Agent?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    А почему вы решили, что строку с наимениванием агента нужно писать внутри круглых скобок, как аргумент navigator.userAgent?
    Ответ написан
    2 комментария
  • Если файл, содержащий пространство имён, сам подключает файл через 'include', какое в подключаемом файле будет пространство имён?

    @alexalexes
    Проверяйте на практике:
    echo '"', __NAMESPACE__, '"';
    https://www.php.net/manual/en/language.namespaces....
    Сами разберетесь быстрее и вопросов меньше будете задавать.
    Ответ написан
    Комментировать
  • Как удалить из смарфона всю телеметрию Гугла?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Дома с переломом ноги
    Никак :) Потому что никто тебе толком не скажет, где эта телеметрия прячется. Можно конечно получить рута и поудалять все пакеты, где упоминается гугл, но:
    - нет никакой гарантии, что это удалит всю телеметрию
    - нет ваще никакой гарантии, что после этого система продолжит работать, а не склеит зеленые боты после первой перезагрузки :)
    Ответ написан
    9 комментариев
  • Какие ограничения есть на ip адреса для SSH?

    SSH никаких особенных ограничений на ip-адреса не накладывает.
    127.0.0.1 - это вполне допустимый адрес, к которому можно подключиться.

    Ну давай по порядку:
    1.
    • 151.248.113.78 - вроде ок
    • 127.0.0.1 - точно мимо, тк локалхост
    • 194.85.283.12 - невалидный адрес. ipv4 - это четыре 8битных числа. 283 не входит в этот диапазон
    • 192.168.15.2 - подозрительно похож на адрес в локальной сети
    • 172.16.0.92 - аналогично
    • 185.76.145.0 - подозрительно похоже на адрес подсети, но пока карандашом
    • 10.55.84.56 - что-то подозреваем

    2. Идём смотреть, какие адреса точно являются локальными
    • 151.248.113.78 - не локальный
    • 192.168.15.2 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена
    • 172.16.0.92 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена
    • 185.76.145.0 - не локальный
    • 10.55.84.56 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена

    Остаются всего два адреса:
    151.248.113.78 и 185.76.145.0
    Причём второй может оказаться невалидным, если подсеть /24
    Ответ написан
    Комментировать
  • Нужно ли в head помещать все типы шрифтов для preload?

    Lynn
    @Lynn
    nginx, js, css
    Не нужно и не имеет никакого смысла. Даже скорее сделает хуже.

    Все браузеры которые понимают rel="preload" поддерживают woff2.
    Т.е. добавив в предзагрузку woff ты заставишь их скачать ненужный файл.
    А те браузеры которым нужен именно woff всё равно не поддерживают предзагрузку.
    Ответ написан
    Комментировать