LINUX.ORG.RU

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

помогите пожалуйста запустить X-сервер удалённо из консоли

 , ,

всем привет! у меня есть удалённый сервер (установлен Manjaro Linux), который работает по нескольку дней без доступа к нему человека. Таким образом, иногда нужно выполнять на нём некоторые задачи без возможности попросить живого человека «что-то запустить, закрыть или открыть» поставил на сервер TeamViewer. Если есть способ получше - подскажите пожалуйста. AnyDesk иногда глючит и не могу подключиться, поэтому перешёл на TeamViewer. На данный момент у меня возникла проблема, нужно срочно зайти в графическую оболочку а TeamViewer не может подключиться. При этом я к серверу подключаюсь при помощи ssh

зашёл сейчас в консоль удалённо. Установил tigervnc. на АрчВики нашёл настройку этого сервера, там предлагается создать запись для X11, модуль для systemd и перезагрузить X. Я не могу перезагружать сервер целиком, у него там проблема при старте, без человека он самостоятельно не загрузится, остановившись в самом начале после заставки (нужно нажимать F1 чтобы пошла загрузка дальше). Я могу лишь перезапустить X, либо перезагрузить Линукс в горячем режиме если это возможно. На данный момент хочется перезапустить X. Прочитал что сначала нужно убить текущий X. Нашёл PID c помощью команды

ps aux|grep X

после этого дал команду

kill pid_of_X

теперь стоит задача вновь запустить X-сервер. но когда я даю команду startx он пытается запустить иксы прямо в моей виртуальной удалённой консоли. Как из этой консоли запустить физические иксы чтобы на мониторе сервера снова засветилась картинка? или удалённо это невозможно?

corelinux
()

Мой новогодний подарок всем любителям советского ретро

 , , , ,

У меня в семье есть традиция. Новогоднюю ночь мы проводим, смотря по телевизору какой-нибудь хороший концерт. В моем детстве с этим проблем не было. В 90-е тоже более-менее, хотя качество этих концертов с каждым годом все больше ухудшалось. Сейчас все новогодние концерты превратились в зверинец, как я его называю. Абсолютный отстой с безголосыми певцами, поющими трусами и пошлыми шутками.
Но в 1999 году в новогоднюю ночь по 1-му каналу шел абсолютно потрясающий концерт «Лучшие из лучших», представляющий собой нарезку из «Голубых огоньков» и «Песен года» прошлых лет. Я буквально пару лет назад воссоздал его целиком, склеив по кусочкам из двух оборванных записей, но в целом представляющих полную версию этого концерта. Можете посмотреть его, он есть у меня в контакте.
К чему все это я. Я лучшего новогоднего концерта, пожалуй, за всю жизнь не видел. И очень хотел его продолжения. 20 лет ждал, но продолжение так и не появилось. А в этом году возникла мысль сделать аналогичный концерт, тем более что по телевизору смотреть, как всегда, будет нечего. И я его сделал! И он потрясающий! Поэтому я выкладываю его в общий доступ и дарю его всем ценителям советского ретро. Помимо моей страницы в контакте, вы его можете посмотреть и невозбранно скачать с моего собственного видеохостинга, который я недавно сам себе сделал.

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

Причем тут ЛОР?
Потому что это единственный форум, на котором я обитаю. И я здесь уже почти 11 лет. Я здесь многих знаю и меня многие знают. И поскольку это форум старый, то мы все здесь примерно одного возраста и я уверен, найдутся люди, которые солидарны со мной в любви к этому жанру. Это видео - мой новогодний подарок для них.

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

Где треклист?
Треклист в самом видео в конце, в титрах. Я не хочу его заранее выкладывать. Это будет выглядеть как спойлер. Гораздо интереснее смотреть концерт, не зная изначально, какая песня будет следующей, как будто по телевизору. Разумеется, с современными технологиями видео можно без проблем промотать, но мне кажется, что вы лишите себя этим дополнительного удовольствия.

Будет ли продолжение?
2-я часть однозначно будет, на следующий новый год. Разумеется, если буду жив и если с компом все будет в порядке. :) 3-я часть - не знаю, 50 на 50, оценю и решу по результатам 2-й части. Мне хотелось бы, чтобы она была. 4-я часть - это уже вряд ли. Создавая такие концерты, самое важное - вовремя остановиться и не скатиться в шлак, чтобы все выпуски были не хуже друг друга. Я еще планирую сделать одиночный концерт с военными песнями, посвященный 75-летию Победы.

Rinaldus
()

Посоветуйте в чем вести (внутреннюю) документацию к проекту, багтрекер и т.п.

 

Для «команды» из 2-5 человек.

Платный сервис или нет - не принципиально. Хотя платить теперь не очень удобно (но возможно). Важнее, не банит ли сервис российских пользователей в принципе.

Пару лет как багтрекер пользовали meistertask.com. Но блин… оно какое-то игрушечное совсем. Огромные карточки, в строку влазит лишь несколько слов. Если надо давать развернутое описание, то пол экрана пожрет. Вставлять скрины коряво.

Но и в обратное впадать не хочется. Аналог SAPа (метафорически) точно не нужен.

Чуть кошусь на notion.so. Шаблоны под вики (документацию) и некое OKRs как багтрекер. 5 баксов в месяц за пользователя - приемлемо.

Может прям движок обычной вики взять? Или неудобно?

Хочется чтоб базовое форматирование было не через жопу. Но и не 100500 кнопочек в веб-морде.

dk__
()

Adobe Flash Player в 2022: некромагия и ностальгия

 , ,

Привет ненужнисты, флеш-попобольщики, некромансеры и ностальгирующие по ламповому!

Недавно перебирал свалку своего файлового сервера, и тут наткнулся на шедевры ушедшей эпохи: кровавые Happy Tree Friends, парализующие офисную работу серии казуалок YetiSports, отвратительные серии JoeCartoon, божественный beat'em-up Disorderly от Zeebarf (у них вообще все игры очень самобытные), задротский скилловый Happy Wheel и прочие интересности уже «далёкой молодости»... Честно говоря потратил время, чтобы отыскать чем это можно открыть сейчас, и таки обнаружил в своих закромах Некрономикон мирно упакованный Adobe Flash Player под линь.

Правда проигрывает совсем-совсем не идеально, хоть и нативщина - картинка часто сильно артефачит. Отсюда вопрос: кто-нибудь занимался чёрной магией воспроизведением swf на чём-нибудь современном? Есть рецепт нормального запуска флеша? У меня есть конченный костыльный вариант - взять wine и через него запустить виндовый Adobe Flash Player, который точно запускает всё на отличном уровне. Но... это как-то не комильфо, если есть менее костыльные варианты.

NeTC
()

Live Programming In Modern Smalltalk

 , ,

Всем привет,

Делюсь курсом, который я организовал и провёл для своей команды и коллег. Вероятно кому-то будет интересно.

Цель курса – развить практические навыки работы в среде Смолток, в первую очередь чтобы она не казалась чем-то инопланетным – и чтобы знать, с какой стороны подойти к Смолтоку при самостоятельном обучении.

Материалы | Записи занятий

yoghurt
()

Запустил git.org.ru

 , ,

В связи с последними новостями о возможной блокировке доступа к сервисам хранения кода, например, github было принято решение о переносе всех репозиториев на сервера размещённых на территории РФ.

Я уверен, что с данной задачей столкнулся не только я, но и многие другие и запустил веб-сервис для хостинга IT-проектов и их совместной разработки. Веб-сервис основан на системе контроля версий Git и системы управления репозиториями Gitea.

Серверное оборудование расположено в трёх местах: Москва, Пущино и Новосибирск. Синхронизация данных между ними происходит каждый час.

Веб-сервис будет бесплатным.

