LINUX.ORG.RU

Сообщения dissident

 

nat + udp/icmp/other_non_tcp

Форум — Development

Объясните пожалуйста, как ответы на ping или, например, на запросы DNS по UDP проходят через NAT? Если с TCP вроде понятно, создавая сессию, NAT в состоянии удерживать открытый порт для клиента за NATом до момента закрытия сессии и транслировать адрес/порт, то как это выглядит в случае с, например, UDP запросом к DNS серверу?

Например в таком setup:

10.0.0.12 (client) <-> 10.0.0.1/NAT_external_ip (gateway) <-> DNS_server_external_ip

Если client посылает UDP запрос к DNS серверу, то DNS сервер ведь пошлет обратно UDP ответ NAT_external_ip и неизвестно как долго ответ будет идти обратно. У gateway есть какой-то timeout? Т.е. например если client посылает пакет с:

from: 10.0.0.12
to: DNS_server_external_ip:some_port

Когда пакет приходит к gateway, gateway переписывает его как:

from: NAT_external_ip:some_other_port
to: DNS_server_external_ip:some_port

И теперь приходит ответ от DNS_server_external_ip:

from: DNS_server_external_ip
to: NAT_external_ip:some_other_port

Теперь NAT_external_ip может содержать у себя локально информацию, что пакеты, которые приходят на NAT_external_ip:some_other_port следует отослать 10.0.0.12, но ведь сессии как таковой нету. Как долго эта информация будет актуальна? У NAT_external_ip есть по этому поводу какой-то конфигурируемый timeout? Если в случае с TCP gateway может «забыть» эту информацию при закрытии TCP сессии, то как быть с UDP/ICMP и тому подобным протоколам где понятий «закрытие/открытие сесси» нету?

 , ,

dissident
()

секрет успеха: менеджмент времени

Форум — Talks

У вас не хватает времени на туториалы из ютуба а узнать нужно так много? Вот этот ролик помог мне открыть секрет успеха: <рандомная чушь>. Я даже написал комментарий к нему с благодарностью автору: https://www.youtube.com/watch?v=pRYV6ElqN2c&lc=UgxujgwKhUQ_BcFrpBR4AaABAg

Я не могу не поделиться этим чудесным отрытием с Вами. Секрет очень прост: playback speed = 2x и чушь входит в ушные отверстия с двойной скоростью! Это гениально!

Я вот думаю о таких апгрейдах:

  • Как установить playback speed > 2x в youtube player?
  • Как увеличить reading speed для туториалов которые входят через глазные отверстия?

 

dissident
()

c++ build system

Форум — Development

Подскажите пожалуйста, что лучше всего использовать сегодня для сборки? Я знаю про CMake, но не уверен умеет ли он следующее:

  • Самостоятельно поустанавливать флаги вроде -Wall (например pedantic, fail on errors и тому подобное) для gcc и clang
  • Самостоятельно выкачать откуда-нибудь dependencies для сборки, собрать их, положить куда-нибудь в src/build

Или для этого нужен Conan? Или Conan не умеет собирать?

В общем хочется что-то вроде cargo наверное.

Что сейчас самое удобное для новых проектов?

 ,

dissident
()

подсветка синтаксиса в бешеой лисе

Форум — Linux-org-ru

Почему это работает в Chromnium:

https://raw.githubusercontent.com/xor512/trashbin/master/firefox_vs_chromium_in_lor/chromium.png

Но не всегда работает в Firefox:

https://raw.githubusercontent.com/xor512/trashbin/master/firefox_vs_chromium_in_lor/firefox.png

Или у меня действительно тема не кошерная и поэтому даже meld придется поменять на kdiff3, а firefox на chromium? (c) https://gitlab.gnome.org/GNOME/meld/issues/418#note_707821?

 ,

dissident
()

дурацкий (просто чтобы понять) вопрос про c++ locales

Форум — Development
There's even a little convenience feature: if L is a locale 
object, you can compare two strings by writing L(x, y) instead
of going through the nuisance of calling use_facet and then
invoking a collate member function

(c) http://lafstern.org/matt/col2_new.pdf

Круто! Но:

#include <locale>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    locale L = locale::classic();
    cout << L("kekeke", "kekeke") << endl;
}

Приводит к:

g++ locale_kekeke.cpp 
locale_kekeke.cpp: In function ‘int main(int, char**)’:
locale_kekeke.cpp:8:33: error: no match for call to ‘(std::locale) (const char [7], const char [7])’
    8 |     cout << L("kekeke", "kekeke") << endl;
      |                                 ^

