Size: a a a

2020 October 23

EG

Emmanuel Goldstein in Rust Beginners
Mikail Bagishov
Ну никто не мешает коллектору событий писать их асинхронно
Популярные коннекторы это делают?
источник

/

/bin/cat in Rust Beginners
Emmanuel Goldstein
Не имеет значения в контексте big O нотации, разные логарифмы отличаются друг от друга на константу.
Разница между log2 и log10 может быть большой
источник

EG

Emmanuel Goldstein in Rust Beginners
/bin/cat
Разница между log2 и log10 может быть большой
Разница между log2 и log10 — log(2, 10) или log(10, 2), в зависимости от того, в какую сторону ты это конвертируешь
источник

EG

Emmanuel Goldstein in Rust Beginners
Т. е. примерно в 3 раза
источник

EG

Emmanuel Goldstein in Rust Beginners
Но главное — что это на константу, поэтому для асимптотики незначимо
источник

MB

Mikail Bagishov in Rust Beginners
/bin/cat
Разница между log2 и log10 может быть большой
О-обозначения съедают сколь угодно большие константы
источник

/

/bin/cat in Rust Beginners
Т.е. оно почти O(1)?
источник

/

/bin/cat in Rust Beginners
Если в таблице 128 элементов
источник

MB

Mikail Bagishov in Rust Beginners
Если функция делает 2**(2**100) итераций, то это все еще O(1)
источник

EG

Emmanuel Goldstein in Rust Beginners
/bin/cat
Т.е. оно почти O(1)?
База логарифма не меняет O-нотацию, как и любая другая константа
источник
2020 October 24

MF

Mattew Fleuz in Rust Beginners
Насколько адекватно анврапать io::Error? Какова вероятность что что-то за исключением отсутствия файлов, прав и места вызовет ошибку и ее будет иметь смысл обрабатывать?
источник

AL

Arsenii Lyashenko in Rust Beginners
Emmanuel Goldstein
Лицензия: MIT/Apache 2.0 для всех, кроме json-env-logger, он под MIT
Язык: Rust для всех
Обнов.: 2020 для всех
Платф.: Любые разумные для всех
Комп.: rustc для всех
Документация: docs.rs/ для всех, у всех норм, у femme похуже
Зависимости: а тебе не пофиг? Мы не в плюсах
Логирование: синхронное для всех
Контроль памяти: нет для всех
Потокобезопасность: мы в расте
Crash handling: нет для всех
Стиль логирования: log::макросы!() для всех
Инициализация: настройки в коде + env для всех
Настройка фильтрации: аналогично
Поддержка юникода: да.
Доступ к логгеру: см. стиль логирования
Ротация файлов: нет ни у кого, кажется
Точность времени: хз
Производительность: не мерил
flexi_logger умеет в ротацию
источник

K

Kitsu in Rust Beginners
Mattew Fleuz
Насколько адекватно анврапать io::Error? Какова вероятность что что-то за исключением отсутствия файлов, прав и места вызовет ошибку и ее будет иметь смысл обрабатывать?
99.9%, анврапать норм только когда накидываешь код по быстрому или пишешь то, что отправится в помойку
источник

MB

Mikail Bagishov in Rust Beginners
Даже если внешняя среда контролируется на 100%, ошибки типа EMFILE все равно могут случиться
источник

F

Fortunato in Rust Beginners
А мне вот чуть другой вопрос интересен.
Вот есть у нас в приложении anyhow, пропагайт ошибок и всё такое. А на верхнем уровне, предположим, ошибки надо по-разному обрабатывать. И как их на верхнем уровне матчить? По строкам что ли? Или anyhow уже тогда не подходит?
источник

MB

Mikail Bagishov in Rust Beginners
Fortunato
А мне вот чуть другой вопрос интересен.
Вот есть у нас в приложении anyhow, пропагайт ошибок и всё такое. А на верхнем уровне, предположим, ошибки надо по-разному обрабатывать. И как их на верхнем уровне матчить? По строкам что ли? Или anyhow уже тогда не подходит?
Если по мелочи, то anyhow умеет даункаститься.
Если по-крупному, то может быть лучше и в приложении использовать енумы как минимум частично.
источник

MF

Mattew Fleuz in Rust Beginners
Kitsu
99.9%, анврапать норм только когда накидываешь код по быстрому или пишешь то, что отправится в помойку
а как ты обрабатываешь io error?
источник

K

Kitsu in Rust Beginners
Mattew Fleuz
а как ты обрабатываешь io error?
как нужно по задаче, так и обрабатываю ¯\_(ツ)_/¯
в большинстве случаев, обычно ошибка прокидывается наверх и там как-то хэндлится по смыслу
источник

MF

Mattew Fleuz in Rust Beginners
Kitsu
как нужно по задаче, так и обрабатываю ¯\_(ツ)_/¯
в большинстве случаев, обычно ошибка прокидывается наверх и там как-то хэндлится по смыслу
Можешь показать пример?
источник

b

in Rust Beginners
источник