LINUX.ORG.RU

Сообщения KennyMinigun

 

Как ограничить аппетит clangbackend

Есть очень жирный проект на С++ который открыт в Qt Creator в котором включен «Clang Code Model». Проблема состоит в том, что временами процесс clangbackend уходит в себя и начинает неистово жрать время CPU. В результате чего вся система стает раком.

Понятно, что clangbackend так себя ведет не от хорошего кода (в проекте). Однако у меня вопрос: как (на уровне системы?) ограничить время CPU уделяемое процессу clangbackend (и, возможно, qtcreator)?

Багрепорт: https://bugreports.qt.io/browse/QTCREATORBUG-11640

 , ,

KennyMinigun
()

Поясните что там мутят Intel, AMD и NVIDIA

Последним временем новости идут вразнобой:

https://www.cnbc.com/amp/2017/11/09/amd-nvidia-shares-drop-after-intel-hires-...

https://www.theverge.com/platform/amp/2017/11/6/16612048/intel-amd-partnershi...

Intel невзлюбил NVIDIA пуще тех, кто раньше клепал «подделки» на 8086? Intel вообще никого не любит? AMD заплатило Intel? (А может и заодно NVIDIA?)

 , ,

KennyMinigun
()

Конфигурация Git в BitBucket

Хочу добавить конфигурацию для внешнего хука на BitBucket. Т.е. что-то типа такого:

git config --local my-hook.param1 value1
git config --local my-hook.param2 value2

В интернетах и на wiki Atlassian только какой-то булшит о их нежном и шелковистом GUI. Однако как изменить файл config внутри репозитория — я не нашел.

Кто-нибудь знает как провернуть что-то такое?

 , ,

KennyMinigun
()

KDE 21 годик

14 октября 1996 появилось на свет Kool Desktop Environment. Теперь ему 21 год и в Штатах может уже голосовать, пить, курить, ругаться матом и заниматься сексом.

 ,

KennyMinigun
()

Установка openjdk-8-jre:i386 на Ubuntu Xenial (16.04) amd64

Проблема при установке данного пакета такова, что apt не хочет разруливать зависимости автоматически:

$ sudo apt install openjdk-8-jre:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 openjdk-8-jre:i386 : Depends: libgtk2.0-0:i386 (>= 2.14) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Если попытаться установить необходимые пакеты вручную, то установка libharfbuzz0b:i386 предлагает снести всю мою Plasma 5.11 (ибо «ненужно»). Конечно, я понимаю, что оно хочет мне заменить мою libharfbuzz0b:amd64 и поэтому зависимые пакеты агряться.

Подскажите пожалуйста что делать? Как установить 32-битную JRE (c GUI обязательно)?

 , , ,

KennyMinigun
()

Он. Прямо уже сейчас

Как было тонко подмечено Joe Belifore (вице-президент отдела Microsoft по Windows Mobile).

https://twitter.com/joebelfiore/status/917071857370595328

We have tried VERY HARD to incent app devs. Paid money.. wrote apps 4 them.. but volume of users is too low for most companies to invest. ☹️

Так что в пределах данного раздела ЛОР вендекапец уже настал. Официально.

 , , ,

KennyMinigun
()

Быстрый ассоциативный массив для чтения

Задача сделать констаный асоциативный массив строка -> число для С++. Т.е. после создания он изменяться не будет.

Далее

using обьект = "констаный асоциативный массив строка -> число";

Условия:

  • Обьект создается только один раз
  • Можно чтоб обьект был инициализирован до вызова main
  • Ключи (строки) и значения (числа) известны уже на этапе компиляции и не изменяются с этого момента.
  • Ключи как и значения уникальны (т.е. значения не повторяются, а одному ключу соответствует только одно значение)
  • На 90% ключей состоят ровно из 3 символов: большие буквы A-Z и/или цифры 0-9. Остальные 10% ключей не превышают в длинне 15 символов (однако могут иметь также и маленькие буквы a-z).
  • Ключи можно вычислять из строки, главное чтоб выполнялось:
    f(x) != f(y) для (x != y), (x, y) на всем множестве ключей
    f(x) == f(x) для x на всем множестве ключей
    
  • Приоритетом является быстрый доступ к значению по точному ключу
  • Требуется механизм проверки присутствует ли ключ (т.е. входные данные не всегда валидны)
  • Необходима возможность добавления новых пар ключ-значение в последующих компиляциях (ну, чтоб по крайней мере это не было адски сложно)
  • Стандарт C++14 (и можно использовать фичи из C++17)

Желательно (но не обязательно):

  • Сборка обьекта в compile-time (напр. constexpr)
  • Возможность итерации по всем ключам обьекта
  • Чтоб значения не были слишком сильно разбросаны

