LINUX.ORG.RU

Сообщения RazrFalcon

 

Про статическую типизацию и безопасный доступ к памяти

Форум — Development

 , , ,

RazrFalcon
()

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

Форум — Talks

https://mail.gnome.org/archives/gtk-devel-list/2019-February/msg00000.html

Так и остаёмся с Г написанном на Г.

 ,

RazrFalcon
()

Зачем люди форкают/лайкают 100500 репозиториев на гитхабе?

Форум — Talks

На днях наткнулся на кадра: https://github.com/modulexcite

Repositories 11.2k, Stars 9.8k

Зачем? И таких много.

 ,

RazrFalcon
()

Ищу аналог union/enum/adt для Python/Go

Форум — Development

Интересуют не либы, а идиоматическое решение задачи вида:

Rust:

enum Data {
    Number(u32),
    String(String),
}

let mut items = Vec::new();
items.push(Data::Number(5));
items.push(Data::String("text".to_string()));

for item in items {
    match item {
        Data::Number(n) => println!("Number {}", n),
        Data::String(ref s) => println!("String {}", s),
    }
}

C++:

std::vector<std::variant<int, std::string>> items;
items.push_back(5);
items.push_back("text");

for (const auto &item : items) {
    if (const auto n = std::get_if<int>(&item)) {
        std::cout << "Number " << *n << std::endl;
    } else if (const auto &s = std::get_if<std::string>(&item)) {
        std::cout << "String " << *s << std::endl;
    }
}

Как это повторить на python и go?

То есть нужно заполнить вектор/список/массив объектами разных типов (желательно с гарантиями) и затем пробежаться по ним, забирая значение каждого типа.

 , ,

RazrFalcon
()

media-libs/x265 не узнаёт проц

Форум — Desktop

Решил запустить у себя тест из этой темы, но получил:

x265 [info]: HEVC encoder version 2.8
x265 [info]: build info [Linux][GCC 7.3.0][64 bit][noasm] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: none!

При этом на арче:

