Bitωise
Bitωise
  • 13
  • 59 497
Как работает UTF-8 и зачем нужен Unicode
В этом ролике я расскажу про стандарт ASCII, стандарт UNICODE, а также об их реализации - UTF-8, UTF-32 в языках C и Rust.
----------
Поддержать: boosty.to/bitwiseuwu
Телеграм канал (+ чат): t.me/bitwiseuwu
Мой гитхаб: github.com/IoaNNUwU
----------
Это видео может быть интересно любому, кто интересуется системными языками программирования, любит изучать низкоуровневые концепции и работу железа - процессора, оперативной памяти, видеокарты. Если вы знаете или хотите изучить языки C++, Go, Zig - Rust станет отличным дополнением, а возможно даже сможет сместить ваш интерес в свою сторону за счёт таких преимуществ, как безопасность памяти, потокобезопасность, современный API. Rust так же станет прекрасным языком, если вы хотите лишь немного прикоснуться к системному программированию, изучить работу железа, но при этом не оставлять высокоуровневые, простые в использовании языки, такие как Python, Java, JavaScript, Kotlin, Lua.
На этом канале вы найдёте множество видео как на тему системного программирования, так и более общих концепций программирования, таких как ООП, системный дизайн и множество других тем, которые стоят того, чтобы их обсудить.
มุมมอง: 4 481

วีดีโอ

Замыкания и функциональные трейты в Rust
มุมมอง 2.5K2 หลายเดือนก่อน
В этом ролике я расскажу про функциональные указатели, замыкания и их трейты в Rust: - FnOnce - FnMut - Fn Расскажу про их применение, производительность и какой трейт стоит выбрать Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быть интересно любому, кто интересуется системными языками программирования, любит изучать низк...
Лайфтаймы в структурах Rust
มุมมอง 1.9K2 หลายเดือนก่อน
В этом ролике мы продолжим разговор про лайфтаймы, рассмотрим правила работы с ними в структурах. Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быть интересно любому, кто интересуется системными языками программирования, любит изучать низкоуровневые концепции и работу железа - процессора, оперативной памяти, видеокарты. Е...
Дженерики и Трейты в Rust
มุมมอง 2.8K3 หลายเดือนก่อน
В этом ролике я расскажу про дженерики и трейты в языке Rust. В языке Rust существует 2 вида дженериков, ассоциированные типы считаются сложными, но в этом ролике я расскажу, почему они должны быть вам более привычными. Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быть интересно любому, кто интересуется системными языкам...
Крейты и модули в Rust
มุมมอง 3.8K4 หลายเดือนก่อน
В этом ролике я расскажу про крейты и модули. Система крейтов нужна для удобного менеджмента зависимостей, ведь любой проект в Rust является крейтом. Система модулей нужна, чтобы разделить крейт на отдельные логические части, которые можно располагать как в одном и том же файле, так и в других. Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNU...
Все Умные указатели в Rust
มุมมอง 4.8K5 หลายเดือนก่อน
В этом ролике я расскажу про умные указатели и сопутствующие им структуры, такие как: - Box - Arc, Rc - Mutex, RwLock, RefCell, Cell - UnsafeCell Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быть интересно любому, кто интересуется системными языками программирования, любит изучать низкоуровневые концепции и работу железа...
Rust без Наследования
มุมมอง 7K6 หลายเดือนก่อน
В этом видео я расскажу о реализации наследования в Rust, почему нам приходится думать о нём и как без сложностей перевести свой код с объектно-ориентированных языков на Rust. Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быть интересно любому, кто интересуется системными языками программирования, любит изучать низкоуровн...
Полиморфизм не снижает производительность
มุมมอง 5K6 หลายเดือนก่อน
В этом ролике я расскажу о полиморфизме, его видах и способах реализации как в системных, так и объектно-ориентированных языках. По запросам зрителей я всё же сделал бенчмарки. Результат: реализация через enum быстрее в 2, а иногда и в 6 раз: github.com/IoaNNUwU/poly-bench Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быт...
Философия Unsafe Rust
มุมมอง 11K7 หลายเดือนก่อน
В этом ролике я расскажу о философии unsafe & safe Rust, для чего применяется ключевое слово unsafe. Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быть интересно любому, кто интересуется системными языками программирования, любит изучать низкоуровневые концепции и работу железа - процессора, оперативной памяти, видеокарты...
Экстремальный Rust
มุมมอง 6K7 หลายเดือนก่อน
В этом видео я напишу свой Аллокатор, который работает с любым массивом байт, который пользователь предоставил по уникальной ссылке. Так же я покажу один из способов применить этот аллокатор в ходе решения задачи с сайта leetcode. В этом видео я так же немного затрону работу оперативной памяти, адреса, размеры и выравнивание (alignment) структур. Видео так же будет интересно любому, кто интерес...
Времена жизни в Rust
มุมมอง 5K9 หลายเดือนก่อน
В этом видео мы поговорим о временах жизни в языке программирования Rust. На эту тему в интернете существует огромное количество материала, но каждый понимает её по-своему - в основном неправильно. Я постарался собрать и передать максимально простым способом основную суть времён жизни, или лайфтаймов в Rust. Для этого хорошо подходит визуализация: - синий прямоугольник обозначает время жизни ст...
Начала итераторов в Rust
มุมมอง 3.3K9 หลายเดือนก่อน
В этом видео мы поговорим об основах итераторов в языке программирования Rust: Зачем нужны итераторы, какие есть виды итераторов (отличия методов iter, iter_mut и into_iter в API вектора), как их правильно использовать. Поддержать: boosty.to/bitwiseuwu Телеграм канал ( чат): t.me/bitwiseuwu Мой гитхаб: github.com/IoaNNUwU Это видео может быть интересно любому, кто интересуется системными языкам...