Чем можно пренебречь:

  • Размером конечного обьекта (может быть ну очень большим)
  • Временем компиляции (т.е. может быть адская шаблоно-лапша, главное чтоб соответствовало условиям выше)

Сейчас, чтоб сильно не заморачиватся, используется

using namespace std::string_view_literals;

const std::unordered_map<std::string_view, int> map{
    { "key"sv, 42 },
    // ...
};

Однако появилось время покопаться, по этому прошу подсказать, как можно улучшить?

Т.е. было бы прикольно даже иметь хеш-функцию f(str) -> int которая бы гарантировала отсутствие коллизий и не слишком разбросанные значения.

 ,

KennyMinigun
()

Amarok все?

Пока цитата из третього источника, но: https://wiki.ubuntu.com/ArtfulAardvark/Beta2/Kubuntu

Cantata Qt5 music player replaces the unmaintained KDE4 based Amarok as our default for this beta. Please test this change. This is a Music Player Daemon frontend, so configuration & usage may be unfamiliar. Most users will want to select the 'basic single user setup' in the first run wizard.

То есть Qt4 не поддерживается, а Qt5 еще не готова? Будет ди вообще готова?

 , ,

KennyMinigun
()

Git для (не)парнокопытных

С котиками и ня. Вот: https://imgur.com/a/fNTbq

Сами решайте что с єтим делать теперь...

 , ,

KennyMinigun
()

Стандарт C++17 официально сегодня

Сабж. Новость с фейсбука: https://m.facebook.com/story.php?story_fbid=10154959958797913&id=27591902912

Ищу пруфлинки

 

KennyMinigun
()

Способ на vptr data race

Есть data race прям как в примере тут: https://github.com/google/sanitizers/wiki/ThreadSanitizerPopularDataRaces#dat...

<Для Ъ>:

struct Base {
    virtual ~Base() { 
        unregister(this); // внутри сложный код с синхронизацией
    }

    virtual void someMethod() = 0;
};

struct Derived : public Base {
    ~Derived() { simpleDestruction(); }
    void someMethod() override;
};

Проблема такова, что деструктор и someMethod() могут быть вызваны с разных потоков. А используемые в проекте реализации GCC/Clang меняют vptr при вызове родительских деструкторов. Соотв. если во время синхронизации в ~Base() будет вызван someMethod() получится pure virtual method call. (так как используемые компиляторы GCC).

</Для Ъ>

Было бы дешево и сердито решить проблему переносом синхронизации в деструктор дочернего класса, однако в реальности ситуация такова, что существует дерево из 6 потомков класса Base:

Base_______________
|        \         \
Derived1  Derived2  Derived3
|         |
Derived11 Derived21
|
Derived111
И каждый из потомков может использоваться самостоятельно. Т.е. если реальный тип обьекта Derived111, то синхронизация должна быть в ~Derived111 (и не происходить ни в ~Derived11, ни в Derived1, ни в ~Base). Однако если реальный тип — Derived11, то синхронизация должна происходить только в ~Derived11.

Подскажите пожалуйста как поправить проблему? Может существует какой-нибудь паттерн для такого?

 bad design, ,

KennyMinigun
()

Кто-нибудь вылечил bootloop на Nexus?

Короче, в один прекрасный день мой Nexus 5X завис и не захотел загружаться дальше лого Google.

Последовав инструкциям отсюда, я вынял материнскую плату и тщательно ее прогрел феном для волос (грел около 45 секунд).

В результате вышеприведённых манипуляций мне удалось загрузить девайс до ОС, включить USB debugging и отключить OEM Locking.

После чего я последовал инструкциям с xda-developers и прошил приведённый там образ (N2G47Z_4Cores.img). Опциональные действия не выполнял. Все время держал телефон в разобранном состоянии (с прямым доступом к мат. плате) и регулярно его подогревал во время процесса. Все прошилось без проблем (насколько можно было судить с выхлопа fastboot). Выключил телефон, собрал корпус.

Ну и конечно же, после окончательной сборки корпуса у меня на столе лежал всё такой же кирпичик...

P.S. Не отходя от кассы, прошу, посоветуйте подобный телефон на замену: чтоб около 5" и без (поменьше) bloatware в стоковой прошивке.

P.S.S. *В горечи пошёл накатывть Android 7 на старый, добрый и рабочий Nexus 4*

 , , , ,

KennyMinigun
()

Ставил ли кто-нибудь софт Neon поверх Kubuntu?

Вот и закончилось мое приключение с KDE Neon: просто не могу сидеть на древнем софте. В связи с чем вопрос: кто-нибудь обновлял KDE из репо neon на новой Kubuntu (скажем Zesty, 17.04)?

