LINUX.ORG.RU

Сообщения mersinvald

 

Домашний офис удаленщика

Галерея — Рабочие места

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

Многие скажут что я дуба рухнул вешать 21:9 монитор вертикально, но для меня такое расположение однозначно выигрывает двум горизонтальным мониторам: я могу вертикально расположить на дополнительном мониторе 2 квадратных окна и не вертеть головой когда мне надо посмотреть на любое из них. Когда монитор стоял горизонтально, дальний его край находился уж очень далеко, было не комфортно, я его почти не использовал. Сейчас же, повернув голову от основного монитора буквально на пару градусов, я могу взглядом окинуть оба окна на втором мониторе.

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

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

На столе:

  • Монитор LG 27UD69P-W, 27 дюймов, IPS матрица, 16:9 3840х2160
  • Монитор LG 25UM58, 25 дюймов, IPS матрица, 21:9 2560x1080
  • Аудиосистема 2.1 Microlab, модель не знаю, брал с рук, звучит сносно.
  • Наушники Sony MDR-1000XM2 — лучшие беспроводные ушки, которые у меня были, да и в целом лучшие, в кадр не попали, висят на кронштейне за мониторами.
  • Китайская беспроводная мышь, жрет батарейки как не в себя, но в целом удобная, не чувствительная к наличию коврика.
  • Механическая клавиатура с синими свитчами, тоже из Китая, на удивление очень неплохо собрана: аллюминиевая подложка, индивидуальная подсветка клавиш, не скрипит, не люфтит, уже год работает и не делает мозги. Очень громкая: тян жалуется, но мне норм.
  • Криптокошелек Ledger Nano S, никак не связан с оплатой моего удаленного труда.
  • Стальной шарик
  • Reuleaux RX 200S и antisocial white 3mg

Под столом: Фото не будет, там еще срач, не закончил с кабельменеджментом.

  • AMD Ryzen 7 1700.
  • MSI Geforce GTX 1080 Ti
  • 24 Gb RAM (Corsair) — самые бичевские 2400мгц модули.
  • 2x WD Blue 1TB — один диск для кинца, фоток, игр, докера и хомяка, второй для бэкапов.
  • SSD Kingston 30GB — на нем стоит арчик
  • SSD Kingston 120GB — кэш медленного хранилища на дисках (bcache)
  • NVME SSD Intel 240GB — тут оффтопик и требовательный к IO оффтоповский софт.

Фотка в высоком разрешении и скриншот

>>> Просмотр (1500x1000, 3382 Kb)

 , , , ,

mersinvald
()

Rust 1.27

Новости — Mozilla
Группа Mozilla

Команда разработчиков языка Rust рада представить новую версию Rust 1.27.0. Rust — системный язык программирования, ориентированный на безопасность, скорость и параллельность.

( читать дальше... )

>>> Подробности

 

mersinvald
()

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

Форум — Mobile

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

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

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

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

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

 , , ,

mersinvald
()

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

Форум — Desktop

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

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

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

cast post-factum

 , , , ,

mersinvald
()

Rust 1.17

Новости — Mozilla
Группа Mozilla

Команда Rust рада представить выпуск Rust 1.17.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.

Если у вас установлена предыдущая версия Rust, то для обновления достаточно выполнить:

$ rustup update stable

Если у вас ещё не установлен Rust, то вы можете установить rustup c соответствующей страницы нашего веб-сайта и ознакомиться с подробным примечанием к выпуску 1.17.0 на GitHub.

( читать дальше... )

>>> Подробнее смотрите примечания к выпуску

 ,

mersinvald
()

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

Форум — Development

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

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

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

 , ,

mersinvald
()

Rust 1.16

Новости — Mozilla
Группа Mozilla

Представлен релиз Rust 1.16 — системного языка программирования, нацеленного на безопасную работу с ресурсами, скорость и параллельное выполнение кода. В этот релиз вошли 1364 патча от 137 разработчиков.

Если у вас уже установлена предыдущая версия Rust, то обновиться до Rust 1.16 очень легко:

$ rustup update stable

Самое крупное нововведение в Rust 1.16 — новая субкоманда cargo check направленная на ускорение процесса разработки.

( читать дальше... )

>>> Подробности

 ,

mersinvald
()

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

Форум — Admin

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

 , ,

mersinvald
()

Arch, Makepkg, missing package name

Форум — Linux-install

Свежий инсталл арча, при установке 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
()

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

Форум — Development

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

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

 , , , ,

mersinvald
()

Первый Live CD Redox OS

Новости — Open Source
Группа Open Source

Доступен первый тестовый образ Live CD Redox OS — операционной системы, написанной на Rust.

( читать дальше... )

>>> Исходный код

>>> livedisk.iso

>>> Подробности

 , ,

mersinvald
()

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

Форум — Development

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

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

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

 , ,

mersinvald
()

Rust compiler plugins

Форум — Development

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

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

 , ,

mersinvald
()

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

Форум — Desktop

Пытаюсь заставить работать 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
()

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

Форум — Desktop

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

 , , ,

mersinvald
()

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

Форум — Development

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

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

 ,

mersinvald
()

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

Форум — Talks

Написал скриптик, который, с помощью 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

Форум — Admin

Сабж.

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

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

Как лучше?

Gentoo GNU/Linux

 , ,

mersinvald
()

Привычки и Rust

Форум — Development

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

while(k--) {
   ...
}

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

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

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

 , ,

mersinvald
()

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

Форум — Development

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

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
()

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