Как стать автором
Обновить
-15
0.6
Александр @Gordon01

Разработчик

Отправить сообщение

Так это же буквально копейки. С учетом коррекции по ППС на рубли это около 40к

Ну или хотя бы сделает скриншоты через vga/dvi capture за 1000 рублей

Нет, для разработчиков вейленда это не баг, а фича. Мальчики играют в театр безопасности:

В ряде случаев Wayland позволяет решить большое количество проблем с безопасностью Х11. Дело в том, что он изолирует как ввод, так и вывод для каждого окна. Не позволяет клиенту получить доступ к содержимому окна других клиентов. А также не позволяет перехватить связанные с другими окнами события ввода. 

https://gist.github.com/probonopd/9feb7c20257af5dd915e3a9f2d1f2277

Написанное справедливо и для Windows пользователей, находящихся в аналогичной ситуации.

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

И на арм64 винде есть эмулятор для запуска х86 приложений.

Все вместе заняло 10,8 ГБ

Из них 670 освобождено за счет объединения одинаковых страниц (удивительно хороший результат, похоже файрфокс не особо заботится о потреблении памяти).

И еще 2,33 ушло в свап.

Итого 7,8 физической памяти занято на страницы программ и еще 6,8 на дисковый кэш.

Linus: don't break userspace!!!!!111

Also Linus:

  • В системный вызов pwritev2() добавлен флаг RWF_NOAPPEND, позволяющий указать смещение для записи, даже если файл был открыт в режиме только добавления данных в конец файла.

  • Добавлены новые ioctl-команды: FS_IOC_GETUUID — возвращает UUID-идентификатор указанной файловой системы, FS_IOC_GETFSSYSFSPATH — определяет местоположение в /sys/fs заданной примонтированной ФС.

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

Это создает проблемы не только для общего DPI, но и для приложений, которым нужно скейлиться.

И это только поверхностные проблемы. Если покопать архитектуру, например render loop, то можно ужаснуться.

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

1. (для всех окружений) Если ставить привычные CTRL-Shift на переключение языков, то в программах тупо не работают комбинации клавиш CTRL-Shift+буква (например, в Файрфоксе CTRL-Shift-T - открыть ранее закрытую вкладку). Для ALT-Shift проблема та же, но уже с комбинациями с ALT.

Объясняется это тем, что система не дожидается нажатия буквы, а отрабатывает сразу сочетание CTRL-Shift (переключение языка) и ждёт новых команд. Это де стандарт такой…

Вот тут я завёл ошибку: https://github.com/xkbcommon/libxkbcommon/issues/420 - прошу вашей поддержки, чтобы показать, что проблема затрагивает многих пользователей, поставьте там нравку, пожалуйста.

Пока же я обошёл проблему назначением Капс Лока для переключения языка, в таком случае сочетания клавиш работают.

Этой проблеме десятки лет и никто ее исправлять не будет, потому что "так принято в опенсорс сообществе linux". https://bugs.freedesktop.org/show_bug.cgi?id=865

У линукса на десктопе множество проблем, есть даже целые статьи на тему https://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html

Я долго сидел на кде, но имхо золотые годы были во времена 3.5, а потом все пошло под откос. Чуть больше 5 лет вернулся на винду и ни о чем не жалею.

Недавно установил современный линукс на день, все как раньше: кривой DPI, падения на ровном месте, например от выдергивания неотмонтированной флешки, очень низкая производительность графики (даже несмотря на то что у меня интел UHD 770).

Для меня главная проблема - это то, что нельзя установить старый (3+ лет) софт на новые дистрибутивы и нельзя установить новый софт на LTS дистрибутивы.

Пакетные менеджеры и репозитории безнадежно устарели и банально ну умеют решать даже DLL HELL. snap, appimage и прочие докеры, чтобы установить калькулятор - днище днищенское. winget, которому меньше пяти лет уже улетел в космос, и умеет в декларативную конфигурацию.

Хоть как-то спасти положение может разве что nixOS. Все эти федоры и убунты в 2024 году смотрятся как proof of concept.

Linux хорош, чтобы запускать браузеры, а в особенности фаерфокс. Остальное делать лучше не пытаться.

Иначе слишком много вариантов проверок будет

Проверок бывает слишком много?

Да и в целом, какая разница?

Корректность работы инсталлятора проверяется на CI.

Описание языка (референс) - текущее состояние.

и

Стандарт (спецификация) - официально зафиксированный слепок на конкретный момент времени

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

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

Да и к тому же просто вранье:

 которому должны соответствовать компиляторы, заявляющие о совместимости "на уровне стандарта ХХХ"

Имеено это и объявлено: The latest release of this book, matching the latest Rust version, can always be found at https://doc.rust-lang.org/reference/. Prior versions can be found by adding the Rust version before the "reference" directory. For example, the Reference for Rust 1.49.0 is located at https://doc.rust-lang.org/1.49.0/reference/.

текущее состояние с привязкой к компилятору

Опять вранье или "не читал, но осуждаю"

Similarly, this book does not usually document the specifics of rustc as a tool or of Cargo. rustc has its own book.

Finally, this book is not normative. It may include details that are specific to rustc itself, and should not be taken as a specification for the Rust language.

Неужели без вранья, манипуляций и изобретения сущностей из ниоткуда нельзя рассказать какой прекрасный и нерушимый С++?

Разницу между описанием языка и стандартом, надеюсь, понимаете.

Рекомендую использовать словарь для непонятных иностранных слов:

https://wooordhunt.ru/word/reference

тех. эталон, стандарт

Библиотеки версий 0.х в промышленную эксплуатацию? Ну, что ж, удачи в отладке стороннего кода.

Рекомендую прочитать что означает версия 0 в системе семантического версионирования: https://semver.org/lang/ru/

Да и в целом для чего вообще оно нужно.

Мажорная версия ноль (0.y.z) предназначена для начальной разработки. Всё может измениться в любой момент. Публичный API не должен рассматриваться как стабильный.

Первое и второе, что сразу напрягает в Расте - отсутствие стандарта

Есть референс https://doc.rust-lang.org/reference/

По нему фронт для GCC написан

длинный список зависимостей с номерами версий, начинающимися на ноль

Это хорошо или плохо?

Третье, что паттерны из С++ не годятся, надо переучиваться.

"Бесит программирование, надо постоянно учиться"

синтаксис с и с++ выстроен из неких математических абстракций вокруг архитектуры ЭВМ

Вокруг PDP-11, если быть точным

он хоть и даёт возможность забыть про регистры, стек, прерывания и проч., но при этом он позволяет легко об этом вспомнить

Зачем мне вспоминать про архитектуру PDP-11? Какое отношение она имеет к современному аппаратному обеспечению c многоядерными процессорами, алгоритмами когерентности кэша, спекулятивному выполнению и тому подобному?

Спойлер - никакого.

но разрабы, пишущие на расте, скорее всего не понимают, что там под капотом происходит

А вы понимаете что происходит под капотом у процессора, который еще раз "компилирует" инструкции для него в микрооперации?

А потом окажется, через пять лет, что в компиляторе была дыра

А потом окажется, через пять лет, что современный процессор - это не одноядерный PDP-11, во что свято верили поклонники мантры "си - это низкий уровень" и произойдет Spectre & Meltdown. Oh shi******

C Is Not a Low-level Language, your computer is not a fast PDP-11

Когда-нибудь с пойму все, что здесь написано и даже запомнб

Да я тоже жил и работал в НЛ, там буквально в миллион раз лучше, чем в Германии

Я не оч ясно выразился, но я это и имел в виду. Зарплаты в Гермашке низкие, медицина никакая, в целом очень много проблем. Их бы можно было решить, если бы были деньги. Но их нет, экономика в стагнации (как и в целом по ЕС).

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

Написано красиво, подвешенным языком, шутки хорошие и колкие.

Но увы, в полном отрыве от реальности.

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

Тут вообще полный набор wanna-рело штампов:

  1. Климат. Все эти берега морей и лето 12 месяцев в году хорошие первые месяца три, но потом привыкаешь.

  2. Германия все. Немецкое айти еще более все. Вакансии по специалистам по Win 3.1 и вечно опаздывающий дойч ебан - это не случайные вещи. Это лишь следствие среднего оклада 65к (до налогов).

  3. Р*шка - г*шка, надо ехать за границу.

P.S. а покажите как в вашем shared ptr сделать кастомный делитер. А никак, раст не смог...

Используюя типичный растовый паттерн:

use std::sync::Arc;

#[derive(Debug)]
struct My {
    data: u8,
}

#[derive(Debug)]
struct Wrapper {
    rc: Arc<My>,
}

impl Wrapper {
    fn new(data: u8) -> Self {
        Self {
            rc: Arc::new(My { data }),
        }
    }
}

impl Drop for Wrapper {
    fn drop(&mut self) {
        println!("Dropping Arc...");
    }
}

impl Clone for Wrapper {
    fn clone(&self) -> Self {
        Self {
            rc: self.rc.clone(),
        }
    }
}

fn consume(a: Wrapper) {}

fn main() {
    let my = Wrapper::new(0);
    consume(my.clone());
    println!("My: {my:?}");
}
Dropping Arc...
My: Wrapper { rc: My { data: 0 } }
Dropping Arc...

Информация

В рейтинге
1 943-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность