LINUX.ORG.RU

Сообщения mersinvald

 

Выбора планшета тред.

 , , ,

Хочу порадовать жену планшетом под новый год, а то больно смотреть как она на мобильнике пишет тексты :)

Но я в них совсем не разбираюсь, по этому, ЛОР, помогай. Посоветуйте что-нибудь из новых андроидопланшетов от 9 дюймов, с приличным железом (а то мой опыт общения с планшетами ограничивался дешевыми моделями, в которых даже системные анимации лагали, с тех пор не люблю планшеты).

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

Виндопланшеты до 40к и с нормальным EFI тоже сойдут, но я сомневаюсь, что такие есть.

P.S Apple не предлагать

mersinvald
()

Больше нет TuxOnIce в pf-kernel?

 , , , ,

Сегодня обнаружил, что в pf больше нет TuxOnIce: ни в pkgbuild'е ни в конфиге ядра нет никаких его упоминаний.

Почему он больше не поддерживается, проект TuxOnIce вроде как жив и развивается (форкнули)?

Актуально для версии 4.11.7.

cast post-factum

mersinvald
()

Опакечивание софта для арча

 , ,

Распространяю готовые статические бинарники, но дополнительно для удобства пользователя решил опакетить для популярных дистрибутивов.
Использую для этого fpm.

Софтинка автоматически билдит пакеты для разных ПМов, в том числе pkg.tar.xz для пакмана.
Вопрос: можно ли в AUR опубликовать pkg.tar.xz?
Насколько я понял, там нужен PKGBUILD, но поскольку у меня ничего не билдится, а только распаковывается, нужно чтобы PKGBUILD качал с гитхаба pkg.tar.zx и работал с ним.

Есть ли готовые примеры как это сделать?

mersinvald
()

WebUI для libvirt с хорошей поддержкой KVM и LXC

 , ,

Доброго времени суток, разыскивается современный WebUI к libvirt, имеющий хорошую поддержку KVM и LXC.
Фронтендов к KVM тысячи, а вот с контейнерами работает мало кто.
В идеале нужно решение, выполняющее роль менждера виртуалок/контейнеров, а не комбайны для руления облачными ресурсами различных амазонов вроде OpenNebula.

mersinvald
()

Arch, Makepkg, missing package name

 , ,

Свежий инсталл арча, при установке yaourt возникла проблема:
Из доки:

git clone https://aur.archlinux.org/package-query.git
cd package-query
makepkg -si

Фаза установки makepkg фейлится с ошибкой

loading packages...
error: missing package name in /home/mike/.tmp/package-query/package-query-1.8-2-x86_64.pkg.tar.xz
error: '/home/mike/.tmp/package-query/package-query-1.8-2-x86_64.pkg.tar.xz': invalid or corrupted package
==> WARNING: Failed to install built package(s).

Что характерно, ошибка не гуглится :С

mersinvald
()

Наиболее эффективный способ передачи файлов по сети.

 , , , ,

Пишем сетевую файловую систему над FUSE, задача предполагает передачу кучи маленьких файлов (до 10кб) с сервера на клиент и обратно + агрессивное кэширование (без синхронизации с сервером, клиент блокирует любые операции на запись используемых файлов на время работы).
Пытаюсь принять решение касательно протокола передачи, возникла пара вопросов:
1. Как эффективнее передавать данные: по TCP с потерями на контроль доставки или по UDP без попакетного контроля (контролировать чексуммами блоков большого размера, например)?
2. Утилизует ли TCP-поток всю ширину канала? Будет ли выигрыш от приема/передачи через N соединений по количеству ядер процессора?

И касательно FUSE: 3. Можно ли его научить работать асинхронно тогда, когда это возможно?
Последовательное чтение метаданных в директориях с кучей файлов — это боль.

mersinvald
()

Поругайте ржавый код

 , ,

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

Приветствуется конструктивная критика как по технической составляющей, так и по офомлению кода и документации.

Страничка на crates.io
GitHub
Документация

mersinvald
()

Rust compiler plugins

 , ,

Кто-нибудь имел дело с кодогенерацией средствами libsyntax или syntex?
Поделитесь источниками откуда брать примеры и объяснения как генерировать растовский AST. Я нашел только syntax extensions, но это не совсем то.
Застрял на создании структуры и имплементации интерфейса к ней.
Должно же быть хоть что-то кроме автогенеренной документации по сигнатурам функций libsyntax.

Есть ли простой способ кодогенерации через linsyntax а-ля syntax-macro-way?

mersinvald
()

Gentoo и хипстерские графические API

 , ,

