Задать вопрос
  • Как организовать связь в китайский интернет из РФ, оставив там где-то маршрутизатор?

    ValdikSS
    @ValdikSS
    1. Доступны некоторые Tor-релеи и бриджи
    2. Работает Psiphon при особой настройке
    3. Можно без особых проблем купить VPS в Tencent Cloud


    Обратите внимание на https://github.com/ValdikSS/hoogmoon-testing
    Ответ написан
    Комментировать
  • Как повторить такую же анимацию?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Для начала можно посмотреть в их исходники. Беглый просмотр кода показывает основной план действий:

    • Создать плоскость с кастомным материалом. Вершинный шейдер стандартный нейтральный, который ничего необычного не делает, только сохраняет координаты UV, чтобы их во фрагментном использовать. Фрагментный будет содержать в себе всю логику. Это частенько так делается в 2D-эффектах.
    • Во фрагментный шейдер передать две текстуры. Одна обычная, для фона. Вторая - карта смещений для пикселей. Displacement map по-нашему. Берем пиксели из фона, смещаем по данным из карты смещений - получаем результат.
    • Нарисовать текстуру для фона. В их случае она делается из кадров видео, т.е. вот этот бултыхающийся градиент на фоне в их случае заранее заготовлен. И, к слову, видно, что он шакалится. Но с точки зрения производительности видео тут - это хорошая идея. Генерирование клякс-градиентов - требовательная в вычислительном плане задача.
    • Нарисовать displacement map по какой-то логике, завязанной на положение мыши. Тут большой простор для экспериментов. В их случае они используют отдельную сцену с кучей объектов, у которых меняются расположение и прозрачность в зависимости от положения мыши и просто со временем. Там много магических чисел. Вероятно все подбиралось наугад. Как это обычно и происходит. И потом они рендерят эту сцену в текстуру, которая передается в уже упомянутый шейдер. Можно было бы на 2D канвасе ее рисовать. Но с трехмерной сценой в таких задачах проще работать, хотя это поначалу кажется контринтуитивным.

    Все остальное в коде - обвязка, чтобы это организовать в рамках Three.js. В этом конкретном сценарии этот инструмент выглядит слегка избыточными. Можно было бы взять какую-нибудь альтернативную легковесную библиотеку, но по сути делать пришлось бы то же самое.

    От этого вполне можно оттолкнуться и сделать что-то подобное в рамках своих инструментов/требований/дизайнов.
    Ответ написан
    Комментировать
  • Three.js объект сзади не виден при повороте к нему лицом?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Без полноценого примера в песочнице это будет гадание на кофейной гуще, но что видно сейчас - для такой простой сцены у вас используется очень много вещей, которые потенциально могут что-то сделать c видимостью объектов. Обычно мы их используем для очень опасных оптимизаций, когда нужно все сделать нестандартным образом, где-то что-то сломать, но за счет этого что-то другое выиграть. Тут такие оптимизации явно преждевременны. Стоит пройтись по ним и убрать все. Если сцена будет работать, то потом можно будет вернуть назад по очереди, наблюдая за происходящим.

    Параметры depthWrite у материала и sortObjects у рендерера - первые кандидаты на то, чтобы их убрать. И определенно стоит вместо BoxGeometry нулевой толщины взять PlaneGeometry. Нулевая толщина тоже может давать разные сложности, с определением видимости в том числе.
    Ответ написан
    3 комментария
  • Можно ли узнать список почтовых ящиков в моем собственном домене?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В общем случае увидеть список адресов нельзя, иначе этим вовсю пользовались бы спамеры.
    Проверить наличие ящика можно подключившись по SMTP и начав отправку письма на конкретный адрес. Если будет получена ошибка, то адрес не существует.
    Если домен ваш и почтовый сервер управляется вами, то можно посмотреть, откуда берутся адреса (например, из AD) и дальше уже получить доступ к этому хранилищу в PowerShell.
    Ответ написан
    Комментировать
  • Как создать свой образ Linux для размноживания на других АРМ?

    Adamos
    @Adamos
    чтобы не делать такую процедуру вновь

    Достаточно записать эту "процедуру" командами в preseed и на следующей подготовленной машинке просто запускать установку системы, скормив ей этот preseed-файл. Через полчаса без всяких вопросов к администратору система будет готова, причем со свежими пакетами.
    Если это требуется проделывать чаще раза в месяц - тогда лучше все-таки освоить оркестрацию, тот же Ansible.
    Ответ написан
    Комментировать
  • Django не могу правильно настроить шаблон?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    1. Прочитать документацию Django;
    2. Понять, что такое {% static %}, что он делает и зачем это нужно;
    3. PROFIT!

    Ещё можно заглянуть в консоль браузера, посмотреть какие ошибки там отображаются и при обращении по каким адресам они возникли.
    Ответ написан
    4 комментария
  • Как спрятать файлы через gitignore, чтобы заходя в мой репозиторий не видели файлы проекта но могли открыть проект (сайт) по ссылке?

    vhood
    @vhood
    Не забывайте отмечать решения
    Поскольку файлы уже отслеживались и есть в git, недостаточно добавить их в .gitignore, помимо этого нужно удалить их из git

    git rm --cached index.html

    Если сайт хостится через GitHub Pages, то как раз index.html из репозитория и считывается для этого. Если удалить index.html, никакой сайт никто не увидит. Хотите сделать сайт с закрытым кодом - храните код в приватном репозитории и показывайте через платный хостинг.
    Ответ написан
    3 комментария
  • Почему формы в Django нельзя упростить?

    @Everything_is_bad
    Ну напиши свой тег form, в чём проблема?
    ЗЫ не всем формам нужна кнопка submit, не всем формам нужен csrf_token, надо прописывать свои значения method и action, а часто еще класс и другие атрибуты. Всё это выносить в параметры? В итоге получим какого-то монстра.
    Ответ написан
    4 комментария
  • Astra Linux - как избавиться от шума в HDD?

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

    нужно больше информации о том как именно разбили диски и какие файловые системы используются (и какой софт для записи видео), может там действительно что то страненое

    p.s. первое же видео со звуками типовых поломок hdd от гугла
    Ответ написан
    Комментировать
  • MacBook Air 13 M1 8/256, есть ли решение зависания терминала при подключении по SSH?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    У вас тут явно какие-то сетевые проблемы. Попробуйте подключиться кабелем. Так же рекомендую попробовать подключиться локально по SSH (к самому себе или к докеру/вируталке) и проверить, что это действительно сетевые проблемы, а не что-то с терминалом. И проверьте загруженность каналов вифи, а так же сам роутер. Так же я бы посмотрел на общую сетевую нагрузку - может там что-то где-то начинает качать?
    Ответ написан
    3 комментария
  • MacBook Air 13 M1 8/256, есть ли решение зависания терминала при подключении по SSH?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Сижу в iTerm на М2, ни разу ничего подобного не было. Похоже, действительно, на какую-то индивидуальную непереносимость сетевых устройств/канала.

    Правда, у меня стандартный шелл, без свистоперделок. Отключать последние пробовали?
    Ответ написан
    1 комментарий
  • С чем может быть связана высокая нагрузка на сервер Postgres?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Ну, так посмотрите статистику запросов, из неё станет понятно, что нагружает СУБД.

    Вот, например https://github.com/dataegret/pg-utils/blob/master/...
    Ответ написан
    6 комментариев
  • Psq восстановление бэкапа, что делаю не так?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Значит есть открытая сессия с этой БД. Закрой ее (например, pg_terminate_backend()) и повтори заново
    Ответ написан
    Комментировать
  • Macbook pro M1 2020 для разработки?

    xez
    @xez
    TL Junior Roo
    Подойдёт, если ОЗУ хотя бы 16гб будет (самый минимум).
    Лучше 32+
    Ответ написан
    1 комментарий
  • Как запитать sata ssd диск на плате промышленного компьютера ASEM BM3400?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    https://www.ozon.ru/product/karta-adapter-ssu-msat...
    А судя по описанию, с вашим компьютером в комплекте должны быть наборы для установки 2.5" SATA устройств.
    Ответ написан
    Комментировать
  • Как сделать что бы приложение не детектило Эмулятор GPS?

    GavriKos
    @GavriKos
    Как обеспечить защиту от детекта?

    Использовать аппаратные средства для фейкинга GPS.
    Ответ написан
    Комментировать
  • Бот дискорда падает в Rate limited, что делать?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Давайте по порядку. В документации дискорда очень четко прописаны лимиты для вебсокета и чуть менее четко для HTTP. Цитировать оттуда не буду, думаю там все понятно.

    В общем виде ошибка 429 говорит, что в один из двух лимитов вы не укладываетесь. Чтобы не происходила ошибка можно перед выполнением действий проверять блокировку через AutoShardedClient.is_ws_ratelimited, но это не лечение проблемы, а только обработка.
    Для лечения нужно перехватывать ошибку в глобальном обработчике и по стеку вызовов смотреть на каком действии она происходит. Если приложите стектрейс к запросу, можно будет по нему сказать конкретнее. Только убедитесь чтобы логи не обрезались как у вас выше. Может быть и так было бы понятно, но эндпоинт https://discord.com/api/v10/channels/1215300998588... весь не видно. Учитывайте что она может и в разных когах происходить об этом ниже.

    В целом дискорд не любит, когда боты делают что-либо без явных действий пользователя. Причем чем больше бот, тем строже, поскольку для них это больше нагрузки. К примеру в коде, который вы приложили есть обновление статуса каждые 10 секунд. Будем объективны, пользователям плевать что у бота в статусе, но эти запросы так же идут в общий рейт лимит. Я бы советовал поставить или большое значение (5-10 минут) или вообще избавиться от этой карусели.
    Аналогично пройдите по остальному коду, который не приложен и посмотрите есть ли периодические запросы без явных команд: например обновления каких-нибудь сообщений по таймерам. Если есть увеличивайте таймеры в 2 раза (повторять до исправления) или подумайте как предоставлять функционал без этого.
    Ответ написан
    2 комментария
  • Что такое кластерный индекс в mysql?

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

    Что такое обычный некластерный индекс? берём выражение индекса, считаем его значение для каждой записи, сортируем и пишем на диск. Получаем отдельную структуру, в которой выражение индекса сортировано. Когда потребуется искать заданное значение этого выражения, мы вместо просмотра от записи к записи сразу половинным делением быстренько найдём нужное значение, возьмём из него уникальный идентификатор записи, и обратимся за записью. Если в таблице 1000 записей, то для поиска заданного значения без индекса нам в среднем пришлось бы просмотреть 500 записей, а с индексом - всего 10.

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

    В MySQL (точнее, в используемом по умолчанию движке InnoDB) первичный индекс, во-первых, существует ВСЕГДА, во-вторых, определяется так (в статье, на которую дали ссылку, имеются неточности в пункте 2):
    1. Если первичный ключ задан явно, то его выражение является также и выражением кластерного индекса. Или иначе - первичный ключ и есть кластерный индекс.
    2. Если первичный ключ явно не задан, но в таблице имеется индекс, отвечающий всем следующим требованиям:
      • является уникальным
      • не является функциональным, в т.ч. не использует в выражении вычисляемые поля
      • не использует в выражении поля, которые определены как допускающие значение NULL

      то именно такой индекс используется в качестве первичного. А если таких индексов несколько, то используется первый по тексту запроса на создание таблицы
    3. Если не имеется ни того, ни другого - генерируется синтетический скрытый 6-байтовый номер записи, который и используется как первичный ключ. Следует отметить, что штатных способов доступа к этому значению не существует.


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

    Фактически - именно так.

    Создаётся ли отдельная таблица или просто упорядочивается хранение существующих данных?

    Не создаётся. Но при изменении первичного индекса таблица полностью пересоздаётся с новым физическим порядком записей.

    Если данные упорядочиваются этим индексом, допустим по ID, то почему при select без сортировки данные могут возвращаться в произвольном порядке, а не отсортированные по ID по-умолчанию?

    Если не задан явно ORDER BY, сервер имеет право вернуть записи в любом порядке, как ему удобнее. В большинстве случаев, но не всегда, он будет возвращать записи в порядке чтения с диска...

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

    ===

    PS. Кстати, правило выбора индекса, который будет использоваться в качестве кластерного, имеет неприятный побочный эффект. Если у некоторых полей, входящих в какие-то индексы, изменяется свойство NULLability, то это может привести к изменению того, какой из имеющихся индексов станет использоваться в качестве первичного по пункту 2. В результате мы получим невозможность использования INSTANT / INPLACE методов, и будет использован длинный COPY. Впрочем, ситуация такая крайне редка.
    Ответ написан
    2 комментария
  • Российское (реестровое) ПО для мониторинга инфраструктуры?

    @d-stream
    Готовые решения - не подаю, но...
    А взять и в реестр заглянуть - мешают религиозные убеждения?
    Я там увидел по 02.08 - 1350 записей
    Но мне это не нужно и подробнее я копать не буду)
    Ответ написан
    1 комментарий
  • Как программировать на машинных кодах?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    контрольные вопросы (вам, отвечать сюда не обязательно, важнее самому себе):
    - сколько ассемблеров вы освоили?
    - на сколько свободно?
    - что такое макроассемблер?
    - что такое язык "B"?
    - как зародился язык "C"?
    - и что нового вы хотите изобрести?
    - для какого процессора?
    - для какого потребителя?
    ...
    PS... вы в курсе, что далеко не один язык позволяет вставки ассемблера?... и еще больше языков имеют специальные библиотеки для использования векторных команд, не говоря уже о библиотеках GPU
    Ответ написан
    Комментировать