Задать вопрос
  • Как создать комнату в браузерной игре?

    shurshur
    @shurshur
    По нажатию на кнопку делать запрос на сервер типа /room/new, тот в ответ возвращает набор символов (id комнаты) и куда-то его записывает, например, в базу данных. В следующих запросах сервер знает этот id.

    В чём собственно проблема? Это такой тривиальный вопрос, что если уже с этим сложности, то разработка будет долгой и непростой...
  • Как TLS соединенить с ГОСТ?

    shurshur
    @shurshur
    Самое простое решение - поставить по дороге прокси, который сделает всё что надо. Например, форк stunnel от КриптоПро.
    Написано
  • Возможно ли собрать ПК на микроконтроллере/микропроцессоре?

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

    Вот первая попавшаяся ссылка на тему: https://www.arrow.com/en/research-and-events/artic...
    Написано
  • Как восстановить ввод в Linux?

    shurshur
    @shurshur
    Коля Печенюшкин, я с 16.04 до 22.04 живу на одной инсталляции. В целом было норм. Основную беду я сам себе создал - поставил более новый python из ppa и потом огрёб невозможность легко накатить апдейт, чтобы он не снёс полсистемы из-за питонячих зависимостей. Пришлось попрыгать с бубном над apt preferences, справился, обновился успешно.
    Написано
  • Возможно ли собрать ПК на микроконтроллере/микропроцессоре?

    shurshur
    @shurshur
    В общем-то - нет!

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

    Реально, возьми малинку и поиграйся с подключением к ней каких-нибудь датчиков по типичным готовым урокам. Потом возьми ардуино и поиграйся с ней. Потом подключи ардуино к малинке и попробуй всё это вместе заставить работать. Начнёшь гораздо лучше понимать, как работает вся эта микроэлектроника.
    Написано
  • Как отправить telegram stars от бота?

    shurshur
    @shurshur
    inputStorePaymentStarsGift это метод клиентского API, не Bot API.
    Написано
  • Возможно ли использовать ИИ для сравнения текста?

    shurshur
    @shurshur
    Риск того, что алгоритм посчитает Foo BAR-123v1 и Foo BAR-123v1a одинаковыми огромен! Поэтому автоматизировать только очень аккуратно! Заодно осторожнее с описаниями. Например, пусть v1 имеет разъём USB 3.0, а v1a - USB 3.2. В описании при этом может быть написано USB3, USBv3 и др. вариации, без указания минорной версии, и это может легко обмануть алгоритм, заставив его перепутать устройства. Про человеческие ошибки там я уже не говорю...
    Написано
  • Как исправить ошибку "requires ext-zip * -> it is missing from your system. Install or enable PHP's zip extension."?

    shurshur
    @shurshur
    Hfnas, каждый RUN создаёт новый слой в системе образа. Например, если сделать так:

    RUN apt install awesome-app
    RUN wget http://example.com/download/another.zip
    RUN unzip another.zip
    RUN ./another/install
    RUN rm -rf another another.zip /var/cache/apt/archives/*


    То будет создано 5 слоёв, в которых будут все пакеты, установленные apt, скачанный архив, распакованный архив... Ведь слоёная файловая система так и работает: поверх одного слоя создаётся следующий, в котором только изменившиеся файлы, в данном случае удалённые файлы из предыдущего слоя никуда не денутся.

    Чтобы этого избежать, следует скачивание/установку/очистку объединять в один RUN, чтобы получался слой, в котором добавлены новые файлы и удалены промежуточные:

    RUN apt install awesome-app \
     && rm -rf another another.zip /var/cache/apt/archives/*
    RUN wget http://example.com/download/another.zip \
     && unzip another.zip \
     && ./another/install


    Или даже в один RUN:

    RUN apt install awesome-app \
     && rm -rf another another.zip /var/cache/apt/archives/* \
     && wget http://example.com/download/another.zip \
     && unzip another.zip \
     && ./another/install


    Ещё одна методика полезна, когда в процессе сборки образа ставятся разные дополнительные инструменты (компиляторы, сборщики, минимизаторы итд), которые в конечном итоге не нужны. Это может быть удобнее собирать с помощью multi-stage build: сначала собирается образ, в который ставится всё необходимое и делается сборка, потом создаётся новый образ, в который копируется только результат без промежуточных файлов и инструментария (например, только упакованная js-сборка и разная заранее подготовленная статика). Искать инструкции и примеры по словам "docker multi-stage build".
    Написано
  • Не понимаю, почему происходит потеря пакетов. Как решить?

    shurshur
    @shurshur
    cashcashh, сяоми очень неровные (может попасться что угодно) плюс у многих моделей много проблем с перепрошивкой на OpenWrt, а это признак того, что в случае проблем с функционалом или глюками софта его даже не перепрошить.
    Написано
  • Как в EF Core (Npgsql) указать владельца базы данных и ее таблиц?

    shurshur
    @shurshur
    ALTER TABLE таблица OWNER TO новый_владелец;

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

    По доке кажется, что ALTER TABLE ALL IN TABLESPACE public можно сделать только с операцией SET TABLESPACE, а жаль, я бы не против OWNER TO тоже так делать.

    До кучи, можно при создании базы указать владельца:

    CREATE DATABASE база OWNER владелец;

    А потом законнектиться владельцем и уже им всё создавать.

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

    ALTER ROLE имя_пользователя CREATEDB;
    Написано
  • Что случилось с Ubuntu Server?

    shurshur
    @shurshur
    shupike, вплне может быть. Когда этот новый инсталлятор вместо классического debian-installer сделали, я порядком помучился, особенно с сетевой установкой, при которой там полный iso качался с удалённого сервера ДВА РАЗА в оперативную память. А это ведь dvd, значит, памяти нужно было приличное количество...
    Написано
  • Комфортно ли будет использовать linux через портативный m2?

    shurshur
    @shurshur
    Технически - да, будет работать, если usb3 и нет высоких требований по скорости доступа к диску. Ну там в браузере серфиться и файлики редактировать вообще не вопрос. Но оптимальнее иметь не переносной диск, а переносной компьютер.
    Написано
  • Может ли юзер нести ответственность за просматриваемый контент?

    shurshur
    @shurshur
    Как правило нет (но за все страны и все ситуации ручаться не стоит), потому что пользователь не может знать содержание видео до его просмотра. Плюс сейчас auto play видео часто бывает, из-за чего пользователь может просмотреть видео, даже не успев прочитать его название.
    Написано
  • Каким образом запустить и провести калькуляции с файлом excel, не открывая excel?

    shurshur
    @shurshur
    Я поддержку предыдущего оратора.

    Формулы в Excel это всегда лютый ад, в котором хрен разберёшься.

    Алгоритм надо описать текстом или вразумительным кодом с комментариями. Чтобы будущие поколения могли его переписать на любой удобный язык, а не страдали вот этим антипаттерном во веки веков.
    Написано
  • Как Telegram бот может отправить ссылку для отправки SMS?

    shurshur
    @shurshur
    Давать ссылку на http, который редиректит на sms?
    Написано
  • Как сделать Slice Database более 20TB?

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

    Но скорее всего автора волнует, что 20 Тб скопировать это такое себе удовольствие.
    Написано
  • Как в вашей компании обеспечивается установка пакетов и обслуживание репозиториев?

    shurshur
    @shurshur
    rPman, для pip у нас даже вроде делали. Но я не пользовался, штучные пакеты через wheel таскал.

    Образа просто в локальный registry переливал, в том числе и не с докерхаба.

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

    shurshur
    @shurshur
    rPman, если фильтровать по архитектурам и релизам - сильно уменьшится.

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

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

    Когда нужно специфический софт определённой версии, его можно собрать отдельно, в виде пакетов, AppImage итд итп. В конце концов, контейнеры...
    Написано