https://git.org.ru/

git.org.ru

Перемещено Pinkbyte из development

vanzhiganov
()

Двухмониторная система без иксов (или в tty по ctrl+alt+F2...F6

 , ,

Здравствуйте уважаемые, у меня два монитора, хотелось бы рационально использовать их в текстовой консоли. Тема уже подымалась, но ответа не нашёл.

Сейчас по дефолту изображение дублируется на оба монитора.
Я хочу на выбор:

А) расширения экранов по вертикали - низ 1го монитора склеивается с верхом 2го, чтобы на экран влезало вдвое больше строк логов. И запилить этот режим по дефолту, чтобы при загрузке, когда я вижу прогресс, он использовал эту возможность.

Б) на одном мониторе tty2, на втором - tty3. В одном я подымаю сессию tmux, в другом делаю что-то ещё.

А то каждый раз дублированная картинка уже поднадоела.

hikikomori
()

ищу качественный топор.

 , wi-fi ax

Здравствуйте.
захотелось для десктопа прибрести wi-fi адаптер.
(пока облизывался на новые роутеры, подумалось, а нафига, если не у всех клиентов есть)
понятно, чтоб маленький юсб-свисток с ах имеет мало смысла.
есть варианты с антеннами побольше, совместимые с linux?
п.с. pcie занят, надо usb.

darkenshvein
()

Как вы организуете удаленный доступ к Линукс-десктопу?

 ,

Кто какое решение использует для удалённого доступа к графическим приложениям на своем Линукс-десктопе или сервере?
Допускаются варианты удаленного доступа либо ко всему десктопу, либо к отдельным приложениям.
(Винда или макось рассматривается в только качестве клиента.)

  1. Не использую (мне не нужно) 229 (42%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. ssh -X (X forwarding) 151 (28%)

    *******************************************************************************************************************************************************************************************************************

  3. VNC (TightVNC, TurboVNC, etc) 149 (27%)

    ****************************************************************************************************************************************************************************************************************

  4. AnyDesk 53 (10%)

    **************************************************************************

  5. TeamViewer 52 (10%)

    ************************************************************************

  6. Xrdp 38 (7%)

    *****************************************************

  7. X2go 38 (7%)

    *****************************************************

  8. NoMachine 16 (3%)

    **********************

  9. Не использую (ни один продукт не подходит) 14 (3%)

    *******************

  10. Ваш вариант 14 (3%)

    *******************

  11. Waypipe (Wayland forwarding) 9 (2%)

    ************

  12. Chrome Remote Desktop 5 (1%)

    ******

  13. Xpra 2 (0%)

    **

  14. Parsec 2 (0%)

    **

Всего голосов: 772, всего проголосовавших: 546

rupert
()

golang и/или плюсы с релокацией в Берлин

 , , , ,

Да, даже сейчас. Ищем людей в команду, смежную моей. Язык работы: английский.

Можно указать в referral Aleksei. Могу ответить на любые вопросы, если нужно.

Ну и вообще по мелочам есть вакансии открытые

derlafff
()

Есть ли где-то архив видео Gary Bernhardt/Destroy All Software

 , , ,

Например, не могу нигде найти:
https://www.destroyallsoftware.com/talks/useing-youre-types-good
Чел просто взял и удалил его со своего сайта. Видео было публично, но на ютьюбе оно не выложено, и по итогу остались только рассказы в реддите про «ах, какой хороший был слон».

byko3y
()

Масштабирование RDP сессии на 4K мониторе

 ,

У меня 4K монитор По работе подключаюсь к большому количеству удаленных RDP-серверов В Windows масштабирование 150% подхватывается на уровне клиента MSTSC. Если сервер ниже 2012, то можно воспользоваться «Удаленный рабочий стол (Майкрософт)» из Windows Store, который умеет масштабировать картинку

В Linux подобным функционалом обладает Remmina. В ней можно указать требуемое разрешение и включить масштабирование экрана.

Но Remmina это всего лишь оболочка, которая работает на базе FreeRDP

В родном KDE-шном KRDC так же используется FreeRDP, можно указать разрешение, но нет возможности масштабирования. Также я не нашел ключи масштабирования в командах FreeRDP

Есть ли возможность заставить KRDC масштабировать RDP-сессию на 4K-разрешение?

Max77
()

Документация к языкам программирования

 , , , ,

Всевозможные учебники и книги - это хорошо, но обычно их предлагают купить и часто не совсем дёшево, даже если они описывают базовый уровень. Бесплатным решением, очевидно, является официальная документация. Когда я открыл документацию к python, я был приятно удивлён, что она написана практически как учебник. Для Java вроде бы тоже всё относительно неплохо в этом плане, хотя хотелось бы отдельный оффлайновый pdf.

Мне захотелось скачать себе документацию в подобном виде для C и C++. Зашёл на их официальные сайты, там описание стандарта предлагают получить на сайте ISO за немалые суммы денег. Да и само описание стандарта далеко не для обучения. Хорошо, подумал я, попробую тогда посмотреть документацию к одной из реализаций языка - GCC-CPP, и вижу, что описанное там тоже вовсе не подходит для обучения. Даже описания типов и примеров объявления нет (может плохо искал, но в заголовках не заметил).

Нет, это не тред «подскажите книгу по Сям», таких для начинающих я и сам могу гору насоветовать.

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


Update

C, C++
Online-ресурсы и учебные пособия для начинающих:

Как дополнение: Рабочая версия стандарта C++14 от 19 ноября 2014 г. (с официального сайта стандарта)


Fortran


Python
В дополнение к официальной документациипереводу руководства Python 3.1):


