LINUX.ORG.RU

Избранные сообщения Worron

Как сделать годную тему подсветки синтаксиса самому?

 

Такое дело. Хочу хорошую цветовую тему для емакса. Перебрал кучу готовых, но все не по душе мне. Остаётся вариант делать самому. Но как? Простым экспериментированием не получается - слишком уж много вариантов нужно перебрать, и не очевидно сразу какой цвет с каким нормально смотрится, а какой нет. Нужен научный подход, в общем. Стал гуглить, нашёл только туториал на w3schools https://www.w3schools.com/colors/default.asp

Там есть пять подходов для определения базовых цветов темы (монохромный, аналоги, противоположные, triadic, compound). Но совершенно не раскрывается какой из них правильный, а какой нет. Хотя казалось бы, блин, методы аналогичных цветов и противоположных в корне отличаются!

В общем, посоветуйте как научиться понимать, сочетаются ли цвета друг с другом или не сочетаются. За ссылки на годные статьи благодарен.

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

Перемещено shell-script из talks

provaton
()

red hat virtio scsi disk device windows guest

 , ,

Привет ЛОР! Прошу поделитесь опытом, как у вас работает Windows 10 в quemu/kvm.
Есть у меня lvm том. Устанавливаю туда Windows 10. Драйвер диска выбираю virtio. Windows устанавливается, драйвер работает, диск работает.
Но по впечатлениям, работает медленнее, чем драйвер sata.
Том lvm на ssd диске.

SergeyF
()

Чем сейчас модно, молодёжно энергосбережением ноута управлять?

 , , , ,

Собственно сабж. В основных репах Arch есть TLP. В AUR валяется Laptop Mode Tools. Мне нужно чтобы как для домохозяйки - вытащил вилку из розетки и оно само там энергосберегается. Я не хочу руками в TLP переключать режимы. Хочу чтобы мой гномоарч работал на меня, а не я на него. Посоветуйте или man'ами покидайтесь хотя бы.

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

Promusik
()

Отключение всех заплаток ядра разом (Meltdown, Spectre, L1TF, MDS)

 , , , ,

Может кому интересно. В актуальные ядра (5.1.2, 5.0.16, 4.19.43, 4.14.119, 4.9.176) добавили параметр для отключения всех заплаток разом.

mitigations=off

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

Kron4ek
()

Виртуализация на десктопе истории узбехов...

 , , ,

в студию.

Товарищ @Zhbert уже делился, хотелось бы больше историй.

pon4ik
()

python запуск команды в терминале.

 , , ,

Решил я переписать для тренировки и изучения питона кучу баш скриптов в питон.

И есть у меня одна проблема. Очень часто в моих баш скриптах есть команды терминала. И они настолько разнообразные, что никакого единого подхода питоном к ним нет. А зачастую и вообще можно только запустить bash код из Питона.

В связи с этим я решил, что почти все команды буду запускать саб процессом из питона.

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

os.system - не отлавливает ошибки subprocess.check_output - не тоже не отдает то ли ошибку,то ли вывод.

Единственное, что более менее работает это

p = Popen(command)
p = Popen(cmd, stdout=subprocess.PIPE,stderr=PIPE,shell=True,
		universal_newlines=True)
	output, error = p.communicate()

но и тут проблемы.

Если я делаю return, то не вижу вывода и должен делать x=function_name(cmd) print(x)

А если я делаю print , то не могу засунуть output в переменную.

В результате у меня родилась уродливая по моему мнению функция, в которую помимо команды я вынужден запихивать метод, корым она мне будет отдавать stdout.

вот она:

def run_command(cmd,output="print",exit_on_error=False):
	p = Popen(cmd, stdout=subprocess.PIPE,stderr=PIPE,shell=True,
		universal_newlines=True)
	o, e = p.communicate()
	if p.returncode != 0:
		if output == "print" : print("%s%s" % (o, e))
		if exit_on_error:
			print("Error. Exit script")
			quit()
		if output == "return": return("%s%s" % (o, e))
	else:
		if output == "return": return("%s%s" % (o, e))
		print("%s%s" % (o, e))

И если я хочу вывод на экран, то

cmd='команда'
run_command(cmd,"print")

А если я хочу вывод в переменную, то

cmd='команда'
x=run_command(cmd,"return")

В если я хочу выйти из скрипта при ошибке, то

run_command(cmd, "print", True)

Тогда как в баше, я получаю вывод в переменную или на экран в зависимости от того просто я запуская команды или запускаю ее в переменную.

Например:

last_remote=$(ssh $backup_ip "/sbin/zfs list -t snapshot -o name | grep "$remote_dataset""@""$type" | sort -r | head -1")

или просто 

$(ssh $backup_ip "/sbin/zfs list -t snapshot -o name | grep "$remote_dataset""@""$type" | sort -r | head -1")

И не важно вернется команда с ошибкой или нет, я могу отловить и статус и текст и сделать это очень просто.

Вопрос, вот эта моя уродливая функция: так все мучаются? или есть нормальное решение?

constin
()

Объясните как работать с Docker

 ,

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

Мой стэк — Node.js/Express/TypeScript, MongoDB, RabbitMQ, nginx. Я бы вручную установил ОС, весь стэк, конфигурацию, и общую папку (чтобы не копировать файлы). При необходимости эмулировать продакшн — создал бы ещё один контейнер. Если бы у меня была macOS, то я бы использовал VirtualBox.

Но я до сих пор не понял что мне делать в Docker. Конкретно:

  • Ой. Мой список вопросов закончился :)

Отвеченные вопросы:

  • Мой главный вопрос — что мне вообще делать с вашим докером? Работать как с виртуалкой?
    • Ответ: 1
  • Мне нужно все этапы установки, которые я выполнял при ручном создании контейнера, перенести в Dockerfile/docker-compose?
  • Зачем нужен DockerHub, если можно выбрать ОС и самому установить нужный софт?
    • Ответ: нужно понимать в чём смысл докера, тогда эти вопросы отпадают. Во многих гайдах упускают тот момент, что вы не должны создать единый образ, который содержит всё, а должны все процессы поместить в отдельные контейнеры. Например, приложение на Node.js и сервер MongoDB должны быть в разных контейнерах. В Docker это называется сервисами
  • Я в некоторых Dockerfile видел apt-install — разве это уже не означает, что образ не иммутабелен? Ведь изменится версия библиотеки в репах — изменится и в твоём образе, разве нет?
    • Ответ: 1
  • Я вижу как в очередном Dockerfile пишут FROM php:alpine-666 и чуть ниже RUN apt-install .... Это значит, что используемый образ из DockerHub — Ubuntu-based?
    • Ответ: образы в DockerHub действительно базируются на какой-то ОС. Причём не всегда очевидно на какой.

Спасибо!

elonmusk
()

Что использовать для сохранения всяческих мануалов?

 

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

Что нужно: какая-нибудь программа или сервис, в которую можно сохранять мануалы. Не просто ссылки, т.к. ссылки порой умирают. И желательно не только текст, т.к., хоть и не часто, но бывает нужно с изображениями. Т.е. хотелось бы хранить копию HTML. Ну, можно, конечно просто завести директорию и браузером сохранять копии, но хотелось что-то более удобное, в виде какой-нибудь программы, где будет список с описаниями, а внутри собственно содержимое.

Лучше если это будет не сервис, а программа (т.к. сервисы не вечны), но при неимении лучшего, можно и сервис. Если программа, то обязательно кроссплатформа, т.к. не всегда за одним и тем же компом. Желательно, чтобы базу можно было хранить одновременно на локалхосте и в облаке, как это, например у KeePass

Qwentor
()

Primus-vk — Поддержка Vulkan для Optimus

 , ,

Группа Hardware and Drivers

Неким felixdoerre был разработан primus-vk — прослойки для запуска Vulkan-приложений при использовании Bumblebee для работы с дискретной видеокартой NVidia на ноутбуках.

Что это и зачем?