Что он мог иметь ввиду говоря you can compare two strings by writing L(x, y)?

 ,

dissident
()

pulseaudio -> аж три крутилки громкости :-\

Форум — Desktop

Может мне кто-нибудь объяснить как отностится вот этот «knob» в браузере тытрубы:

с вот этими "knob"ами в pavucontrol:

?

Нежное троганье первого (_youtube_knob.png) приводит к изменению положения второго (_pavucontrol_knob1.png) и громости, но не третьего (_pavucontrol_knob2.png) и не 1 к 1му, при этом нежное троганье второго (_pavucontrol_knob1.png) не приводит к изменению положения первого (_youtube_knob.png), зато приводит к изменению громкости, а третий (_pavucontrol_knob2.png) влияет на них обои (обое? оба? обе?) в смысле громкости но не положения, а на него ни первый ни второй не влияют (в смысле положения). При чем все они меняют громкость по разному (3x3x3 комбинаций вроде ведь как выходит разных). Это типо такой эквалайзер?

Я ничего не понимаю. Ну т.е. это круто, что можно вытянуть из перделок лаптопа громче перденье или там сделать дисторшн (зафигачив все крутилки > 100% пока вообще пердеть не начнет страшно), я из-за этого pavucontrol и пользуюсь, в alsamixer, кажется, было нельзя >100%, но почему в самом pavucontrol крутилки две и еще есть у плейера крутилка и они ХЕЗ как связаны?

 

dissident
()

manjaro + zsh + mc = prompt порой пропадает

Форум — Desktop

Я нашел баг по этому поводу и даже с фиксом:

Но это все старое.

C пустым .zshrc все работает.

cocaine% set | grep precmd
precmd_functions=( _mc_precmd )

C тем, что в манжаре:

~ >>> echo $precmd_functions 
_zsh_highlight_main__precmd_hook _zsh_autosuggest_start _mc_precmd

Я попробовал:

# mc fucks up prompt sometimes for some reason
if ps $PPID | grep mc; then
    #preexec_function="" # does not work
    #precmd_functions="" # does not work
    #PS1=$PROMPT # does not work
    #PS1=$RPROMPT # does not work
    #PS1="%{$fg[red]%}" # does not work
    #PS1="zhopa" # does not work
fi

Не помогает.

Меня больше всего удивляет, что PS1="zhopa" не помогает (zhopa тоже периодически пропадает стоит раз 10 написать ls->enter). Какой бы костыль тут вставить?

 , , ,

dissident
()

setxkbmap периодически отваливается в manjaro

Форум — Desktop

Добрый,

У меня AwesomeWM. В rc.lua у меня такое:

awful.spawn.with_shell('setxkbmap -option "grp:alt_shift_toggle,grp_led:scroll" "pl,ru"')

т.е. при запуске путем startx awesomewm я запускаю setxkbmap, чтобы иметь возможность переключать язык (или там «раскладка» это правильно называется).

Это работает, но периодически перестает и язык уже переключить становится нельзя, он остается таким каким был последним. Я не знаю (вернее пока не заметил), от чего конкретно это зависит, но у меня предположение, что это происходит при закрытии/открытии крышки лаптопа. Поэтому я добавил вот такое в /etc/acpi/handler.sh:

on_lid_open()
{
    logger 'LID opened'
    echo 9287534 > /sys/class/backlight/intel_backlight/brightness # 70%
    setxkbmap -option "grp:alt_shift_toggle,grp_led:scroll" "pl,ru"
    xset -b
}

...skip...
    button/lid)
        case "$3" in

...skip...
            open)
                on_lid_open
                ;;
            *)
...skip...

Но это не помогает. Подозреваю, что это связано с тем, что handler.sh запускается как-то слишком рано после sleep’а, потому что когда я вместо:

echo 9287534 > /sys/class/backlight/intel_backlight/brightness # 70%

делал:

xbacklight -set 70

тоже не работало.

Что on_lid_open выполняется я знаю точно: если я его уберу то после закрытия/открытия крышки гр…, простите, лаптопа ‘xbacklight -get’ покажет 100 и глаза начнут выедать фотоны, а так покажет 70.

У меня нет ни одной большее идеи ни почему переключение раскладки периодически перестает работать, ни почему setxkbmap ничего не делает когда запускается handler.sh. Вставлять туда sleep я даже с целью проверки не хочу, потому что это ничего не расскажет мне о причине.

