Задать вопрос
  • Как восстановить коды utf8 из байтов?

    vabka
    @vabka Куратор тега Rust
    ctrl+c -> ctrl+v
    Чтобы преобразовать последовательность байтов последовательность code point-ов
    https://doc.rust-lang.org/src/core/str/validations...

    Чтобы преобразовать последовательность code point-ов в байты (вызывать в цикле)
    https://doc.rust-lang.org/src/core/char/methods.rs...

    Чтобы понять, почему всё происходит именно так - читай, что такое юникод и как он кодируется в utf8

    А теперь душнилово

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

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

    Но при попытке в онлайн конверторе utf8 -> string, непонятная строка получается:

    Онлайн конвертер ждёт байты, а не code point-ы.

    Вывод программы:
    [72, 25856, 7077888, 1811939328, 476741369856]

    И правильное тут только первое число (я тут уже пытаюсь угадать, что ты преобразуешь Hello в числа).
    Правильно будет [72, 101, 108, 108, 111]
    Делаем вывод, что преобразование строки в числа у тебя кривое.

    Ответ написан
    5 комментариев
  • Какой компилятор выбрать для указанной задачи?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    по крайней мере раньше, exe-шник требовал, чтобы на компьютере было установлено еще что-то (напр. та же студия такой же версии).

    установки каких-то дополнительных пакетов и сред на компьютер,
    Откуда вы это взяли? Чушь полнейшая. Максимум - несколько dll в придачу поставляется вместе с приложением, и всё (ну если вы, конечно, не программу управления полётами пишете).
    Совсем хорошо, если для этой среды не понадобится искать рабочий кряк.
    Ну уж это совсем ни в какие ворота не лезет. Какие еще кряки? Вы из 90-х что ли прилетели?

    На каком языке нравится, на таком и пишете. Где? Да где угодно. Универсальные среды - Visual Studio и Visual Studio Code. Ваш пользователь не будет о них знать и в помине, и ничего устанавливать ему не придётся
    Ответ написан
    3 комментария
  • Чем frontend разработчик занят на реальных проектах?

    @Giperoglif
    Настройка тестов, CI/CD, OLAP CUBE, оптимизация запросов к БД
    - это важно для фронтенда знать, что такое просто есть) явно вас не тем загружают.
    Ответ написан
    2 комментария
  • Какая скорость передачи отдельного пакета по сети?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Как скорость передачи отдельного пакета может быть 100 Гбит/, если этот пакет передается в потоке со скоростью 50 Гбит/с?

    Элементарно. Ограничение скорости отдельного потока в канале - оно внешнее по отношению к скорости передачи данных в канале. За счёт конкуренции, шейпинга, приостановки средствами управления потоком... то есть канал половину времени передаёт данные потока со скоростью 100Гбит, а вторую половину или передаёт что-то другое, или ничего не делает, только держит несущую. А сама скорость в канале постоянна и неизменна.
    Ответ написан
    Комментировать
  • Какая скорость передачи отдельного пакета по сети?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Паузы во времени между пакетами для передачи пакетов из других потоков или те же самые ограничения на пропускную способность. А так же между отдельными сигналами кодирующими биты во время передачи. Поток состоит из времени передачи пакетов и пауз между пакетами. Соответственно пропускная способность - это объём данных переданных за определённое время. Пакет и байты в нём передаются всегда с максимальной скоростью, которую может выдать оборудование, поэтому и получается, что для отдельного пакета доступна вся скорость канала. А вот уже потоки делят канал друг с другом.
    Ответ написан
    Комментировать
  • Почему i? Почему переменную, используемую в циклах, обычно называют именно i?

    @alexalexes
    index. А вообще, индексы элементов массива пришли из математики - i, j, k для первых трех измерений.
    Просто, первыми компухтеры оседлали математики, отсюда и традиция в циклах использовать эти буквы.
    Ответ написан
    2 комментария
  • Могут ли возникнуть проблемы при одновременном чтении и записи в разных потоках переменной?

    @rPman
    без использования синхронизации стандарт говорит что будет неопределенное состояние.

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

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

    Ну и конечно же, внезапно, может все работать как ожидается, без глюков.

    p.s. если size_t не укладывается в битность текущей архитектуры, например будет занимать два слова вместо одного, то и записывать в память будет неатамарным способом, и возможна ситуация, когда соседний поток считывает число из двух половинок, одну с одной итерации цикла, а другую с другой, получив что то типа 0000 9999 -> 0001 0000 число 0000 0000
    Ответ написан
    2 комментария
  • Rust как подключить внешний файл в модуле?

    fenrir1121
    @fenrir1121
    Начни с документации
    Я уже 3ч маучаюсь с этой ошибкой...
    А мог за 15 минут прочитать 7 главу растбука, где все разобрано.
    Ответ написан
    5 комментариев
  • Почему не нужно менять тип при использовании devServer в webpack.config?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Почему не нужно менять тип при использовании devServer в webpack.config?


    Потому что вот
    Ответ написан
    Комментировать
  • Cargo и npm код компилируется, но почему программа ui не запускается?

    fenrir1121
    @fenrir1121
    Начни с документации
    А где хоть строчка кода связанного с запуском приложения?
    Минимальный код запуска выглядит как-то так
    fn main() {
        tauri::Builder::default().run(tauri::generate_context!()).unwrap();
    }

    Раз идет работа с БД, стоит заглянуть в доку по State management и посмотреть как дергать бэк с фронта и фронт с бэка
    Ответ написан
    2 комментария
  • HeadHunter наоборот. Где найти?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Смысла в таких сервисах не особо много. И дело не только в прибыли самого сервиса. Дело в самом пользователе.

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

    Затем идут уже более опытные (мидлы). Но вот тут опять незадача - резюме подобных полно на "старомодных" сайтах. Портфолио есть и по нему скорее всего понятно, чего человек хочет и что умеет.

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

    Как по мне, подобный сайт подходит больше поиска групп по интересам. Но для этого можно использовать что угодно другое.
    Ответ написан
    2 комментария
  • HeadHunter наоборот. Где найти?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Тоже hh.ru, как и любой другой подобный сервис, только когда соискатель опытный. Выкладываешь резюме и к тебе по 2-3 рекрутёра в неделю сами ломятся с предложениями. Я например, последний раз сам искал вакансии в 2006-м.
    Ответ написан
    3 комментария
  • Простой счётчик без БД (допустим на основе txt файла)?

    @alexalexes
    Простое решение - ничего не добавлять, а просто правильно смотреть access_log, группируя ip адреса при просмотре и сортируя по частоте появления в логе.
    Ответ написан
    2 комментария
  • Раздвоение интернет кабеля провайдера. Можно ли разделить интернет кабель провайдера на два разных WI-FI роутера?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Протянуть кабель от второго дома до первого и разместить в нём второй роутер в режиме стандартного ретранслятора/свитча, а кабель в первом доме подключив кабель в первый, основной роутер.
    Кабель провайдера -> Роутер 1 в доме 2 -> Свой кабель между домами -> Роутер 2 в доме 1

    Протягивать кабель лучше всего под землёй в стандартной ПНД трубе - 30 метров всего ничего. Глубины достаточно на два-три штыка лопатой и желательно хоть немного песочком присыпать - как снизу так и сверху. Легко за день копается в неспешном темпе, если грунт не каменистый или не глина, конечно же.
    Ответ написан
    3 комментария
  • Не будет ли конфликтов между виндой и линуксом, если линукс поставить второй системой?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Если вам для учебных целей или просто пощупать - то ставьте VirtualBox, в него устанавливайте линукс и будет у вас прекрасная игровая площадка, которую не жалко сломать и от которой не зависит ваша основная система. А вот ставить линукс второй системой имеет смысл только если вам в линуксе нужен 3D и графика. А ещё лучше ставить только в случае, если вы знаете или хотите изучить механизмы работы загрузки нескольких разных ОС и их взаимодействие на собственном опыте. Или есть хороший знакомый, который это всё знает и умеет чинить. Проблема двух ОС в том, что у разных разработчиков разных ОС и разных дистрибутивов свои понятия о том, как должны взаимодействовать несколько ОС, плюс разные конфигурации оборудования - всё вместе это даёт такой дикий коктейль возможностей, что никогда не угадаешь, что может пойти не так. При установке ОС установщик может: проигнорировать существующий загрузчик и добавить его запись в свой загрузчик, добавить запись о новой ОС в существующий загрузчик, заменить его своим и добавить запись о старой ОС в свой список (или не добавить), не ставить вообще никакой загрузчик для целевой ОС, может просто удалить его, может полностью удалить существующую ОС и т.п. Плюс существует еще куча всяких конфигураций железа и ПО: BIOS, UEFI, MBR, GPT, SATA, NVME, разные виды разделов, установка ОС на один диск или на несколько, может быть больше двух разных ОС и т.п. и т.д. А ещё современные ОС периодически при обновлении лезут в загрузчики свои и как результат, при любом обновлении любой ОС всё может поломаться (увы, реальный факт из практики - что винда, что линукс уже не раз так делали).

    В целом рекомендация будет следующая:
    1. Отключить в винде быструю загрузку (FastBoot)
    2. Физически отключить диск с виндой от ПК
    3. Выбрать в БИОС загрузку с диска, куда будете ставить линукс
    4. Установить линукс
    5. Подключить диск с виндой обратно
    6. В загрузчик линукс добавить запись загрузчика винды
    7. Загрузиться в винду
    8. Добавить в загрузчик винды запись линукса
    9. В BIOS выбрать загрузочный диск основной ОС

    Т.о. у каждой ОС будет свой независимый загрузчик на своём диске и когда одна из ОС или диск сломается - у вас будет вторая независимая ОС, которая всё ещё будет работать.

    Альтернативный вариант - использовать как основной загрузчик что-то типа Clover. Но там тоже есть свои нюансы.
    Ответ написан
    4 комментария
  • Как интегрировать python код в tauri?

    fenrir1121
    @fenrir1121
    Начни с документации
    Есть два пути
    - Использовать pyo3
    - Использовать sidecar в tauri (пример с питоном)

    Оба способа на мой взгляд сложнее и труднее поддерживаются, чем переписать. Код для авторизации лежит прямо в examples в oauth2-rs
    Ответ написан
    Комментировать
  • Возвращение двух типов Rust?

    fenrir1121
    @fenrir1121
    Начни с документации
    В вашем случае достаточно возвращать Result<Client>. А вообще вернуть несколько значений можно при помощи кортежа.
    Ответ написан
    Комментировать
  • Неправильный тип данных Rust?

    vabka
    @vabka Куратор тега Rust
    Мне кажется, тебе достаточно явно написали в сообщении, что тебе пришёл Result, а не str, как того ждёт serde_json.
    Обработай ошибку, достань Message, и из него уже строку доставай.

    Я понимаю, возможно мой вопрос глупый. Но разве сложно рассказать как это делается или дать ссылку на соотвествующие материалы. Спасибо.

    Да пожалуйста) https://doc.rust-lang.org/book/ch09-02-recoverable...
    Ответ написан
  • На чём создать прогу для обработки больших данных?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Лучше для чего именно? В общем случае - на том, что знаете или что интересно было бы изучить.
    Ответ написан
    2 комментария