Задать вопрос
  • В чём под Windows писать на Rust'е десктопные приложения?

    TrueBers
    @TrueBers
    Гуглю за еду
    rust-analyzer — это LSP server. Берёшь любой редактор, который может быть LSP клиентом, и пишешь.
    Под VScode единственное расширение — https://marketplace.visualstudio.com/items/?itemNa...
    Что ты нашёл — какой-то мусор.
    Ответ написан
    8 комментариев
  • В чём под Windows писать на Rust'е десктопные приложения?

    vabka
    @vabka Куратор тега Rust
    RustRover или vscode. (Лично я первым пользуюсь из-за того что к intellij привык)
    Про полноценную студию не скажу, тк ни разу не видел, чтобы кто-то в ней работал.

    Все три расширения - это биндинги к rust analyzer, так что концептуально оно не будет сильно лучше vscode.
    Остаётся вопрос только к дебаггеру в студии, но по идее в vscode точно такой же.
    Ответ написан
    Комментировать
  • Проблема с переключением на su пользователя?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    не понимаю какой пароль он требует.

    пароль пользователя builder. Если пароля нет -- можно его задать. Либо сначала стать рутом, после чего su в любого пользователя сработает без пароля.
    Ответ написан
    1 комментарий
  • Проблема с переключением на su пользователя?

    @Everything_is_bad
    Проблема погуглить и прочитать man su? нужно вводить пароль от builder3
    Домашнее задание: нагуглить разницу между su и sudo
    Ответ написан
    Комментировать
  • Нужно ли увеличить скорость между коммутатором и роутером для увеличения скорости между устройствами подключенный в коммутатор?

    @SunTechnik
    Если сервер и остальные устройства в одной подсети, то скорость линка до роутера влияет только на доступ в интернет.
    Если устройства в разных подсетях, то скорость линка до роутера будет узким местом.

    Ну и вопрос как именно настроена агрегация, какая политика балансировки установлена и на сервере и на коммутаторе.
    Ответ написан
    Комментировать
  • OOM killer убивает cron. Как быть?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Запускать через systemd-юнит, и уже этому юниту выставлять OOMScoreAdjust. Крон выкинуть и не вспоминать про него.
    Ответ написан
    Комментировать
  • Насколько часто по вебсокет могут не доходить меседжи до цели?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    На столько, на сколько часто этом может происходить в любом TCP соединении.
    https://ru.wikipedia.org/wiki/TCP
    Хотя протокол осуществляет проверку контрольной суммы по каждому сегменту, используемый алгоритм считается слабым [1]. В общем случае распределенным сетевым приложениям рекомендуется использовать дополнительные программные средства для гарантирования целостности передаваемой информации[2].

    Т.о. в вашем случае вам следует дополнительно реализовать свой механизм контроля доставки сообщений в рамках используемого вами протокола поверх WS или поверх самого протокола. Так же имеет смысл использовать пульс - периодический пинг клиента/сервера. Например, в случае плохой мобильной связи соединение может оборваться, но и клиент и сервер будут считать, что оно есть и пытаться отправить или ожидать данные. При этом, теоретически и согласно всем нормам уже на уровне ОС сокет должен закрыться через несколько секунд, но тут вступает в дело такой фактор как "опции создания сокета" и, особенно, "таймаут сокета" - разные разработчики могут использовать разные опции при запуске сервера/клиента и как результат в разных ОС это поведение может отличаться и сокет может зависнуть, а ОС его сама не закроет. Так что тут поможет только пульс - в WS пинг часть протокола.
    Ответ написан
    2 комментария
  • Длина payload в ethernet 802.3 кодируется всего двумя байтами. Как?

    @Zerg89
    1 байт 2^8=255
    -1_111 1111 1111 1111 - 16 бит, 2 байта
    2 байта (2^16)=2^15=-32 768..32 768 1 бит уходит под отрицательные значения
    Ps хотя это 2 байта integer
    А так как здесь отрицательные не нужны скорее всего просто 2^16=0..65 535
    Ответ написан
    Комментировать
  • Длина payload в ethernet 802.3 кодируется всего двумя байтами. Как?

    GavriKos
    @GavriKos
    когда максимальное значение которое мы можем указать двумя байтами это 255?

    255 это 1 байт.
    1111 1111 - 8 бит, 1 байт.
    А 2 байта поболе будут )
    Ответ написан
    3 комментария
  • Как расшифровать sh скрипт?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Интересно, с какого такого гардероба Вы решили, что это скрипт? Это исполняемый файл формата elf, отладлчная информация удалена. Убедиться в этом можно с помощью команд file и ldd
    Ответ написан
    Комментировать
  • Почему возникает ошибка в моем коде (баг f-строк)?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Используйте версию питона >=3.12.
    До Python 3.12 обратные косые черты не допускались внутри поля замены f-строки. f-strings

    Или, если это невозможно, то так:
    things = ['Thing one','Thing two','Thing three']
    nl = '\n'
    print(f"I have a list of things:\n{nl.join(things)}")
    Ответ написан
    Комментировать
  • В чем суть логической ошибки, продемонстрированной в старинном учебнике?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ЕСЛИ треугольник прямоугольный ТО квадрат гипотенузы равен сумме квадратов катетов
    Отсюда не следует, что
    ЕСЛИ квадрат гипотенузы равен сумме квадратов катетов ТО треугольник прямоугольный
    Правильное обратное утверждение:
    ЕСЛИ квадрат гипотенузы НЕ равен сумме квадратов катетов ТО треугольник НЕ прямоугольный

    Простейший аналог:
    ЕСЛИ животное это собака ТО у неё четыре лапы ⇏ ЕСЛИ у животного четыре лапы, ТО это собака
    ЕСЛИ животное это собака ТО у неё четыре лапы ⇒ ЕСЛИ у животного НЕ четыре лапы, ТО это НЕ собака

    Студент должен был доказать, что квадрат гипотенузы равен сумме квадратов катетов только в прямоугольных треугольниках и обосновать утверждение
    ЕСЛИ треугольник прямоугольный ТОГДА И ТОЛЬКО ТОГДА квадрат гипотенузы равен сумме квадратов катетов
    Ответ написан
    2 комментария
  • Что выбрать для хостинга сайта: 2 ядра до 5 ГГц или 6 ядер до 3.2 ГГц?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для конкретного сайта уже ответил Everything_is_bad: для текущей нагрузки оба сервера - это оверкилл, даже для DLE с их идиотcкими xfields в БД. Хватит и одного ядра с гигом памяти.

    Но если отвечать на сферический вопрос в вакууме "что выбрать для хостинга", то ответ освершенно очевиден: второй. Эти два сервера вообще несравнимы. И дело даже не в том, что веб сервер - это по определению параллельные запросы, а вся нагрузка приходится на БД (особенно в случае идиотской БД dle) - то есть нам количество ядер куда важнее их частоты, которая всё равно будет молотить впустую. Но там ещё и памяти больше на порядок. То есть даже если бы у второго сервера было всего два ядра, то в общем случае всё равно следовало бы выбрать его. Просто потому что основная нагрузка - это БД, а скорость БД - это память.
    Ответ написан
    3 комментария
  • Что выбрать для хостинга сайта: 2 ядра до 5 ГГц или 6 ядер до 3.2 ГГц?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Что выбрать для хостинга сайта: 2 ядра до 5 ГГц или 6 ядер до 3.2 ГГц?

    В зависимости от основного типа нагрузки:
    - IO bound - больше ядер.
    - CPU bound - больше частота.
    сайт работает на CMS DLE.

    Если это основная нагрузка, то больше ядер. А вот сколько конкретно ядер - можно вычислить в админке хостера (самый простой способ), если нагрузка на машину доходит до 100%, то пора докинуть ядер или оперативки.
    Текущая посещаемость — около 3000 уникальных пользователей в день.

    Правильнее считать не общую нагрузку, а максимальное количество запросов к серверу в секунду (max rps).
    Ответ написан
    Комментировать
  • Что выбрать для хостинга сайта: 2 ядра до 5 ГГц или 6 ядер до 3.2 ГГц?

    @RomanKu
    Поскольку, присутствует вариант конфигурации 2 ядра до 5 ГГц, то стоит рассмотреть данный вопрос в двух плоскостях: теоретической и практической. В контексте старый, но жирный и современный, но урезанный.

    В теоретической плоскости надо смотреть на характер нагрузки:
    1. Требуется ли специфичные вычисления, например AVX2 инструкции, шифрование и т.д., если да. то лучше взять современное железо, иначе же прироста в 5Ггц не будет много. В данном случае (CMS), скорее 2 вариант подойдет.
    2. Требуются ли сложные однопоточные вычисления? Например, какой-то сложный алгоритм обработки запроса, и т.д. если да, то одно производительное ядро будет лучше, чем много слабых, В данном случае (CMS), тоже, скорее 2 вариант
    3. Сколько параллельных запросов выполняется? Запрос включает в себя обработку веб сервером, бэкендом, СУБД и т.д. Если требуется обработать десятки-сотни запросов в секунду (RPS), то лучше больше слабых ядер, чем мало производительных т.к. переключение контекста тоже занимает определенное время, по моим тестам до количества ядер производительность растет практически линейно, дальше количество параллельных потоков начинает тормозить общую производительность, не сильно, но 10 потоков выполнения на 1 ядро съедает под 30% общей производительности. В вашем случае (3000 DAU) скорее всего, хватит трети 2 конфигурации, но под потенциальный рост количества пользователей лучше 2 вариант
    4. Количество обрабатываемых данных, если требуется активная работа с оперативной памятью, то 1 конфиг будет быстрее за счет более современного стандарта памяти, но 10ГБ RAM позволит хранить в памяти больший кусок базы данных, файлового кеша, и не обращаться к диску каждый раз, 2ГБ даже с быстрым процессором при сопоставимой нагрузке будет постоянно нехватать, свопиться, вычитывать данные из БД и чаще скидывать записи на диск + каждый запрос пользователя это RAM, на 3000 DAU не критично, а вот на 3000 пользователях онлайн 10ГБ оперативки будет давать стабильную производительность по БД, а вот 2ГБ начнет "колбасить" при большом количестве JOIN в запросах и большом количестве записей в таблицах. У меня были случаи, когда запросы к БД начинали обрабатываться 10 секунд вместо 50мс как раз таки за счет того, что СУБД начинала сбрасывать на диск промежуточные вычисления. На будущее, 2 вариант лучше

    Практическая составляющая:
    1. Буквально на днях вышла статья на пикабу на тему того, что хостер продает старые процессоры под видом новых (в системе виртуализации можно передать любые значения в гостевую машину), т.е. вместо 2 ядер по 5ГГц есть шанс получить 2 ядра по 3.2ГГц, да и 5ГГц в бусте тоже не факт, что можно получить если это не выделенный сервер.
    2. Для VPS в отличие от дедиков (выделенных серверов) часто есть лимит про процессору (т.к. его продают по нескольку раз - читаем теорию массового обслуживания), часто можно получить максимальную мощность в течение короткого времени (секунды - минуты), а если грузить процессор под 100% все время, то либо отключат виртуалку, либо снизят произвоодительность до 10-15-20% - если это не ваш личный сервер с известными вам характеристиками турбобуста процессора, то за несколько тысяч рублей в месяц ожидать, что ваши арендованные 2 ядра будут часами жарить на 5ГГЦ как минимум странно.

    По поводу нагрузки и масшабирования
    - На 1 пользователе отдавать страницу будет быстрее 1 вариант за счет теоретически более быстрого однопоточного режима (но, я бы сказал, что в браузере это будет условно 248 мс вместо 250-252мс, т.е. с учетом сетевых расходов, работы планировщика ОС, и т.д. конечные гигагерцы имеют не такую разницу), но учитывайте практическую часть ответа.
    - На десятках пользователей онлайн уже 2 вариант может быть немного быстрее (особенно за счет большего количества оперативной памяти)
    - На сотнях пользователей 2 вариант будет стабильней и быстрее

    Но сказать конкретно сейчас сложно т.к. надо проводить нагрузочное тестирование конкретной конфигурации железа и софта с конкретной версией ПО и конкретным набором данных, но, лично из моей практики - если это простой сайт, а не сложный IT проект с кучей серверов, то выбираем хостинг с возможностью легкой смены тарифа и начинаем с условных "2 ядря 2 гига", а потом по мере роста нагрузки добавляем ресурсы, нормальные хостинги позволяют вертикально масштабироваться (увеличением мощности, а не количества) по каждому из ресурсов (RAM, CPU, HDD) отдельно и при перезагрузке, отстающие имеют жеские тарифы (у нас не хватало места под файлы и приходилось покупать еще и CPU, т.к. каждый следующий тариф имел всего больше) и требуют не только перезагрузки, но и переноса конфигурации, соответственно даунтайм уже не минуты, а часы. Поэтому гибкие тарифы у современных хостеров рулят и масштабироваться легче. (я не говорю тут про поднятие кубера с балансировкой, автоскейлингом, грин-блю деплойментом и прочими фишками доступности 99.9999%)
    Ответ написан
    Комментировать
  • Что выбрать для хостинга сайта: 2 ядра до 5 ГГц или 6 ядер до 3.2 ГГц?

    @Everything_is_bad
    VDS-сервера
    берешь минимальный сервер, проверяешь нагрузку, без проблем апаешь на тариф выше, если текущий не вывозит. Повторять пока не достигнешь желаемый результат
    Ответ написан
    16 комментариев
  • Как сделать чтобы при закрытии VSCode не закрывался процесс в терминале?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если всё-же сильно хочется извратиться, то есть такая утилита screen.
    Запускаете её в терминале (у вас ведь linux?), а уже в ней свою задачу.
    При повторном входе в VSCode запускаете screen -r и оказываетесь в том же сеансе.
    Причём, запустить/перехватить сеанс screen можно из любого терминала на этой машине.
    Ответ написан
    Комментировать
  • Как сделать чтобы при закрытии VSCode не закрывался процесс в терминале?

    @Everything_is_bad
    Разделить разработку и эксплуатацию. Разработка в отдельном окружение с VSCode, эксплуатация в отдельном окружении без VSCode.
    Ответ написан
    Комментировать
  • Как определить свой уровень программирования?

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

    @Everything_is_bad
    твой уровень программирования "школьник 9го класса, изучающий полгода java"
    Ответ написан
    1 комментарий