Object Pascal. Lazarus

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

grem
()

Курс лекций по языку Scala (видео)

 ,

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

Посмотреть можно тут: https://www.youtube.com/playlist?list=PLr3MOSSJVvAFnT_qUrcFr1EpZqjEBKiUl

maxcom
()

А есть дистры, в которых из коробки разблокировка LUKS через TPM2?

 , , , ,

Чтобы как BitLocker, только LUKS.

По отдельности есть всякие systemd-cryptenroll, clevis итд., но есть ли дистрибутив, в которым всё это либо устанавливается автоматически, либо хотя бы обновляется без ручного вмешательства, с подписанными ядрами и прочим?

token_polyak
()

Redshift. Добавить бы удобств

 , ,

Redshift запускается при загрузке системы юнитом от юзера. Всё хорошо, но иной раз ночью приспичит погимповать. Захотел автоматизировать отключение и последующее включение Redshift. Ничего умнее

systemctl --user stop redshift; optirun gimp-2.10 && systemctl --user start redshift

не придумал.

Оно-то и так уже лучше, чем никак, но.

1. Если не закрыть, а свернуть Gimp, оно на место не желтеет.

2. Так хорошо, если так делать только с одной программой. Если так же сделать, например, с Darktable, то будет бардак. Запустил Gimp - разжелтело. Запустил Darktable (а Gimp не закрывал) - оно еще как надо. Теперь закрыл Darktable - оно пожелтело, хоть Gimp еще работает.

Вот же, блин, для Android есть Tasker, с помощью которого подобные вещи делаются просто.

Как бы для взрослого Линукса сделать что-то такое, что проверяло бы, есть ли среди работающих (еще лучше - среди тех, чье окно активно) процессов что-то из списка. Если появилось - чтобы systemctl --user stop redshift, если опять нет - systemctl --user start redshift.

Dementy
()

Качественное красноглазие

 ,

Тут трудно сказать что это за картинка.. скриншот это или рабочее место. Принимаю волевое решение положить это всё же в раздел скриншотов.

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

Перед применением следует завершить все остальные редшифты (не просто выключить).

`redshift -o -t 1000:1000 -l 0.0:0.0`

