LINUX.ORG.RU

Сообщения utf8nowhere

 

Android: SOCKS5 client

Поднимаю SOCKS5-прокси на SSH-сервере (ну типа ssh -D 0.0.0.0:PORT localhost), curl с хоста или виртуалка с Win10 дружат с socks5://SSH_SERVER:PORT нормально.

Перепробовал кучу разных SOCKS5-клиентов на Android, когда запускаю ssh с флагом -v, вижу

debug1: Connection to port PORT forwarding ... requested.
debug1: channel 1: new [dynamic-tcpip]
debug1: channel 1: free: direct-tcpip: nchannels N

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

Но. Нифига не работает. В браузере открытие сайтов отваливается по таймауту, разные другие приложения говорят, что они оффлайн. SOCKS5-клиенты показывают скорость обмена с сервером в основном на нуле, иногда по 100-200 byte/s, на SSH-сервере валятся редкие сообщения про new [dynamic-tcpip]/free: direct-tcpip.

В чём может быть проблема?

 , ,

utf8nowhere
()

Срок за использование TOR/VPN?

Октябрьским районным судом г.Томска постановлен обвинительный приговор в отношении гражданина К., использовавшего вредоносную компьютерную программу, заведомо предназначенную для нейтрализации средств защиты компьютерной информации.

Так находясь по месту своего проживания в квартире и используя принадлежащий ему персональный компьютер с доступом к сети «Интернет», К. осуществил поиск вредоносной компьютерной программы, выражающейся в невозможности однозначной идентификации пользователя сети «Интернет» и его сетевой активности, в том числе провайдером, предоставляющим доступ к сети «Интернет» и заведомо для него предназначенной для нейтрализации средств защиты компьютерной информации провайдеров, направленных на однозначную идентификацию пользователя в сети «Интернет».

http://oktiabrsky.tms.sudrf.ru/modules.php?name=press_dep&op=1&did=378

 ,

utf8nowhere
()

Борщ со скидкой

Кому-нибудь в ДС2 нужен бумажный Крис Окасаки «Чисто функциональные структуры данных» фублей за 500? Состояние: как новый.

 , , , ,

utf8nowhere
()

Про boilerplate

Можно ли сказать что весь код работы с памятью (выделение-освобождение) в программе на C, только если эта программа не является менеджером памяти, является boilerplate-кодом?

Вопрос серьёзный, не тральный.

 ,

utf8nowhere
()

Пропаганда фошизма в нике

utf8nowhere
()

Когда графику наконец перенесут в ядро?

Где ей самое место.

Я ведь правильно понимаю, что сейчас при перемещении мыши происходит следующее:

  • Ядро ловит прерывание, пишет читающим из /dev/input/... инфу о перемещении мыши и пробуждает ждущих данных с соответствующего дескриптора (Xorg-сервер). Это первое переключение контекста.

  • Xorg, прочитав о перемещении мыши, дёргает drmModeMoveCursor чтобы переместить изображение курсора на экране. drmModeMoveCursor — это переключение контекста обратно в ядро.

  • Далее, Xorg-сервер посылает клиентам событие о перемещении мыши, записывая в сокет — опять переключение в ядро.

  • Клиенты читают из сокета — опять переключения контекста.

В общем, куча переключений контекста, поэтому графика заметно тормозит, что порождает темы вроде Windows работает плавнее и четче

Почему многие плюются от микроядер, говорят, что FUSE — это игрушка и реальные ФС должны быть в ядре, но при этом к идее всунуть графический сервер/композитор в ядро относятся отрицательно?

 , ,

utf8nowhere
()

Почему линукс синхронизирует состояние NumLock LED между клавиатурами, но не синхронизирует CapsLock LED?

Кстати, несмотря на синхронизацию NumLock LED между клавиатурами, на второй клавиатуре при горящем NumLock LED, эффекта как при включённом numlock, не наблюдается

 , , ,

utf8nowhere
()

Ctrl+<Key> работает, Alt+<Key> работает, Ctrl+Alt+<Key> работает в одном случае из 20

(Почти) перестали восприниматься клавиатурные комбинации типа Ctrl+Alt+T, Ctrl+Shift+T, Ctrl+Alt+стрелки и т.п. При этом Ctrl+T, Sifht+T, Alt+T работают.

Что это может быть? Глючит контроллер клавиатуры? Единственное на что падают подозрения: мазал пару дней назад кулер лэптопа маслом для швейной машинки, но масло не должно проводить и к тому же кулер находится снизу, а клавиатура, матплата и вообще всё выше него.