x265 [info]: HEVC encoder version 2.9
x265 [info]: build info [Linux][GCC 8.2.1][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX

Что не так?

У media-libs/x265 нет CPU-флагов. У media-video/ffmpeg всё включено. Флага asm не нашёл.

В /etc/portage/make.conf

CFLAGS="-march=ivybridge -O2 -s"
CPU_FLAGS_X86="aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

UPD: https://bugs.gentoo.org/676270

 

RazrFalcon
()

Нормальные превью SVG файлов в Dolphin

Галерея — Скриншоты

Написал плагин для Dolphin, который использует resvg вместо QtSvg для отрисовки превьюшек.

На скрине:

  • gentoo stable с минималистичным KDE.
  • Breeze Dark, Noto Sans. Всё родное.
  • Нижняя панель скрывается.
  • Заголовки окон, менюбары, тулбары скрыты.
  • Списка задач (taskbar) нет. Использую стандартный Alt+Tab или Present Windows (Ctrl+F10 или нижний левый угол).

Для сравнения превьюшки с QtSvg: https://imgur.com/a/B7xdSHL / https://pic4a.ru/inUe/

PS: Скрин в жыпег, ибо обоина очень «шумная». В PNG аж 10МБ. Сама обоина

>>> Просмотр (3840x2160, 2707 Kb)

 , , ,

RazrFalcon
()

resvg 0.5 — библиотека отрисовки SVG

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

resvg — это библиотека для отрисовки SVG, прямыми аналогами которой являются librsvg и QtSvg. Но в отличие от них, resvg поддерживает отрисовку с помощью нескольких бэкендов (Qt и cairo) и обеспечивает более полную поддержку стандарта. Также resvg является модульным, что позволяет использовать лишь нужные функции.

Основные изменения:

  • Это bugfix релиз, поэтому в нём множество исправлений.
  • Добавлена поддержка marker.
  • Добавлена частичная поддержка baseline-shift, letter-spacing и word-spacing.
  • Добавлены плагины для использования resvg в качестве генератора превью в Dolphin и в Windows Explorer.
  • Добавлено 143 новых теста. Общее количество достигло 958-и.

Результаты тестирования. Сравнительная таблица. Список нереализованных возможностей.

Так как marker был успешно реализован, до полной поддержки static SVG осталось реализовать textPath, Unicode BIDI (left-to-right, top-to-bottom, glyph orientation и т.д.) и несколько фильтров.

>>> GitHub

 , ,

RazrFalcon
()

Нужна ли media-libs/mesa с nvidia?

Форум — Desktop

Если я правильно распарсил, то сейчас mesa нужна для dev-qt/qtgui (+egl) и x11-base/xorg-server (+glamor).

Если я правильно понял, то это жёсткие зависимости:

dev-qt/qtwayland-5.11.1 (media-libs/mesa[egl])
kde-frameworks/kwayland-5.52.0 (media-libs/mesa[egl])
kde-plasma/kwin-5.14.3-r1 (media-libs/mesa[egl,gbm,gles2?,wayland])

Можно её безболезненно выпилить?

PS: есть какой-то утилита, которая бы показывала зависимости нормально, а не как equery d?

 , ,

RazrFalcon
()

Qt и self-signed certificate

Форум — Development

Собственно имеем https-сервер с self-signed certificate, который блокирует все не подписанные запросы посредством SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT. Проблема в том, что я не могу подключится из Qt к такому серверу. Со стандартными настройками openssl достаточно указать путь к сертификату

QSslSocket::addDefaultCaCertificates("key.pem");
Но как только добавляем флаги выше - Qt не может подключится.

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

Кто-то сталкивался с таким?

PS: Через curl тоже не получается, так что подозреваю что какой-то косяк с ключами или настройками openssl.

 , , ,

RazrFalcon
()

resvg 0.4 — библиотека отрисовки SVG

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

resvg — это библиотека для отрисовки SVG, прямыми аналогами которой являются librsvg и QtSvg. Но в отличие от них, resvg поддерживает отрисовку с помощью нескольких бэкендов (Qt и cairo) и обеспечивает более полную поддержку стандарта. Также resvg является модульным, что позволяет использовать лишь нужные функции.

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

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

 , ,

RazrFalcon
()

Не пойму кому нужна dev-libs/vala-common

Форум — Desktop
~> eix -I vala
[U] dev-libs/vala-common
     Available versions:  0.36.13 ~0.36.14 0.36.15
     Installed versions:  0.36.13(01:35:53 PM 05/18/2018)
     Homepage:            https://wiki.gnome.org/Projects/Vala
     Description:         Build infrastructure for packages that use Vala

~> equery d vala-common
 * These packages depend on vala-common:
gnome-base/librsvg-2.40.18 (dev-libs/vala-common)

~> equery u gnome-base/librsvg
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for gnome-base/librsvg-2.40.18:
 U I
 - - introspection : Add support for GObject based introspection
 - - tools         : Build svg viewer tool
 - - vala          : Enable bindings for dev-lang/vala

 

RazrFalcon
()

Пытаюсь переехать на multilib

Форум — Desktop

Понадобился wine, а текущий профиль:

default/linux/amd64/17.0/no-multilib

Поменял на:

default/linux/amd64/17.0

и получаю:

/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/libgcc.a when searching for -lgcc
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lgcc
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/libgcc_s.so.1 when searching for libgcc_s.so.1
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find libgcc_s.so.1
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/libgcc.a when searching for -lgcc
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lgcc
collect2: error: ld returned 1 exit status
 * Failed to compile the ABI test. Broken host glibc?

Ничего толкового нагуглить не удалось.

 

RazrFalcon
()

Kate: откатить цветовую схему

Форум — Desktop

Обновил либы KDE (5.46 -> 5.50) и цветовая схема в Kate (называется KDE) превратилась в дикий ужас.

Это только у меня так и как откатить обратно?

 ,

RazrFalcon
()

get_if для variant как метод класса

Форум — Development

Собственно использую https://github.com/mpark/variant в C++14, single header версию.

Очень неудобно, что фактически все методы - глобальные:

mpark::get_if<State1>(&m_state)
// vs
m_state.get_if<State1>()

Вопрос в том, как добавить в эту либу get_if (и holds_alternative) как методы класса? Только для типов. Взятие по индексу не нужно.

Там внутри такой адок, что я боюсь вообще что-либо трогать. Типа:

template <
        typename Arg,
        typename Decayed = lib::decay_t<Arg>,
        lib::enable_if_t<!std::is_same<Decayed, variant>::value, int> = 0,
        lib::enable_if_t<!detail::is_in_place_index<Decayed>::value, int> = 0,
        lib::enable_if_t<!detail::is_in_place_type<Decayed>::value, int> = 0,
        std::size_t I = detail::best_match<Arg, Ts...>::value,
        typename T = lib::type_pack_element_t<I, Ts...>,
        lib::enable_if_t<std::is_constructible<T, Arg>::value, int> = 0>
    inline constexpr variant(Arg &&arg) noexcept(
        std::is_nothrow_constructible<T, Arg>::value)
        : impl_(in_place_index_t<I>{}, lib::forward<Arg>(arg)) {}

Или проще тупо враппер сделать? Но там тоже тонну шаблонов придётся писать - не осилю.

 

RazrFalcon
()

Бан вальмана

Форум — Linux-org-ru

Игнор - это прекрасно, но почти тыща сообщений за месяц - это ппц. Засрал весь лор.

 

RazrFalcon
()

max_element для всего контейнера

Форум — Development

Не хочу указывать begin/end, а просто контейнер, но не пойму как реализовать враппер, так как max_element возвращает итератор.

const std::vector<int> numbers = { 1, 2, 3 };

// сейчас
std::max_element(numbers.begin(), numbers.end());

// хочу
std::max_element(numbers);
// Откуда взять Iter?
template <typename Iter, typename Container, typename Predicate>
Iter max_element(const Container &c, Predicate p)
{
    return std::max_element(std::begin(c), std::end(c), p);
}

PS: предикат обязателен. В примере я его опустил.

 

RazrFalcon
()

Найти «максимальный» элемент в контейнере по имени поля

Форум — Development

Рабочий пример на расте:

struct Data {
    number: usize,
    letter: char,
}

impl Data {
    fn new(number: usize, letter: char) -> Self {
        Data { number, letter }
    }
}

fn main() {
    let numbers = vec![
        Data::new(1, 'a'),
        Data::new(2, 'b'),
        Data::new(3, 'c'),
    ];
    println!("{:?}", numbers.iter().max_by_key(|v| v.number).map(|v| v.letter)); // Some('c')
}

Как это повторить в C++14?

PS: с tuple пример был бы проще, но для C++ это слишком сложно.

 ,

RazrFalcon
()

Ищу генератор EER диаграмм для (My)Sql

Форум — Development

Картинка для тех, кто не в теме.

Проблема Mysql Workbench в том, что это огромный комбайн на жабке, а значит не нужен.

Нужно:

  • Не GUI.
  • Генерация SVG.
  • Стрелочки должны идти от поля к полю, а не от таблицы к таблице (graphviz отпадает).
  • Возможность задания произвольных связей, а не только по ID reference.

Желательно:

  • Генерация из .sql файла.
  • Генерация из реальной базы.

Нагуглил всякие генераторы, в том числе и поверх graphviz, но они все убогие.

Есть ли какие-то решения или нужно пилить самому?

 , ,

RazrFalcon
()

virtualbox: Permission denied в gentoo

Форум — Desktop

После переустановки генту получаю:

~> virtualbox
/bin/sh: /usr/bin/virtualbox: Permission denied

Что ему не нравится?

Попробовал поменять права - теперь ругается что поменял права...

В гентувики и гугле ничего толкового не нашел.

 ,

RazrFalcon
()

Подсветка синтаксиса конфигов portage в Kate

Форум — Desktop

Сабж.

Для nano недавно добавили - стало удобнее. Хочу и для kate. Может кто-то уже делал? Ничего не нагуглилось.

 , ,

RazrFalcon
()

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