Чтобы вернуть все взад

`redshift -r`

bernd
()

Я поседел и дорос до менеджера паролей

 ,

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

Линукс расслабляет в этом плане – я привык что раз настроил и забыл.

Короче – сейчас обживаю ESR версию и восстанавливаю пароли. Грусть-печаль.

Что у нас правильного в масштабе менеджеров паролей? Пока установил KeePassXC, но я раньше таким софтом не пользовался, так что интересно что у нас есть хорошего в плане удобства и надёжности.

Usruser
()

Трудности перехода. Hex редактор

 , ,

Посоветуйте более-менее мощный hex-редактор для замены 010 Editor’a (Знаю, есть нативный, но цена как-то высоковата).

Нужно чтобы он

а) был графическим, qt|kde|gtk3

б) поиск/замена текста работала во всех открытых вкладках одновременно

в) имел встроенный скриптовый язык для обработки бинарных данных

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

Все что я нашел - либо слишком примитивные, или консольные.

Может быть, существует какое-то расширение для vscodium которое так умеет?

hargard
()

Вебные аналого-цифровые индикаторы.

 , копрофагия

По итогам Есть ли что-то типа Grafana только на порядки легче и проще?

Написал ещё тогда и забыл. Ну пусть новогодний подарочек будет.

Продолжаем делать правильный вебдваноль. Как обычно, всё очень маленькое (2.5kb) и шустрое, на plain JS без каких-либо «фреймворков» и прочего многотонного жирного говна. Легко влезает в эмбедщину всякую и т.п.

Итак…

gauge.js

'use strict'

function Gauges( class_name )
{
    var _ = this;
    _.urls = [];
    var gauge = document.getElementsByClassName( class_name );
    for( var j = gauge.length; j--; )
    {
        var e = gauge.item(j);
        var g = JSON.parse( e.getAttribute( "data-conf" ) );
        if( !g ) return;

        g.id = e.id;
        g.title = e.title;
        e.removeAttribute( 'title' );

        var c = g.size / 2;
        var r = 0.8 * c;
        var l = 2 * Math.PI * r;

        for( var i = _.urls.length; i--; ) { if( _.urls[i].url == g.url ) break; }
        if( i < 0 ) _.urls.push( { url: g.url, gauges: [ g ] } );
        else        _.urls[i].gauges.push( g );

        e.innerHTML =
            '<svg width="' + g.size + '" height="' + g.size + '">'
          + '<circle class="gauge-bg" id="' + g.id + '-bg" cx="' + c + '" cy="' + c + '" r="' + r + '" stroke-dasharray="' + ( 2 * l / 3 ) + " " + ( l / 3 ) + '" stroke-dashoffset="' + ( -5 * l / 12 ) + '"/>'
          + '<circle class="gauge-pnt" id="' + g.id + '-pnt" cx="' + c + '" cy="' + c + '" r="' + r + '" stroke="' + g.color + '" stroke-width="' + ( 0.1 * g.size ) + '" stroke-dasharray="0 1"/>'
          + '<text class="gauge-val" id="' + g.id + '-val" fill="' + g.color + '" x="' + c + '" y="' + ( 1.1 * c ) + '" font-size="' + ( 0.45 * r ) + '" text-anchor="middle"></text>'
          + '<text class="gauge-title" x="' + c + '" y="' + ( c + r ) + '">' + g.title + '</text>'
          + '</svg>';
    }

    _.urls.forEach( function( u )
    {
        _.update( u );
        setInterval( function(){ _.update( u ) }, u.gauges[0].int );
    } );
}

Gauges.prototype.set = function( id, min, max, val )
{
    var e = document.getElementById( id + '-pnt' );
    if( !e ) return;

    var r = e.getAttribute( 'r' );
    var l = 2 * Math.PI * r;
    var v = val < min ? min : val > max ? max : val;
    var dash = ( 2 / 3 ) * l * ( v - min ) / ( max - min );

    e.setAttribute( 'stroke-dasharray', [ dash, l - dash ]);
    e.setAttribute( 'stroke-dashoffset', (-5 / 12) * l );

    document.getElementById( id + "-val" ).textContent = val;
}