Если в вашем ноутбуке две видеокарты, одна из которых nVidia с проприетарным драйвером — для запуска приложений на дискретной видеокарте используется Bumblebee. К сожалению, Vulkan-приложения (в т.ч. DXVK) не работают с Bumblebee, а его разработка прекращена, поэтому единственным вариантом запустить Vulkan-приложение на дискретной видеокарте был запуск отдельного X-сервера на nVidia, что было не совсем удобно (необходимость переключения в другой VT и запуска отдельной графической сессии). С помощью primus-vk можно запустить Vulkan-приложения, используя optirun, без необходимости запуска отдельного X-сервера.

Производительность

В последнем релизе производительность приблизилась к той, что можно получить запуская отдельный X-сервер на дискретной видеокарте.

Установка и запуск

Инструкция по сборке и установке доступна хдесь. Для запуска Vulkan-приложения необходимо установить переменную окружения ENABLE_PRIMUS_LAYER=1 и PRIMUS_VK_MULTITHREADING=1. К примеру, для запуска игры в Wine (используя DXVK):

ENABLE_PRIMUS_LAYER=1 PRIMUS_VK_MULTITHREADING=1 optirun wine Game.exe

>>> Репозиторий на Github (github.com)

annerleen
()

Дешёвый VPS под OpenVPN

 , , ,

Привет всем. Тема наверно уже сотню раз обсосана, но тем не менее. Нужен самый дешманский VPS какой только в принципе возможен (100 рублей/месяц было бы классно), на котором можно поднять VPN без последствий (бан от хостера). Пока в качестве вариантов рассматриваю Arubacloud, но слышал что там нужно отсылать скан паспорта, чтобы не платить лишнее, и Айхор Хостинг. В общем, жду совета.

Sunderland93
()

Intel GVT-g

 , , ,

Имеется ноут на Intel i5 6440HQ c HD530, хотел бы пощупать виртуализацию gvt-g для запуска гостевой windows 7 с нормальным ускорением для работы с графикой. Обещают что видяха работает почти нативно

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

Где взять kvmgt? Насчет поддержки в ядре, то точно видел эти модуля когда последний раз собирал гентушное ядро. Но неужели в поставляемом арчем и гентой QEMU его нет и единственный выход это грязно компилять из исхдников и ставить через make install?

d-7
()

Как создать GTK3 тему?

 ,

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

Короче, придется делать самому. Где найти руководство и инструменты для создания своих GTK3 тем?

Но приветствуются любые ссылки на готовые темы. Основной критерий — контрастный текст.

Vsevolod-linuxoid
()

Прорекламирую неплохой VPS

 

liteserver.nl держу там VPS-ку для VPN и тор-ноду, скорость хорошая, всё вроде работает. Суть в том, что там есть довольно дешёвый тариф на 256M, убунте хватает. С чернопятничной скидкой (на главной странице в шапке есть код) и годовой проплатой вышло €13,65 или €1.14 в месяц. На мой взгляд довольно хорошая цена, в своё время искал такой сервер.

Legioner
()

Способы указания версии ПО

 , , ,

Доброго времени суток!

Есть проект, написанный на C++ с использованием системы контроля версий Git и системы сборки CMake.

Я хочу сделать так, чтобы в конечный исполняемый файл «вшивалась» версия этого проекта. При этом я не хочу следить за номером версии.

Принимая во внимание тот факт, что версия в наиболее распространённом случае состоит из набора «подверсий» (major, minor, build...), я бы хотел иметь возможность указывать, какую часть версии инкрементировать.

Я знаю, что в Git используются тэги для указания меток версии. В CMake же есть возможность указания макросов через конфигурационные файлы *.in.

Первый способ не обеспечит мне «вшивание» версии в ПО (я не смогу сделать что-то вроде «myProg --version»). В то же время для использования конфиг файлов Cmake-а я буду вынужден перед изменением версии залазить в CMakeLists.txt и править числа прямо там, что, как по мне, выглядит очень грубо.

Так вот вопрос мой в том, есть ли уже какие-либо готовые решения указания версии ПО?

Спасибо!

AccumPlus
()

