All streams
Search
Write a publication
Pull to refresh
17
1.1
Кашлак Андрей @andreymal

User

Send message

Firefox, да

Что ещё раз подтверждает, что это сложнейшая проблема компьютерных наук ¯\_(ツ)_/¯

Вот вроде статья про самые основы, описанные в растбуке, но почему-то тут плохо почти всё

4 самых частых вопросов

Даже заголовок не вычитали. И дальше по тексту навалом опечаток, упоминать которые не буду

Это предотвращает утечки памяти

Тем не менее, важно понимать, что Rust не предотвращает все утечки памяти

только одна изменяемая ссылка может существовать в данный момент времени.

Упущен крайне важный нюанс: в этот же момент времени не может существовать неизменяемых ссылок

// println!("r: {}", r); // ошибка: x не живёт достаточно долго

Чушь: если раскомментировать первый println (но не второй), то код успешно компилируется и запускается

// функция, которая ... возвращает ссылку с длиннейшей жизнью

Просто чушь, даже не знаю как прокомментировать

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

Опять набор слов какой-то. Возможно, автор хотел сказать, что нельзя реализовать трейты Copy и Drop одновременно, но он почему-то не смог

Юзаем Option ... без использования нулевых указателей

Если речь про собеседование, то, вероятно, где-то тут стоит упомянуть null pointer optimization

Mutex в Rust гарантирует, что только один поток может получить доступ к защищаемым данным в любой момент времени.

А как расшарить-то мьютекс другим потокам, если в растовой системе владения владелец может быть только один, а ссылка не проживёт достаточно долго? Без упоминания хотя бы Arc пример является бессмысленным

Попробовал докинуть zram-своп перед установкой — вроде установилось

Кстати насчёт свопа — во время второй попытки установки обратил внимание, что версия ядра 6.8.0, а там были какие-то проблемы, из-за которых у меня зависал арч. Проблемы вроде пофиксили примерно к 6.8.3, но если вдруг разрабы убунты поленились портировать фиксы, то, может, проблемы тут так и остались (правда, у меня зависало именно сочетание шифрования + zswap, а в убунте из коробки ни того ни другого нет, но мало ли чего)

Ну вообще в системых требованиях написано таки 4 гига

Попытка установки на 2 гига в виртуалбоксе зависла тут

если надо KV - то почему не redis?

Вы видимо не следили за новостями https://www.opennet.ru/opennews/art.shtml?num=60820

Пару недель назад ставил krfb на арче, и он крашился сразу же после попытки нажать Shift. Причём не просто крашился, а ещё и оставлял Shift зажатым, и после краха приходилось всю графику перезапускать, чтобы отжать его

(наверно надо забагрепортить, но мне пока что лень)

Пока что не стал заморачиваться, какая-то дедупликация всё-таки имеется и хранить в restic всё равно получается компактнее чем без него

Я пытался пихать БД в restic, который тоже бьёт файлы на чанки. Но оказалось, что MariaDB любит поменять парочку байтов в разных местах (наверное счётчики-смещения-размеры какие-нибудь), и из-за этого целые чанки считались изменёнными и бэкапились заново, в итоге экономия на дедупликации не особо получилась

банально

на Zoom с виртуальным фоном

Не кажется ли вам, что эта задача бесконечно далека от банальной?

У меня неподалёку есть комп на C2D E7500, вин10 на нём вполне бодренько работает (и вин11 скорее всего тоже, но из-за отсутствия UEFI не пробовал), офису норм, браузеру норм, фотошопу норм, даже OBS Studio стримит с него без запинок, а пытаться рисовать какие-то виртуальные фоны никто даже и не думал

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

В питоне всё всегда передаётся по ссылке, просто некоторые примитивные/иммутабельные типы не предоставляют официальных способов изменить себя.

Но если очень хочется...
import ctypes

def fuck(x: int) -> None:
    ctypes.memset(id(x) + 24, 255, 4)

def main() -> None:
    a = int("1000")
    print(a)  # 1000
    fuck(a)
    print(a)  # 4294967295

main()

Тогда уж и про restic можно вспомнить (к тому же в rclone внезапно есть нативная поддержка restic)

А никаких микро-макро-тасков в спецификации тоже не видно, вместо них какие-то Jobs (возможно ли их реализовать поверх упомянутых мной биндингов — не проверял, но на первый взгляд почему бы и нет)

Обе эти вещи тоже отсутствуют в спецификации ECMAScript

Ну и обе эти вещи (да и рендеринг тоже) зависят от системных вызовов, так что задача сводится к созданию биндингов к интерфейсам операционной системы и всех интересующих обёрток над этими биндингами

Чё там системного-то, просто сокеты с таймерами подёргать вроде бы, вполне типичные для прикладной программы вещи

В нём есть трейты, для многих задач этого хватает

К счастью, до создателей Go дошло, что писать тонны бойлерплейта на каждый тип это на самом деле сложнее чем дженерики)

(осталось только с убогим if err != nil что-нибудь сделать, и получится нормальный язык)

Может потому их и выбросили из Go?

Что значит выбросили, вот они сразу же в хелловорлде торчат https://go.dev/tour/basics/4

А отсутствие статической типизации делает ваш код кашей.

Сразу видно новичка, который не в курсе про аннотации типов

Python довольно медленный язык

В тех областях, где питон обычно используется, это не имеет почти никакого значения

А вы не допускаете вариант, что расширение было (или стало) вредоносным?

Information

Rating
1,502-nd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity