LINUX.ORG.RU

Сообщения meliafaro

 

Слишком много зла

Форум — Linux-org-ru

Это, как и некоторые другие IT-ресурсы, превратились в рассадник срачей и бездумных холиваров. Пользователи, мало компетентные в своей области, устраивают травлю одиночек, которые знают и умеют больше них, но не согласны с мнением агрессивного большинства. Практически каждый тред полон идиотскими стычками между сторонниками разных ЯП, init-ов, дистрибутивов. Модераторы кошмарят юзеров, защищая свои собственные предпочтения.

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

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

Всем, с кем стоит временно попрощаться - пока-пока и спасибо за помощь и общение, ещё спишемся!

 

meliafaro
()

Очередная трабла с ждущим режимом

Форум — Desktop

Настольный комп, который всегда удобно было отправлять в «спячку»-суспейндить. На одном разделе Федора 34, на Другом перманентно что-то убунтушное - элементари, Минт, etc. На убунтушных на всех до единого проблема с ждущим режимом - при переходе в него система отключает большинство ресурсов, приглушает акк, тушит экран и виснет, что решается только хардресетом. На соседней Федоре такх проблем нет.

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

Может, тут кто-то нашёл причину?

 , ,

meliafaro
()

Тем временем в FF завезли очередной редизайн

Форум — Talks

Собственно, вот: https://www.opennet.ru/opennews/art.shtml?num=55242

Из новшеств особенно доставил кулькулятор в адресной строке. Что дальше? Метеопрогноз в адресной строке, тетрис, биткоин-кошелёк?

 ,

meliafaro
()

a1batross, это ещё за что?

Форум — Linux-org-ru

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

Каст @a1batross

Свожу и развожу, часть шестая

 

meliafaro
()

Пара тупых вопросов о системном программировании

Форум — Development

В раннем детстве, лет так 20 назад, я при помощи старого папиного ноута с Вин95 и QBasic пытался писать свои первые хэлловорлды. Там использовался брутально-прямолинейный способ сделать паузу в исполняемом потоке:

FOR I = 1 TO 100000
NEXT

Потом, когда я стал постарше, мне объяснили, что это напрасный перевод процессорного времени.

Теперь стало интересно, как дело обстоит в современных ОС. Если я напишу цикл, сидящий в отдельном треде, вроде