Gauges.prototype.update = function( u )
{
    var _ = this;
    var req = new XMLHttpRequest();
    req.onreadystatechange = function()
    {
        if( this.readyState != 4 ) return;
        var obj = JSON.parse( this.responseText );
        if( !obj ) return;
        u.gauges.forEach( function( g )
        {
            var v = g.path.split('.').reduce( function( o, k ) { return o && o[k] }, obj );
            _.set( g.id, g.min, g.max, v.toFixed( g.prec ) );
        } );
    };
    req.open( "GET", u.url );
    req.send();
}

gauge.css

@font-face {
    font-family: "7SEG";
    src: url("DSEG7Classic-BoldItalic.ttf") format("opentype");
}

.gauge-pnt {
  fill: transparent;
}

.gauge-bg {
  stroke: #808080;
  stroke-width: 1px;
  fill: transparent;
}

.gauge-val {
    font-family: "7SEG", serif;
}

.gauge-title {
    text-anchor: middle;
    fill: #C0C0C0;
}

Шрифт DSEG7Classic-BoldItalic.ttf ради прикола, можно из дебиановского пакета fonts-dseg взять. Или в формате woff2, он размером поменьше будет.

Как использовать:

<HTML>
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" content="no-cache">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">
<LINK rel="stylesheet" type="text/css" href="gauge.css">
<SCRIPT src="gauge.js" type="text/javascript"></SCRIPT>
<SCRIPT>
var ups_gauges;
window.addEventListener( 'load', function() { ups_gauges = new Gauges( 'ups' ); }, false );
</SCRIPT>
<STYLE>
a.ups { outline: none; }
body { background-color: #000000; color: #c0c0c0; }
</STYLE>
<TITLE>Gauge</TITLE>
</HEAD>
<BODY>
<a href="ups/voltage.html" class="ups" title="UPS Vin, V"  id="Vin" data-conf='{"url":"data/ups.json","path":"Vin","int":20000,"min":0,"max":300,"prec":0,"color":"#40C040","size":150}'></a>
<a href="ups/load.html"    class="ups" title="UPS Load, %" id="Load" data-conf='{"url":"data/ups.json","path":"Load","int":20000,"min":0,"max":100,"prec":0,"color":"#C040C0","size":150}'></a>
<a href="ups/temp.html"    class="ups" title="UPS T, °C"   id="Temp" data-conf='{"url":"data/ups.json","path":"Temp","int":20000,"min":0,"max":100,"prec":1,"color":"#C0C0C0","size":150}'></a>
</BODY>

data/ups.json

{ "Vin": 193.2, "Load": 40, "Temp": 38.0 }

В аттрибут data-conf элемента который превращаем в индикатор пишем JSON где

url - URL источника данных для индикатора в формате JSON
path - "путь" в JSON до нужной величины, например "sensors.0.temp"
int - интервал обновления в миллисекундах
min - минимальное значение аналоговой шкалы индикатора
max - максимальное значение аналоговой шкалы индикатора
prec - число цифр после запятой для цифрового индикатора 
color - цвет индикатора
size - размер индикатора

У элементов превращаемых в индикаторы должен быть установлен аттрибут id.

В аттрибуте title указывается подпись под индикатором.

Элементам индикаторов одной группы присваеваем один класс и его имя передаём в конструктор new Gauges('class_name') когда нужно создать и запустить индикаторы.

Если у нескольких индикаторов одного и того же класса URL источника данных одинаковый, то запрос к этому URL при периодическом обновлении будет только один, но при этом будут обновлены все индикаторы этого класса с этим URL.

Выглядит так: http://stanson.ch/gauges.png

Лицнзия WTFPL

Stanson
()