Скрипт для выгрузки всех скриншотов linux.org.ru и описания. Локально.

 , , , ,

Написал на досуге скрипт на python3 для выгрузки локально всех скриншотов галлереи лора с 1999 года.
Решил просто замутить галлерею отдельную с историей таких скриншотов, вдохновился лором, и решил нарабатывать навыки написания кода на python (пишу 2 неделю на нем), до этого писал 6 лет на php.
Весь код открыт, находится на github:

https://github.com/foozzi/linux.org.ru-gallery

Буду рад помощи и вашим доработкам скрипта, вскоре запущу (если администрация разрешит), ресурс с галереей этих скриншотов онлайн.

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

noname_user
()

Накидайте жёсткого мелодичного металла

 ,

Чего нибудь по типу такого:

https://www.youtube.com/watch?v=Pa9mCDo6M8s
https://www.youtube.com/watch?v=qnLunQEcMn0
https://www.youtube.com/watch?v=zWgYk3QQAQA

Гитарные запилы по типу тех, что в конце Arch Enemy - Nemesis приветствуются.

najlus
()

Немного визуализации на desktop

 

Давно хотел себе визуализацию спектра играющей музыки на десктопе, нашел сишную либу, которая коннектится к пульсе и высчитывает FFT. Ну и написать рендерер было совсем изи, однако плавность анимации по сравнению с той же CAVA намного хуже. (если что, я не против пулл-реквестов)

Ну и только сегодня запилил пакет для аура spectrumyzer, а для всех остальных есть build

видео демка

сорс

HaCk3D
()

Neural Doodle превращает рисунки из Paint в художественные шедевры с помощью нейросетей

 , ,

Группа Open Source

Австрийский программист Alex J. Champandard создал программу, превращающую рисунки, нарисованные в графическом редакторе Paint, в художественные шедевры с помощью нейросетей. Анализируя алгоритмы рисования многих известных художников, программа обрабатывает рисунок, нарисованный пользователем, и стилизует его. На выходе получаются красивые картины.

>>> Подробности (github.com)

karton1
()

Релиз Emonoda 2.0.9

 , , ,

Группа Open Source

Emonoda — это набор программ для организации и управления коллекцией торрентов. Он поможет вам следить за актуальностью раздач, автоматически обновляя торрент-файлы с популярных в рунете трекеров, а также вычищать старые данные, просматривать мета-информацию и делать множество других вещей. В набор входят такие команды:

  • emupdate — следит за раздачами, используя спецплагины для трекеров; обновляет торрент-файлы при добавлении новых серий или перезаливке раздачи; интегрируется с основными линуксовыми клиентами.
  • emfile — позволяет читать метаданные торрент-файлов и выдает их в человекочитаемом, либо удобном для скриптов формате.
  • emdiff — показывает разницу содержимого двух торрент-файлов в виде диффа.
  • emfind — служит для выполнения различных поисковых запросов, например для поиска в каталоге с данными файлов, не принадлежащих ни одному торренту, зарегистрированному в клиенте.
  • emload — Загружает торрент, создавая полный путь для данных и размещая в указанных местах симлинки.
  • emrm — Удаляет торрент из клиента.

Кроме того, Emonoda включает специализированные скрипты для rTorrent, позволяющие реализовать групповое управление трекерами (включение-отключения для раздач) и отправки статистики в collectd.

Программы написаны на Python 3 (требуется версия >= 3.4) и могут быть установлены из PIP или AUR.

( Список трекеров и клиентов под катом )

>>> Подробности (github.com)

liksys
()

Удалить то, что было поставленно через python setup.py install

 , ,

День добрый, ЛОР. Нужно было мне скробблер для рокбокса с CLI, нашел на офф вики scrobblethis, ок, скачал, поставил как советует автор через

python setup.py install
Но чертос-два эта штука не работает, находил похожие сообщения на ланчпаде, но ответа там не было, да и судя по последнему обновлению проект давно заброшен. Но суть: Как мне теперь вынести из системы то, что было поставленно таким вот способом?

Jefail
()