Если да, то каким способом? Dist-upgrade с дистрибутива Neon или же добавление репо neon в уже установленную Kubuntu?

// Просто ищу план Б на случай если Kubuntu снова решит слоупочить с обновлением KDE

 , ,

KennyMinigun
()

Gedit все

Сабж. Известный каждому линуксоиду редактор текста «no longer maintained».

http://www.omgubuntu.co.uk/2017/07/gedit-text-editor-unmaintained

 ,

KennyMinigun
()

Невозможно поменять выбор в голосованиях

Проблема уже недавно поднималась.

Суть такова: после отдания голоса (голосов) можно нажать на ссылку «проголосовать» и выставить голос (голоса) по другому, но ничего не после нажатия кнопки «проголосовать».

Возможные способы ремонта:

  • Не показывать ссылку «Проголосовать» после отдания голосов (и добавить предупреждение о невозможности смены голосов на страничку голосования)
  • Разрешить изменять выбор в голосованиях (и чтоб это работало)

 , ,

KennyMinigun
()

Установка несколько ОС (Linux) на одну ФС

По мотивам Соседнего треда. Задался вопросом, а можно ли установить (сохранив работоспособность) несколько дистрибутивов Linux на один раздел c ФС.

Т.е. у меня в голове уже нарисовался такой план:

  • Раздел с (например) EXT4 имеет такую структуру:
    /
      -linux1/
        - bin/
        - lib/
        - usr/
        - var/
        - ...
      -linux2/
        - bin/
        - lib/
        - usr/
        - var/
        - ...
    
  • Саму установку линуксов произвести довольно просто (процедура наподобии установки stage3 в Gentoo)
  • Монтирование корневой директории (напр на устройстве /dev/sda1 директория linux1) можно осуществить с помощью хитрого скрипта в initrd
  • /boot наверное придется вынести на отдельный раздел
  • В /boot держать по ядру для каждого установленного дистрибутива с соответствующим initrd (загрузчик должен подхватить).

Предлагайте свои способы реализации. Интересно.

 , ,

KennyMinigun
()

Unity 8 таки форкнули

Не знаю, хорошо ли это или плохо, но сабж.

Unity 8 под именем «Yunit» теперь доступна для установки под *ubuntu 16.04 LTS.

wget -qO - https://archive.yunit.io/yunit.gpg.key | sudo apt-key add
  echo 'deb [arch=amd64] http://archive.yunit.io/ubuntu/ xenial main' | sudo tee /etc/apt/sources.list.d/yunit.list
  echo 'deb-src http://archive.yunit.io/ubuntu/ xenial main' | sudo tee --append /etc/apt/sources.list.d/yunit.list
  sudo apt update
  sudo apt upgrade
  sudo apt install yunit-desktop

Взято отсюда: http://news.softpedia.com/news/unity-8-fork-yunit-now-available-as-an-overlay...

Официальная страница: https://yunit.io

 , , ,

KennyMinigun
()

SRAM Gx Eagle (1x12)

Вот SRAM выпустили Eagle (1x12) версию группы Gx: https://www.sram.com/sram/mountain/family/gx-eagle (прежде Eagle был доступен только в XX1 и XO1 — «топовых» группах)

Т.е. тенденция миграции технологий со старших моделей в младшие сработала. И теперь 1x12 стал более доступным. Интересно, какая будет ответка Shimano, сделают ли они (наконец) касеты для XD драйвера?

P.S. Я помню кто-то с ЛОРа твердил что x12 на шоссейных велосипедах «нинужын и нибудит» в одной из давних тем про велосипеды. Так вот, ставлю 1000 интернет очков, что через 1.5-2 года x12 будет и на этих ваших шосейниках.

P.P.S. А дисковые гидравлические тормоза уже набирают обороты на «гравийниках» (и появляются в професиональном пелетоне).

 , ,

KennyMinigun
()

Саундтрек Dying Light

Как-то меня случайно перенаправило на саундтрек к данной игре на youtube. Остался доволен после прослушивания. Напомнило саундтреки к Half-Life и Black Mesa. Поляки — молодцы, хорошая игра и саундтрек. Рекомендую любителям саундтреков из игр.

Целый альбом: https://www.youtube.com/watch?v=9iDYnAireiw (так же рекомендую к прослушиванию саундтреки с дополнений и DLC).

Для поиска: Paweł Błaszczak - Dying Light

 , ,

KennyMinigun
()

Подскажите PPA со свежим PulseAudio для Ubuntu Xenial

Имеется KDE Neon на базе Ubuntu Xenial (16.04). Подскажите PPA со свежими версиями PulseAudio для дистрибутива.

// Ну, или на крайняк годную инструкцию по самосборке.

 , , ,

KennyMinigun
()

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