ความคิดเห็น

  • @hightstar9292
    @hightstar9292 15 วันที่ผ่านมา

    Когда лучше использовать Mutex, а когда каналы? Вроде каналы могут тоже самое,за исключением того,что нам не нужно следить за открытием и закрытие mutex'а.

  • @koshchey42
    @koshchey42 15 วันที่ผ่านมา

    Про наследование trait было сказано? (я не всё смотрел)

  • @koshchey42
    @koshchey42 15 วันที่ผ่านมา

    2:13 В данном случае нет необходимости использовать вызов виртуальной функции, поэтому ускорения не будет. Эта особенность Go нужна для надёжности, а не для ускорения.

  • @koshchey42
    @koshchey42 15 วันที่ผ่านมา

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

  • @hightstar9292
    @hightstar9292 18 วันที่ผ่านมา

    Привет, будет ли видео про Рабочие пространства в Rust? (Workspace) не совсем понял её при чтении растбука. Поэтому хотелось бы видеть её в примерах на твоём канале

  • @fess932
    @fess932 23 วันที่ผ่านมา

    от таких видосов чото аж на расте хочется писать

  • @ВладимирЛушник
    @ВладимирЛушник หลายเดือนก่อน

    предлагаю глобальное решение проблемы - оставить 1 язык (в идеале русский) выкинуть нах всякую чушь типа эмодзи и тогда все символы уместятся в 1 байт.

  • @dead-maxim
    @dead-maxim หลายเดือนก่อน

    Умный мужик, счас таких мало. Надо подписаться)

  • @БорисАлиханов-у4з
    @БорисАлиханов-у4з หลายเดือนก่อน

    Вот из-за таких судаков проблема с сортировкой

  • @NikitaFomin-tw1it
    @NikitaFomin-tw1it หลายเดือนก่อน

    Отличные видео! Жду каждый новый ролик) А ещё жду какой-нибудь патреон или бусти

  • @arekusei9580
    @arekusei9580 หลายเดือนก่อน

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

  • @miRorshik
    @miRorshik หลายเดือนก่อน

    А точно компилятор память очищает?

  • @ddhxuy872
    @ddhxuy872 หลายเดือนก่อน

    Помню мне в универе нужно было реализовать хеш функцию sha-256, для меня было не приятным сюрпризом, что в utf-8 переменная длина символа, в деталях не помню как я проблему решил, но помню что пришлось запариться не слабо

  • @taloonys9418
    @taloonys9418 หลายเดือนก่อน

    Очевидно, глупый вопрос... 1:50, в раст совсем нет копирования? В плане передача по значению в плюсах означает копирование, но в видео дальше говорилось, что везде владение да заимствование. Т.е. передача аргумента в функцию по значению означает передачу владения и... расширение lifetime'а? Или всё же оговорка и копирование есть, а объект не проживёт дольше скоупа мейна?

    • @severgun
      @severgun หลายเดือนก่อน

      Я раст не знаю, но вроде там тип должен реализовывать трейт Clone и передача в функцию должна явно делать вызов clone print_var(myVar.clone()) клонирование может быть "дорогим" если это структура данных на тысячи миллионы элементов

  • @ТиминАлексей-с2т
    @ТиминАлексей-с2т หลายเดือนก่อน

    Качество объяснения на высоте

  • @allayorquvondiqov5778
    @allayorquvondiqov5778 หลายเดือนก่อน

    Спасибо огромный. Посмотрыл все видео И чётко понял. Очень жду видео по async/await. Не понятно как работает они

  • @ЕвгенийКрасилов-о9о
    @ЕвгенийКрасилов-о9о หลายเดือนก่อน

    Эээх... Было время когда строчки для меня были всего-то последовательностью символов😢 Желаю всем задач без строк, ну или хотя бы без разных кодировок.

  • @cherimolah9493
    @cherimolah9493 หลายเดือนก่อน

    Круто, я думал они отличаются просто количеством символов, которые могут закодировать. Кстати, а что на счёт UTF-16?

  • @user-pq5nt1lt7i
    @user-pq5nt1lt7i หลายเดือนก่อน

    Узнал про ООП больше чем за месяц изучения. Спасибо ❤

  • @АндрейШевелёв-г2щ
    @АндрейШевелёв-г2щ หลายเดือนก่อน

    Я сам не на расте, а на плюсах, но видосы у тебя оч интересные и красивые. Продолжай в том же духе!

  • @MannawardKing
    @MannawardKing หลายเดือนก่อน

    Получится двухбайтных символов всего 2048, трехбайтных 65536 и четырехбайтных чуть больше 2 миллионов?

    • @dimbo4ka213
      @dimbo4ka213 หลายเดือนก่อน

      миллиардов

    • @dimbo4ka213
      @dimbo4ka213 หลายเดือนก่อน

      2^32 ~ 2e9

    • @MannawardKing
      @MannawardKing หลายเดือนก่อน

      @@dimbo4ka213 там минимум 2 байта-маркера в начале каждого символа и ровно два в каждом следующем байте этого символа.

    • @MannawardKing
      @MannawardKing หลายเดือนก่อน

      @@dimbo4ka213 2^7 + 2^11 + 2^16 + 2^21 Там управляющие байты

  • @mounirboussetta
    @mounirboussetta หลายเดือนก่อน

    I don't understand Russian but I think you are a good teacher. I understand it even though.

  • @German_1984
    @German_1984 หลายเดือนก่อน

    Странно, что стороной обойдён UTF-16, на который завязаны WinAPI. Ведь именно из-за UTF-16 в Unicode всего миллион, а не 4 миллиарда кодовых точек.

  • @GirlAteDeath
    @GirlAteDeath หลายเดือนก่อน

    а utf-16 ?

  • @zoodogood
    @zoodogood หลายเดือนก่อน

    Большое спасибо

  • @data-center-project
    @data-center-project หลายเดือนก่อน

    Хорошее видео, информативное! Очень хотелось бы, увидеть всё об ECS, с примерами, или реализацию настоящего сервера, актуальная тема на Rust... Спасибо!

  • @vasiliigulevich9202
    @vasiliigulevich9202 หลายเดือนก่อน

    Спасибо! Я не знал что UTF-32 - фиксированной ширины

  • @ololololo-l5z
    @ololololo-l5z หลายเดือนก่อน

    3:48 ну так это зависит от того как ты строки в своем коде реализуеш. ты можеш свою реализацию строк сделать без этой херни. ибо strlen оч медленый. можно передавать длину строки отдельным аргументом вместе с указателем на строку

    • @fnhm_
      @fnhm_ หลายเดือนก่อน

      ььььььь

    • @German_1984
      @German_1984 หลายเดือนก่อน

      В том же Pascal строка содержит свою длину в первой ячейке массива, и strlen работает за константное время. В Delphi чуть сложнее, что тоже длина строки известна заранее

    • @ВладимирЛушник
      @ВладимирЛушник หลายเดือนก่อน

      @@German_1984 только в паскале фиксированная длина строки.

  • @nanoqsh
    @nanoqsh หลายเดือนก่อน

    База

  • @chasubavil
    @chasubavil หลายเดือนก่อน

    Не стоило тащить эмодзи и прочий экзотический хлам в Юникод. Они же до сих пор выпускают новые версии и добавляют приколюшечки. Уложились бы в 2 байта, UTF-16 хватило бы всем. По поводу проблемы размера - при передаче обычно применяется сжатие, нужно тестировать разные его варианты.

    • @mk72v2oq
      @mk72v2oq หลายเดือนก่อน

      Все компьютерные и сетевые стандарты придуманы в США. Для них обратная совместимость UTF-8 с ASCII является массивным выигрышем. А проблемы индейцев, не использующих латинский алфавит, шерифа как водится не волнуют. Хотя UTF-16 и UTF-32 тоже много где применяются. В частности в языках программирования длины символов как правило фиксированные. Раст в этом плане выделяется на фоне. Но зато нативные UTF-8 строки дают возможность читать/писать файлы и отправлять/принимать по сети строки без перекодирования, что может давать заметный выигрыш в производительности.

    • @vasiliigulevich9202
      @vasiliigulevich9202 หลายเดือนก่อน

      Китайский 100000 иероглифов. Не помещается.

    • @F3raxd
      @F3raxd หลายเดือนก่อน

      @@vasiliigulevich9202 40 000-80 000

    • @German_1984
      @German_1984 หลายเดือนก่อน

      В UTF-16 один символ может занимать как 2, так и 4 байта. Вы пишите про UCS2

    • @ВладимирЛушник
      @ВладимирЛушник หลายเดือนก่อน

      Поинтересуйся сколько языков и сколько в каждом букв ... ну или чтоб проще - поинтересуйся сколько иероглифов в китайском, а он такой не один.

  • @sovenok-hacker
    @sovenok-hacker หลายเดือนก่อน

    Это полная шиза ...

    • @ukrainetoday960
      @ukrainetoday960 หลายเดือนก่อน

      В чем причина подрыва?

    • @trspirit442
      @trspirit442 หลายเดือนก่อน

      это жиза

  • @ФилиппБондарев
    @ФилиппБондарев หลายเดือนก่อน

    Мне бы это видео лет 7 назад, когда я пытался во всём этом разобраться во втором Пайтоне...

  • @dmitriykret8938
    @dmitriykret8938 หลายเดือนก่อน

    👍 👍 👍

  • @flatmapper
    @flatmapper หลายเดือนก่อน

    Yes

  • @alekseydanchin
    @alekseydanchin หลายเดือนก่อน

    Только начал изучать Rust по этому понял не много. Оставлю тут коммент чтобы пересмотреть позже.

  • @luckystrike91
    @luckystrike91 หลายเดือนก่อน

    как сделать ссылку с лайфтаймом 'self, допустим структура владеет строкой, или Box<str> и вторым полем я хочу сослаться на подстроку, тоесть использовать &'self str? я для этих целей использовал Range<usize>. слышал, что это не простая задача из-за move-семантики, но хотелось бы видео на эту тему

    • @bitwiseuwu
      @bitwiseuwu หลายเดือนก่อน

      Скорее всего сделаю видео на эту тему когда буду подбираться к async Rust. Там типы с ссылкой на себя всплывают часто. Реализуется это через стандартный тип Pin, так что можно прочитать про него

  • @GhostVlVin
    @GhostVlVin หลายเดือนก่อน

    В с++ переменную со стека можно передать в функцию по указателю & или по референсу вместо того чтобы копировать

  • @ya_o4enb_ustal
    @ya_o4enb_ustal 2 หลายเดือนก่อน

    4:59 обожаю этот момент в Rust. Ссылка конечно неизменяемая, но менять в теории ты можешь.

    • @arekusei9580
      @arekusei9580 หลายเดือนก่อน

      это называется архитектурный костыль)

  • @kolebynov
    @kolebynov 2 หลายเดือนก่อน

    Если хотя бы немного знаете английский, то рекомендую еще посмотреть видео на канале Logan Smith про функции, оно называется "Rust Functions Are Weird (But Be Glad)". Там хорошо показана разница между замыканиями и указателями на ф-ции.

  • @Keriokutori
    @Keriokutori 2 หลายเดือนก่อน

    Очень информативно, спасибо тебе! Было бы круто, если бы видосы выходили где-нибудь еще типа вк видео/рутуб/дзен/телега.

  • @999mikl
    @999mikl 2 หลายเดือนก่อน

    Насколько же понятно, качественно и наглядно всё здесь показано. Одна из самых сложных тем раскрыта на все 100%, таким понятным и приятным глазу форматом. Лайк и большое уважение автору.

  • @za4ems785
    @za4ems785 2 หลายเดือนก่อน

    Очень нравится шрифт, что это?

    • @bitwiseuwu
      @bitwiseuwu 2 หลายเดือนก่อน

      Этот шрифт называется Consolas, также могу порекомендовать шрифт JetBrains Mono и шрифты Гитхаба

  • @little-ork
    @little-ork 2 หลายเดือนก่อน

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

  • @nanoqsh
    @nanoqsh 2 หลายเดือนก่อน

    База

  • @usercommon1
    @usercommon1 2 หลายเดือนก่อน

    Ок

  • @act0r399
    @act0r399 2 หลายเดือนก่อน

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

    • @bitwiseuwu
      @bitwiseuwu 2 หลายเดือนก่อน

      Постараюсь в будущем оставлять источники! Про технические детали реализации написано в Rust Reference - doc.rust-lang.org/stable/reference/types/closure.html

  • @danilakhtarov
    @danilakhtarov 2 หลายเดือนก่อน

    Я кажется в первый раз слышу термин функциональный указатель, обычно говорят указатель на функцию. Даже в английском это function pointer, а не functional pointer

    • @Sneg00vik
      @Sneg00vik 2 หลายเดือนก่อน

      Тоже резануло слух

  • @IvanMyName
    @IvanMyName 2 หลายเดือนก่อน

    Сложное объяснение.

  • @Mytest437
    @Mytest437 2 หลายเดือนก่อน

    Хорошее видео, мне понравилось. Интересно будет если автор выпустит видео, где и как он обучался Rust и какой у него опыт.