Пытаюсь заставить работать Vulkan.
Установил sdk, собрал примеры, поставил тестовую месу с поддержкой vulkan.
При запуске демки вываливается:

cube: /opt/VulkanSDK/examples/cube.c:2611: demo_init_vk: Assertion `!err && gpu_count > 0' failed.
“./examples/build/cube” terminated by signal SIGABRT (Abort)

intel HD3000, i965
ЧЯДНТ?

mersinvald
()

Восстановление покалеченных портажей

 , , ,

Не буду уточнять обстоятельства, случайно снес себе часть /var, соответственно портаж забыл обо всех установленных пакетах, вплоть до @system.
Хочет пересобирать. Я не хочу.
Кроме того, при сборке некоторых пакетов (libffi) конфигурация валится по причине того, что в системе libffi уже присутствует.
Есть ли способ насильно заставить портаж вспомнить что необходимые пакеты установлены? Хоть бы и вручную попакетно, для тяжелых случаев.

mersinvald
()

CoW, docker и минимизация занимаемого дискового пространства

 ,

Есть задача, по которой нужно держать потенциально много chroot-префиксов, так, чтобы они занимали как можно меньше места.
Классическая задача для docker с его наследованием и CoW файловой системы, если бы не одно но: после копирования общего базового образа, преффиксы будут меняться довольно сильно, но новые данные в них частично (и не очень) будут совпадать.

Умеет ли докер или любая другая контейнерная система проводить дедупликацию данных во время работы (можно прерываться на мейнтейн), или лучше посмотреть на что-то иное?

mersinvald
()

Сколько времени уходит на компиляцию в Gentoo?

 , ,

Написал скриптик, который, с помощью genlop выводит сколько времени $anonimous потратил на компиляцию за всё время использования текущего инсталла Gentoo.

Скрипт на GitHub Gist

Версия для Ъ:

wget https://gist.githubusercontent.com/mersinvald/b244c73dac730016ceab971e190a8ab3/raw/587e1d019c7bd261963096a5f9727aa2ddfcdd6a/mergetime

Запускать от рута (или с правами на /var/log/emerge.log)
Пишите кто сколько своей жизни потратил вникуда :)

P.S Я знаю, что мой Bash — говно

Перемещено leave из desktop

mersinvald
()

Лучший способ реализации user-local package management

 , ,

Сабж.

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

Я знаю, что можно использовать локальный Gentoo Prefix для каждого пользователя, но это может вылиться в конфликты и маскирование системных версий пакетов и настроек, что плохо.

Как лучше?

Gentoo GNU/Linux

mersinvald
()

Привычки и Rust

 , ,

На сишке привык циклы с предусловием писать так:

while(k--) {
   ...
}

В Rust это превращается (насколько я понимаю) в

while k > 0 {
    k -= 1;
    ...
}

Что не совсем красиво и неочевидно, с первого взгляда.
Как принято в Rust записывать циклы с предусловием, чтобы красиво и понятно?

mersinvald
()

Разделение ресурсов в Rust

 , , ,

Есть такой кусок кода:

extern crate chan;
extern crate chan_signal;
use chan_signal::Signal;
use std::thread;
use std::net::UdpSocket;

fn main() {
    // Initialize system signals handler
    let signal = chan_signal::notify(&[Signal::INT, Signal::TERM]);

    // Create UDP socket
    let socket = UdpSocket::bind(
        ("0.0.0.0", 10000)
    ).unwrap();

    // Spawn handler thread
    thread::spawn( move ||  {
        let mut buf = [0; 1024];
        loop {
            // Waiting for incoming message
            let (n, src) = socket.recv_from(&mut buf).unwrap();

            println!("Received {} bytes from {}: {:?}", n, src, &buf[..n]);
        }
    });
    
    // In main thread wait for system signal
    let sig = signal.recv().unwrap();

    // Close socket
    drop(socket);
}

Он, ясно дело, не компилируется, так как сокет заимствован потоком обработчика, когда я пытаюсь его закрыть.
В сях я бы просто прихлопнул сокет и вышел, тут же все, видимо, не так просто.
Как закрыть сокет при получении SIGTERM, если в этот момент поток владеющий им заблокирован вызовом recv_from?

mersinvald
()

Обновление системы в Gentoo. Непонятки с -uDN

 , ,

Везде и всюду пишут что единственно рассово верный способ обновлять генту — emerge -uDN world.
По логике вещей, эта команда должна пробежаться по всем пакетам с их зависимости найти что можно обновить, отрезолвить зависимости и максимально обновить систему, так?

emerge -uDN world
...
Total: 29 packages (15 upgrades, 14 reinstalls)

emerge -e world
...
Total: 900 packages (115 upgrades, 785 reinstalls)

Почему так? Почему полная пересборка мира выявляет больше возможных обновлений, чем, собственно --update --deep, и как можно устроить ту же пересборку, максимально привести систему к актуальному состоянию, но не пересобирать лишнего?

P.S. Мне все равно на просроченные на пару дней(недель, месяцев, лет) пакеты, просто такое поведение портажей меня крайне заинтересовало, и я не могу найти логического объяснения оному.

mersinvald
()

Rust или D: что выбрать?

 , , ,

Впереди пара свободных от работы и учебы уикендов и хочется наконец заняться чем-то новым, оставив кресты на работе и написать что-нибудь «для души».
Соответственно, совместить приятное с полезным и заодно на основе пет-проджекта выучить новый язык.

Люблю системное и сетевое программирование, а так же распределенные/параллельные вычисления, ну и область интересов соответствующая.

В пользу D говорит его синтаксис + пара киллерфич, стянутых из функциональщины и «привычность», ввиду похожести на кресты.

За Rust — большая приближенность к железу, отсутствие GC (хотя к финальной версии собираются вводить?), крутые возможности по компилтайм вычислениям и перманентное ворчание tailgunner в теге ржавчины.

Что посоветуете и что лучше, какие есть отличия-киллерфичи, при применении обоих языков в одних областях?

mersinvald
()

Зеленые потоки в C и C++

 , , ,

Тема, конечно, избитая, но хотелось бы собрать в одном месте всю информацию как по наличию библиотек, так и по самостоятельной реализации.

  1. Есть ли готовые реализации, кроме прямого порта горутин со всеми их недостатками?
  2. Чем оно лучше и чем хуже пула нативных потоков?
  3. Посоветуйте литературу для более глубокого изучения альтернативных концепций трединга, желательно с собственным мнением что лучше и универсальнее.
mersinvald
()

Продолжение идей libbash: технический аспект и степень ненужности

 , , , ,

В далеком 2011 году один студент в рамках GSoC начал писать очень интересную вещь: интерпретатор bash, реализующий парсинг в AST и работу над оным, без, собственно, вызова bash
И все бы хорошо, но лето кончилось, а с ним и энтузиазм студента: больше подвижек в эту сторону вроде не было (может из-за узкой области применения, может из-за говнокода самого сабжа, история умалчивает).

Наиболее интересна штука должна быть гентушникам, так как позволила бы на порядок ускорить работу portage засчет замены кучи вызовов bash на вызовы сишного апи libbash с соответствующим кэшированием абстрактных синтаксических деревьев.

Собственно, хочу продолжить это дело и довести до конца, но мне в корне не нравится подход автора оригинала: нагромождения буста, собственный велосипедный парсер итд.

Вопрос #1:
Подходит ли баш для составления формальной грамматики генератора LR-парсеров вроде bison? (в парсерах не силен, так что не бейте, если ответ очевиден)

Вопрос #2, преимущественно к разработчикам генты и портажа:
Ведется ли какая-то разработка в этом направлении или все затухло тогда в 2011?

Вопрос #3, к ним же:
Нужно ли, будет ли востребовано, и, будет ли включено в состав портаж, если допилю?

Вопрос #4, ко всем остальным:
Какой потенциал у libbash, кроме ускорения портаж, нужно ли оно?

UPDATE: Мне ответил мейнтейнер либбаша:

Я: We are wondering if libbash is still needed by gentoo dev team and why there was no activity since 2012?

Petteri: It has never been a required component. It could have been had enough effort been put into it. There's no activity because no-one is working on the project.

Я: What have changed and do portage now call bash for every ebuild?

Petteri: Nothing. Portage has always called bash for every ebuild.

Я: Is there any reason to continue libbash development?

Petteri: There is but if it happens, a re-evaluation of the architecture should be done to see if the choices are relevant any more.

mersinvald
()

Ненормальные оптимизации: LTO при сборке ядра

 , ,

Пересобрал свою гентушечку с тщательно подобранными оптимизациями, рад и доволен, но одна мелочь не дает мне покоя: ядро, собранное с -O2.

Хочу пересобрать с максимальными оптимизациями, -O3 --march и прочие заходят отлично, а с LTO — проблемы.
Ядро, понятное дело, LTO и не возьмет, но модули может.

Собственно, проблема: при линковке модулей, ar не подхватывает плагин из /usr/lib/bfd-plugins/, как для всей остальной системы.
Куда положить плагин чтобы он его видел или какие опции передать?

mersinvald
()

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