Вот как реагирует xev на нажатие Ctrl:

KeyPress event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8059683, (1333,757), root:(1334,819),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8059774, (1333,757), root:(1334,819),
    state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Alt:

KeyPress event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8135282, (765,666), root:(766,728),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8135323, (765,666), root:(766,728),
    state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

и Ctrl+Alt:

KeyPress event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8184123, (967,625), root:(968,687),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8184733, (967,625), root:(968,687),
    state 0x4, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8184736, (967,625), root:(968,687),
    state 0xc, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8184837, (967,625), root:(968,687),
    state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8184840, (967,625), root:(968,687),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x5e00001,
    root 0x1ca, subw 0x0, time 8185149, (967,625), root:(968,687),
    state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Правый Ctrl ведёт себя нормально.

Свопнул левые Ctrl и Win. Так всё ОК.

 , ,

utf8nowhere
()

Торвальдс плохой программист?

Как известно, Торвальдс утверждал (не дословно!):

Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

А ещё:

Talk is cheap. Show me the code.

Получается, он плохой программист? Почему он требует показать code, а не data structures?

Решение: Торвальдс плохой программист? (комментарий)

 language-lawyer

utf8nowhere
()

Раскладки в GNOME 3: кто в лес, кто по дрова

В Settings/Region & Language/Input Sources указаны 2 раскладки, в ibus-setup/Input Method только один.

Это нормально?

 , ,

utf8nowhere
()

Кто там корутины хотел?

 

utf8nowhere
()

О размере стандарта C++

Часто приходится слышать критику типа «ко-ко-ко, C++ сложный язык, стандарт распух более чем на полторы тыщи страниц, это нивазможна выучить!!!11».

Как известно, стандарт условно делится на Core («сам язык C++») и Library-части (стандартная библиотека). Это не на 100% строгое разделение, «сам язык» знает кое-что о стандартной библиотеке (std::size_t, std::ptrdiff_t, std::initializer_list и т.д.), поэтому я говорю «условно делится».

Стандарт начинается с Core-части, после идёт описание библиотеки. Вот табличка страниц, с которых начинается Library-часть («Library introduction») в разных версиях стандарта:

  • C++98 — стр. 311
  • C++03 — стр. 317
  • С++11 — стр. 424
  • C++14 — стр. 414
  • C++17 — стр. 445

итого, за почти 20 лет «сам» C++ распух чуть более чем на 100 страниц, на треть от C++98.

Всё остальное распухание с 776 до 1618 страниц приходится на стандартную библиотеку.

В чём сложность осилить 100 страниц за 20 лет? Ладно, там не только добавляли, но и меняли уже имеющееся. Страниц на 200-250 новшеств может набралось.

Или кто-то всерьёз под изучением языка понимает зубрёжку списка функций и их аргументов из его стандартной библиотеки?

 , ,

utf8nowhere
()

В C++20 представление знаковых будет только в two's complement

Странно, что никто не запостил новость. Ещё 24 ноября смёржили соответствующие изменения в текущий драфт стандарта.

Нет, signed overflow defined не сделали.

 , ,

utf8nowhere
()

Какую универсальность добавила systemd

если наличие/поведение юнитов всё так же зависит от опакечивателей?

Дисклеймер: этот тред не против systemd, а против маркетоидного бреда вместо перечисления реальных преимуществ/недостатков.

В общем, есть docker. В Debian/Ubuntu он ставится вместе с docker.socket-юнитом, так что даже при не запущенном докере он будет автоматически запущен при обращении к его сокету.

В centos никакого docker.socket нет, docker.service нужно стартовать руками.

Ну и как тут systemd помог условному админу чувствовать себя одинаково в любом дистрибутиве?

 ,

utf8nowhere
()

В C++20 появятся виртуальные функции!

Несколько часов назад в драфт стандарта были смёржены коммиты, определяющие термин «виртуальная функция». До сих пор такого определения не было.

 

utf8nowhere
()

clang перенимает наклонности оффтопика

Помнится, в Windows были (есть) селективные хаки, чтобы отдельные багнутые приложения, неправильно использующие WinAPI, могли работать. Например, SimСity.

Держу в курсе, что в clang тоже такое есть.

https://github.com/llvm-mirror/clang/blob/f4426c04a24f3f37369101f3a92898dd2e2...

// HACK: We've got an exception-specification
//   noexcept(noexcept(swap(...)))
// or
//   noexcept(noexcept(swap(...)) && noexcept(swap(...)))
// on a 'swap' member function. This is a libstdc++ bug; the lookup
// for 'swap' will only find the function we're currently declaring,
// whereas it expects to find a non-member swap through ADL. Turn off
// delayed parsing to give it a chance to find what it expects.

 ,

utf8nowhere
()

Как работает графический дисплейный менеджер для X?

Проще оказалось проверить самому. Да, по X-серверу на пользователя.

Я так понимаю, он сам работает в иксах.

Что происходит при логине/переключении пользователя? Стартует другой X-сервер, которому отдаётся контроль над VT? Каждому пользователю запускается по X-серверу?

 , ,

utf8nowhere
()

В C++20 могут появиться макросы, как в Rust

...если комитет примет предложение представленное в этом пропозале.

Предлагается добавить «нативные» C++-макросы.

Из пропозала

So what would one of these native C++ macro functions look like?

 // Macro functions look just like a free function except for the # at the
 // end of the function name. Note that the # counts as part of the identifier,
 // so return# does not collide with the return keyword.
 template<class T>
 inline int return#(T v)
 {
	 if(v > 0)
		return -> v; // control flow keyword + ’->’ means it affects the
	 // calling function, not this macro function
	 if(v < 0)
		break ->;
	 // Also this break is executed in the calling function
	 // If break isn’t valid at the point of use
	 // in the calling function, it will not compile
	 // We can inject variable declarations into the calling function
	 // with typename + ’->’. This is useful for RAII triggered cleanup
	 // i.e. these get destructed when the scope of the call point exits.
	 // Note that the actual name of the variable injected will
	 // be some very unique identifier which cannot collide with any
	 // other variable, including those injected by other macro functions
	 int -> a = 5;
	 // Otherwise this function macro has a local scope, and code
	 // executed here remains here
	 size_t n = 0;
	 for(; n < 5; n++)
	 {
		 // We can also refer to variables previously injected into the
		 // caller’s scope by this macro function like this.
		 // This lets one keep state across invocations of the macro function
		 (-> a) ++;
	 }
	 // This returns a value from this function macro to the caller
	 // If you wrote return -> a, that would be a compile error
	 // as there is no variable called a in this scope.
	 return (-> a);
}

Такие макросы могут быть полезны для реализации некоторых фич, требующих вставки кучи служебного кода, например, корутин или оператора try, без внесения модификаций в Core Language, чисто на уровне библиотек.

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

 , ,

utf8nowhere
()

TCP SYN/ACK/RST-туннель

Пробовал ICMP-туннелирование для обхода учёта трафика — не прокатило.

Другой метод, который может быть использован для тех же целей — это передача данных в payload TCP SYN/ACK-пакетов. Не нашёл только готовых реализаций такого туннеля. Может кто знает?

(хотя если учитывается любой payload IP-пакетов, то учёт трафика не обойти никак).

 , ,

utf8nowhere
()

Выгрузить nouveau и восстановить текстовый VGA-режим

С драйвером nouveau GPU лочится при перезагрузке и вешает ядро.

Можно передать параметр ядру nouveau.modeset=0, но тогда nouveau вообще не загрузится и иксы будут работать с VESA-драйвером.

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

Попробовал делать как описано в https://nouveau.freedesktop.org/wiki/KernelModeSetting/, а именно:

echo 0 > /sys/class/vtconsole/vtcon1/bind
rmmod nouveau

Драйвер, конечно, выгружается и при этом изображение с монитора пропадает (вообще пропадает сигнал с кабеля и монитор засыпает). Хотелось бы вернуться в текстовый VGA-режим. На echo 1 > /sys/class/vtconsole/vtcon0/bind — 0 реакции. Монитор не видит сигнала на кабеле.

Пробовал делать как описано в https://www.kernel.org/doc/Documentation/fb/fbcon.txt, а именно сохранить состояние VGA (vbetool vbestate save) и восстановить его:

vbetool vbestate restore < <vga state file> 
echo 0 > /sys/class/vtconsole/vtcon1/bind
rmmod nouveau

После выполнения первой команды режим меняется, но, похоже, не на текстовый VGA, т.к. я вижу какой-то мусор из пикселей в верхней части экрана и всё. rmmod nouveau вообще уходит в D-state.

 ,

utf8nowhere
()

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