for (;;) {
    if (some_condition) {
        break;
    } else {
        continue;
    }
{

насколько это будет расточительно с точки зрения ресурсов? Предположим, у нас есть куча дочерних процессов, которые нерегулярно, время от времени выдают что-то в stdout/stderr, это нужно ловить в родительском процессе, парсить и как-то на это реагировать. Насколько такой прямолинейный подход будет эффективным? Какие есть альтернативы? Насколько разумно будет вообще заморачиваться по этому поводу, если речь идёт не о тысячах соединений в секунду? Как такие вещи оптимизируются ОС/рантаймом/компилятором?

 , , , ,

meliafaro
()

Как удобно занулять отдельные биты?

Форум — Development

Спасибо всем, кто ответил по существу. Остальных, по видимому, самое время отправить в игнор. Такие треды вообще хорошие детекторы.

 ,

meliafaro
()

Rust: несовпадение типов

Форум — Development

Есть типа такой код:

   fn run_input_device(dev: &str) {
        let input = MidiInput::new("Some input").unwrap();
        let ports = input.ports();
        let mut port = Option::None;
        for i in &ports {
            if input.port_name(&i).unwrap() == dev {
                port = Some(i);
            }
        };

        let callback = move |stamp: u64, message: &[u8], _| {
            // println!("{}: {:?} (len = {})", stamp, message, message.len());}, ());
            let st = format!("{}: {:?} (len = {}\n", stamp, message, message.len());
            std::io::stdout().write_all(st.as_bytes()).unwrap();
            std::io::stdout().flush().unwrap(); 
        };

        if port.is_some() {
            let conn = input.connect(port.unwrap(), "midir-read-input", callback, ());
        loop {}
    }
}

Компилятор чихает следующим:

    |
116 |             let conn = input.connect(port.unwrap(), "midir-read-input", callback, ());
    |                              ^^^^^^^ one type is more general than the other
    |
    = note: expected type `FnOnce<(u64, &[u8], &mut ())>`
               found type `for<'r> FnOnce<(u64, &'r [u8], &mut ())>`

error: aborting due to previous error
При этом, что характерно, если поставить в аргументы функции connect() вместо названия замыкания его тело, то всё работает на ура. Ничкего не понимаю.

 

meliafaro
()

Библиотека для построения GUI на HTML/CSS

Форум — Development

Собственно, что можете подсказать на эту тему? Есть движок, написанный, предположим, на C++ или Rust. К нему нужен ТОЛЬКО ИНТЕРФЕЙС - вся логика уже написана на низкоуровневых языках. То есть жирный js-движок не нужен, нужна чисто отображалка. Тянуть в систему Электрон или тяжёлые браузерные движки изи GTK/Qt не хочу.

Есть что-то такое в природе? Если ещё и Rust поддерживает, вообще шикарно будет.

Знаю, что так устроены некоторые аппликухи, навскидку, Bitwig. Но он проприетарный, не посмотришь.

 , , ,

meliafaro
()

Почистите тему

Форум — Linux-org-ru

Царёк забыл принять таблетки и как-то выбрался из палаты, требуется карательная экспедиция. И, если можно, от анонов тоже тему закройте, а тот там Ад и Израиль. Как понять асинхонщину в Rust?

 , , ,

meliafaro
()

Как понять асинхонщину в Rust?

Форум — Development

В Rust какая-то очень «самобытная» асинхронщина, понять её сложно. Итак, необходимый минимум - реализовать трейт Future. Дольше веселее - есть несколько каких-то малопонятных сущностей, которые за что-то там отвечают, пока непонятно, за что.

Читал кучу мануалов, они из серии: https://sun1-16.userapi.com/impg/cTOihOqKWsJSPD6uBUB6KTQZY823V6f3TzS9Tw/5VAn_b_1JUI.jpg?size=1080x1080&quality=96&proxy=1&sign=3ec0c8687655c3ac555d4b06874cfc49&type=album

Как правильно достать значение из Future? 101 вопрос. Когда Future реализуется сам, а когда его необходимо реализовать самому? Я так понял, логика реализуется в poll(), нет?

Мне нужно, например, читать стдаут порождённого процесса или поток миди-данных в рандомное время на вводе.

Кто распишет вменяемый хеллоуворлд, скину на пиво;)

 , ,

meliafaro
()

Rust: Как хранить &str в структуре?

Форум — Development

Что я хочу:

struct Foo
{
    const char * name;
};
 
void Bar(struct Foo * foo)
{
    foo->name = "Name";
}
Теперь на Руст:
struct Foo<'a> {
    name: &'a str
}

impl<'a> Foo<'a> {

    fn bar(&self) {
        self.name = "nm";
    }
}
Это не конпелируется:
error[E0594]: cannot assign to `self.name` which is behind a `&` reference
  --> src/main.rs:26:9
   |
25 |     fn bar(&self) {
   |            ----- help: consider changing this to be a mutable reference: `&mut self`
26 |         self.name = "nm";
   |         ^^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be written
Как это тут это всё вот?

Пы Сы: В итоге, это должно быть так:

struct Foo<'a> {
    name: &'a str
}

impl<'a> Foo<'a> {

    fn bar(&mut self) {
        self.name = "nm";
    }
}

 

meliafaro
()

С++, очень странные сегфолты

Форум — Development

Есть упрощённо такой кусок кода:

    data.recordedSamples = new float (m_buffer.get_frames() * m_buffer.get_channels());
    long l = m_buffer.get_frames() * m_buffer.get_channels();
    std::cout << l << std::endl; // 176400 в моём случае
    for(long int i = 0; i < l; i++ ) {
       std::cout << i << std::endl;
       data.recordedSamples[i] = 0;
}
Доходит каждый раз до ровно 36512 и вызывает сегфолт. catch (std::bad_alloc) не ловит. g++ и clang++ собирают одинаково. Пробовал даже через malloc память выделять, всё едино. Что там такого может происходить вообще?

 , , , ,

meliafaro
()

Docke/podman: ls some_volume: cannot open directory '.': Permission denied

Форум — Development

Никак не могу взять в толк, что не нравится Подману. Он запущен с проброшенным вольюмом и отказывается ls-ить таргет. Права вроде на всё выставлены. Что посоветуете?

 , ,

meliafaro
()

Что думаете о gtkmm?

Форум — Development

Что-то я попробовал писать на этом, думал, на крестах будет проще, чем на голой сишечке, но оказалось куда сложнее. Есть истории успеха?

Фанатиков более других тулкитов просьба не беспокоиться.

 , ,

meliafaro
()

GNOME, новое ядро, зависание

Форум — General

При использовании новых версий ядра натыкаюсь на одну досадную помеху: в какой-то произвольный момент что-то загружает систему настолько, что даже курсор перемещается раз в несколько секунд. Пока что ловил эту проблему только в Гноме, только при использовании gdm, только на Wayland и только при использовании ядра 5.9 и выше. Обычно этой ситуации предшествует интенсивный ввод/вывод, но не обязательно. Ловил такой глюк в Fedora и Debian Testing. На всякий случай - видеокарта Nvidia 240, свободный драйвер. Один раз поймал такой глюк с запущенным системным монитором, там процессор в основном занимал какой-то kworker, к сожалению, не смог сделать скрин. Если набраться терпения и, потихоньку двигая курсор, выйти из сеанса, это поведение пропадает. Кто ещё ловил такие глюки? Что посоветуете?

 , , , ,

meliafaro
()

Чем писать efi live iso?

Форум — General

У меня в большинстве случаев загрузка флешки зависает ещё на стадии загрузчика. Под Линукс пробовал и dd, и Gnome Disks, и минтовские/элементари утилиты. Под Шиндвс Rufus отрабатывает без проблем, тот же образ, та же флешка, загрузка стартует. В чём может быть причина и как побороть? Загружаться каждый раз в Вин только ради этого не комильфо.

 , , , ,

meliafaro
()

Может, хватить подтверждать фотки рабочих мест?

Форум — Linux-org-ru

ЛОР превращается в Юникс Порн какой-то. На главной только одна новость, зато куча чьих-то зассаных рабочих мест с огромными превью. Может, настало время сбавить темп?

 

meliafaro
()

Система «не полностью» уходит в сон и не возвращается из него

Форум — Linux-hardware

Сорян за офигительно кликбейтный заголовок.

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

Опытным путём удалось установить, что такая проблема имеет место на свободных драйверах Nouveau, на Хорг, на Убунту 18.04 и её производных (элементари, Минт, и т. д.). С блобом этой ситуации не происходит, но у него куча своих закидонов. На Федоре тоже проблем нет, но там Вэйланд. Карта сильно древняя, NVIDIA GT218 [GeForce 210]. С Невидией до этого на Линуксах почти не сталкивался, чем крыть, не знаю.

Кто сталкивался с такой напастью?

 , , , ,

meliafaro
()

Как вернуть в Firefox старое поведение строки поиска?

Форум — Desktop

Мне очень нравилось старое поведение строки поиска с несколькими движками: набираешь запрос и кликаешь нужный движок - Гугл, Яндекс, Вики, и т. д. Сейчас, с какого-то релиза, поведение изменилось: теперь кнопки движков только выбирают нужный, но не запускают сам процесс поиска. Когда пользуешься поиском в районе 100 раз в день, эти лишние движения начинают подбешивать. Никто не знает, как вернуть старое поведение?

 , ,

meliafaro
()

undefined reference to

Форум — Development

Что-то не пойму, в чём дело. Есть докер-контейнер, в котором развёрнута Убунту и сборочное окружение. При сборке исходники компилируются, но отказываются линковаться с libportaudio, выдавая серию сообщений вроде «undefined reference to `Pa_Initialize'». dev-файлы для portaudio установлены:

# ls /usr/lib/x86_64-linux-gnu/ | grep -i portaudio
libportaudio.a
libportaudio.so
libportaudio.so.2
libportaudio.so.2.0.0
libportaudiocpp.a
libportaudiocpp.so
libportaudiocpp.so.0
libportaudiocpp.so.0.0.12
Линкер упорно игнорирует и -lportaudio, и -L/usr/lib/x86_64-linux-gnu/. Под Федорой всё компилируется, правда, не в контейнере.

Где я не прав?

 , , , ,

meliafaro
()

RSS подписка на новые темы