Кто-нибудь может подсказать что-нибудь?

PS Что интересно, в Arch при таком же сетапе такое не происходило, но меня задолбал его процесс установки и я с дуру поставил Manjaro. Не мяла баба клопоту, купила порося.

 , , ,

dissident
()

I/O bus clock и FSB (Front Side Bridge) clock

Форум — Linux-hardware

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

Как программными средствами узнать сабж? lshw, hardinfo не показывают.

Спасибо заранее.

 

dissident
()

wext vs mac80211

Форум — Admin

Подскажите пожалуйста, как имея Network Manager и nm-applet узнать используется ли wext или mac80211 driver для wifi? В wicd-tray это было в гуе его, а в nm-applet нету.

Спасибо!

 ,

dissident
()

испортили самый удобный diff viewer :(

Форум — Development

https://gitlab.gnome.org/GNOME/meld/issues/418

Пользоваться теперь это кашей невозможно. Посоветуйте пожалуйста другой. Может kdiff3?

Сказать pacman’у, чтобы откатился пару версий назад и не обновлял meld как-то не кошерно.

Я бы им сам чекбокс приделал, но meld был такой удобный. что я боюсь его сговнокодить. :(

«Самый эффективный и верный вид программирования - это отсутствие программирования» (с)

Как страшно жить. А если они завтра линукс испортят еще больше, чем он уже испорчен7

 

dissident
()

продувка вентиляоров и т.п.

Форум — General

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

Спасибо с горы!

 

dissident
()

pacman + detailed package description

Форум — Admin

В debian/ubuntu какая-то команда «рассказывает» в деталях, что делает пакет, если я правильно помню, то:

apt-cache show package
pacman -Qi package

package показывает же очень мало информации и практически никакого описания зачем она. Есть ли у pacman аналог такой команды или отдельный пакет, который это делает? Или читать то, что в поле l URL?

 ,

dissident
()

strange annoying arrows in the end of line (on the first sight with no logic)

Форум — Desktop

Может быть здесь кто-нибудь знает? Что это за новая зараза?

https://gitlab.gnome.org/GNOME/meld/issues/4180

Стало лучше, но лучше было когда было хуже" (с)

 

dissident
()

нажатие «i» при включенной русской раскладке

Форум — Admin

Я помню. что добавлял когда-то что-то такое в .vimrc, т.е. если память меня не подводит это возможно.

Проблема:

  • vim в visual mode
  • надо перейти в insert mode (например нажимая «i», вместо insert0
  • к сожалению включена русская раскладка и «i» - это «ш» В результате ничего не происходит

Не могу выгуглить как это обойти, чтобы неважно от раскладки vim переходил в insert mode при нажатии «i» или «ш». Может у кого-нибудь есть такой сниппет в .vimrc?

 ,

dissident
()

браузер для старого лаптопа с 2gb ddr2 333 MT/s

Форум — Desktop

По причинческим технинам мне приходится временно пользоваться старым лаптопом с 2gb ddr2 333 MT/s. После установки arch (ну если честно manjaro, потому что процесс установки arch делает мои глаза совсем красными) и awesomewm им даже можно пользоваться и таки даже смотреть на тытрубе как «жопами вертят всякие б…и» (с) Ноль и даже в 666 раз пересматривать вторую часть Чужих.

Но! Я привык к фаерфоксу, но кажется он течет как девушка при менструации. Очень часто приходится перегружать старичка и по наблюдениям именно из-за фаерфокса. Еще иногда включаемый скайп вызывает демонов из ада (кто этих банановых яваскрипт мальчиков заставлял переписывать удобную программу на веб42 ноль ноль? Какой-то там jabber демон на эрланге написан (в котором даже строк нету) и работает же. Можно? Можно! А Amy Whinehouse не торчит уже 9 лет. Можно? Можно!. В общем «хочешь скайп - убей фаерфокс, хочешь фаерфокс - убей скайп»).

Я тогда подумал про оперу, но по-моему с ней что-то не то. Или это со мной что-то не то? Или я просто не умею ее готовить? Она, например, умеет показывать кино из какого-нибудь kinogo из коробки? По-моему это не работало. Что надо установить? А есть плагины вроде print to pdf, adblock plus, youtube adblock (!) и т.д.

Подскажите пожалуйста:

  • Какой браузер поставить на старичка (только не надо пожалуйста про lynx)?
  • Хромиум ведь такая же обжора и «тётка» как фаерфокс, правда?
  • Если оперу, то как ее довести до состояния, в котором ей можно пользоваться?
  • Что такое opera mini? Этот «реланиум» мне поможет?
  • Не существует ли какого-нибудь firefox mini для старичков?

PS Я понимаю, что можно ответить «не е.. мозги, докупи память». Но у этого компьютера уже метастазы, память - это далеко не единственная его проблема, я не знаю сколько ему осталось, да и то все это временно (как все мы). У меня тоже временные проблемы.

Спасибо с горы!

 ,

dissident
()

bash + local + variable redefinition

Форум — Development

Нужно ли повторять local при конструкциях вроде:

f()
{
    local elephants=220
    local elephants=${elephants#0}
}

?

Или достаточно:

f()
{
    local elephants=220
    elephants=${elephants#0}
}

?

В каком случае elephants останутся локальными для фунции f()?

 

dissident
()

как выключить touchstick (не touchpad)

Форум — Desktop

в моем старом fujitsu siemens lifebook есть такой клитор посреди клавиатуры: https://bit.ly/2GanWfE. Он по разному наывается у разных производителей: trackoint, trackstick, poinstick, touchstick, finetrack, nx point, vetorpad, accupoint.

У fujitsu siemens он называется touchstick. Это не touchpad.

Я хочу его выключить. в bios нашел что-то вроде «disable other pointing devices when PS/2 mouse is inserted», но во-первых у меня USB mouse, а во-вторых это не работает.

Touchpad выключить легко:

synclient TouchadOff=1

а вот как выключить этот клитор? Вот тут что-то нашел https://ubuntuforums.org/showthread.php?p=9407186, а именно

xinput list
xinput set-prop "TPPS/2 IBM TrackPoint" "Device Enabled" 0

но у меня ничего похожего в xinput list нету:

~ >>> xinput list                                                              
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ PixArt USB Optical Mouse                	id=11	[slave  pointer  (2)]
⎜   ↳ USB usb keyboard Consumer Control       	id=13	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=16	[slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                      	id=17	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Fujitsu FUJ02E3                         	id=7	[slave  keyboard (3)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Power Button                            	id=9	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=10	[slave  keyboard (3)]
    ↳ USB usb keyboard                        	id=12	[slave  keyboard (3)]
    ↳ USB usb keyboard System Control         	id=14	[slave  keyboard (3)]
    ↳ USB usb keyboard Consumer Control       	id=18	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=15	[slave  keyboard (3)]

Есть SynPS/2 Synaptics TouchPad, но я его и так могу выключить. Как же мне выключить touchstick?

Стоит Manjaro Linux, если это важно.

 

dissident
()

ZSH + кэширование скриптов (у меня белая горячка?)

Форум — Desktop

Я совсем уже допился или ZSH кэширует содержимое скриптов? Дебажа быдлоскрипт на баше (какой дьявол дернул меня снова взять эту мерзость в рот, на каком-нибудь питоне или прочей гадюке уже давно бы набыдлокодил и спал), меняя этот скрипт (например добавляя «set -x» и убирая его) я заметил, что мне приходится открывать новый терминал, чтобы изменения возымели действия.

У меня галлюцинации от недосыпа или в каждой галлюцинации есть доля правдивого маразма?

 

dissident
()

makepkg -sri + many packages + type sudo password once

Форум — Admin

Я пытаюсь автоматизировать update AUR пакетов (да, я знаю, что есть yaourt и yay), но я делаю это for fun, самообразования и нежелания пользоваться монстрами. Хотелось бы запустить скрипт и пойти себе. Скрипт простой - итерирует по директориям с клонами git пакетов aur, делает git reset –hard, git pull, makepkg –noconfirm -sri. И все бы хорошо, но установка каждого пакета требует введения пароля ([sudo] password for user: ) и вся автоматизация коту под хвост.

Может это можно как-то обойти? Каким-нибудь expect или чем-то подобным? Или на время выполнения скрипта увеличить время действия sudo и попросить пароль вначале?

  • Это поможет?
  • Из скрипта время действия sudo увеличить вообще возможно? А если да, то в какую сторону смотреть? sudo перегрузить как-то возможно?

PS Если кому-то интересно посмотреть на эти пару строчек bash’а (например с целью подсказать решение), то они тут: https://pastebin.com/68mcS5M3

Спасибо заранее!

 , ,

dissident
()

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