«Rust in Minsk» скоро исчезнет с meetup.com
Потому что Rust не нужет или meetup.com не нужен?
Потому что Rust не нужет или meetup.com не нужен?
https://github.com/vi/imlib2-heic
Библиотека использует готовый декодировщик libheif.
Также есть аналогичная для bpg.
https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
Анонсирую [пред]-релиз своей утилиты.
$ websocat - wss://echo.websocket.org/
fdsa
fdsa
sadfasf
sadfasf
server$ websocat ws-l:0.0.0.0:8080 tcp:127.0.0.1:22
client$ ssh -c ProxyCommand='websocat - ws://myserver:8080/mywebsocket' user@myserver
umask 0000
websocat --unlink ws-l:unix-l:/tmp/wstest sh-c:'bash -i 2>&1'
location /ws {
proxy_read_timeout 7d;
proxy_send_timeout 7d;
proxy_pass http://unix:/tmp/wstest;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
$ socat -x - exec:"websocat - ws\://echo.websocket.org/"
dsaf
> 2018/05/10 21:47:56.609581 length=5 from=0 to=4
64 73 61 66 0a
< 2018/05/10 21:47:56.745260 length=5 from=0 to=4
64 73 61 66 0a
dsaf
123123123
> 2018/05/10 21:47:58.087129 length=10 from=5 to=14
31 32 33 31 32 33 31 32 33 0a
< 2018/05/10 21:47:58.222838 length=10 from=5 to=14
31 32 33 31 32 33 31 32 33 0a
123123123
websocat --ws-c-uri=ws://echo.websocket.org - ws-c:sh-c:'socat - tcp:echo.websocket.org:80'
Предсобранные версии: https://github.com/vi/websocat/releases/tag/v1.0.0-alpha
Написал очередную ненужну: программа с одной стороны открывает tun/tap-интерфейс, а с другой стороны использует обычные AF_INET
-SOCK_DGRAM
-сокеты (без connect(2)
-а), снимая ограничение для UDP hole punching. Слегка похоже на SLiRP. TCP предполагается пускать в обычный -j MASQUERADE
.
До: Primary: Independent Mapping, Port Dependent Filter, preserves ports, no hairpin
После: Primary: Independent Mapping, Independent Filter, preserves ports, no hairpin
Исходный код, предсобраная версия, краткая инструкция: https://github.com/vi/udpnat
Мой мини-проект: https://github.com/vi/videomedian
Основной сценарий использования: улучшение видео при оцифровке плохого оригинала.
Принцип работы: каждый пиксель на выходе - это медиана от значения расположенного в этом месте пикселя за N последних кадров.
Может, где-нибудь уже есть такие фильры, но по-нормальному реализованные?
https://github.com/vi/outoforderfs
Насколько я понимаю, при внезапном отключении носителя могут потеряться недавно записанные блоки, при чём из-за всяких кэшей потеря может затронуть не самый последний, а более ранний блок (при этом более поздний запишется).
Моя утилита позволяет поэкспериментировать с такими потерями. Запись каждого блока откладывается на случайное количество миллисекунд. При прерывании утилиты не успевшие записаться блоки пропадают (то есть остаются старыми, как до записи).
outoforderfs файл_с_образом_ФС файл_точка_монтирования размер_блока максимальная_задержка_в_миллисекундах максимальное_число_задержанных_блоков
# dd if=/dev/zero bs=4096 count=1000 of=sf.dat
# yes | mkfs.ext4 sf.dat
# touch mp.dat
# outoforderfs sf.dat mp.dat 4096 20000 10000000 &
[1] 9317
# mkdir -p m
# mount -t ext4 -o loop mp.dat m/
# yes | nl > m/test.txt
^C
# umount m
# kill %%
#
352 dirty blocks lost
[1]+ Done outoforderfs sf.dat mp.dat 4096 20000 10000000
# mount -o loop -t ext4 sf.dat m/
# ls -lh m/test.txt
-rw-r--r-- 1 root root 2.7M Mar 20 23:53 m/test.txt
# hd m/test.txt | grep -m 2 '00 00 00' -C 2
000013e0 35 36 36 09 79 0a 00 00 00 00 00 00 00 00 0a 20 |566.y. 567.y. |
000013f0 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 | 568.y. 569.y|
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000000 00 00 00 00 30 09 79 0a 00 00 00 00 00 00 00 00 | 1480.y. 1481.y|
--
000063e0 0a 00 00 00 00 00 00 00 00 0a 20 20 32 38 34 33 |. 2842.y. 2843|
000063f0 09 79 0a 00 00 00 00 00 00 00 00 0a 20 20 32 38 |.y. 2844.y. 28|
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000000 00 00 00 0a 00 00 00 00 00 00 00 00 0a 20 20 33 |0.y. 3301.y. 3|
Обычный OpenVPN что-то не очень работает на супердешёвой VPS-ке на OpenVZ, поэтому очевидный способ пробросить подсеть IPv6 отпадает.
Для осуществления такой операции придумал «треугольник из костылей»:
openvpn --dev stdout
- используется stdin вместо устройства tun/tap;
socketpair(... SOCK_SEQPACKET ...)
. seqpackettool - это как мини-socat, ориентированный на SOCK_SEQPACKET.
https://github.com/vi/udptap_tunnel#ipvampire
Может, кому-нибудь для какой-нибудь задачи пригодится эта комбинация или её компоненты.
Не нашёл с ходу, написал: https://github.com/vi/fopen_override
Код основан на другом костыле: https://github.com/vi/syscall_limiter/tree/master/writelimiter
Может, где-то в интернете есть более нормальная реализация? А то я когда-то написал библиотеку для автоматического setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE
всем сокетам, но потом оказалось, что такая в интернете уже есть (хотя почему-то сразу не нашлась)...
Написал хак для ipv6: полу-мост, полу-маршрутизатор.
Основной сценарий использования: компьютер получает IPv6 по Router Advertisings на одном интерфейсе, но хочется подключить ещё один хост к этой же сети на другом.
По-нормальному для этого используется мост (brctl
), но это может быть проблемным: во-первых, на Wi-Fi с ограниченными драйверами мост может не работать - можем посылать пакеты только с нашего MAC-адреса, во-вторых поднятие моста сбрасывает всякие настройки, маршруты и т.д.
Для IPv4 обычно можно просто включить NAT. Но тянуть NAT в IPv6 не хочется, а если пытаться «дробить» /64
дальше, то stateless autoconfiguration не будеть работать...
Программа ipv6proxy делает 3 вещи:
/128
) на найденные в другой сети узлы;
--
Проект на Github: https://github.com/vi/ipv6proxy
Обычно я просто выкладываю проектики на Github.
Иногда получается схема: спросил на StackExchange → нет приемлемых ответов → накодил → ответил сам со ссылкой. Тогда дополнительная видимость проекта получается сама собой.
Можно ли ещё тут добавлять сообщения про них?
Если да, то:
Есть gst-log-viewer, который читает логи GStreamer'а и строит график их «интенсивности» во времени. Можно щёлкнуть на график и сразу перейти к строке. Рисунок: http://i.stack.imgur.com/xKDMr.png
Есть ли что-нибудь похожее, но универсальное (не для GStreamer, а, например, для любых логов, пропущенных через ts '%.s'
).
Также хороша была бы функция фильрации и/или выделения цветом строчек лога с показом на графике где во времени и сколько прошедших grep строчек относительно общего количества.
На ЛОРе тредов «выбор ноутбука» море...
Как-то лень все их читать, а создавать N+1-вый уныло.
Есть ли где-нибудь хорошое, правильное, поддерживаемое в актуальном состоянии howto про «Выбор ноутбука для линуксоида», где отмечены и истории [не]успеха, и то чем чипсеты отличаются, и про то насколько нужен SSD, и про экраны, и про корпуса, ну, и, естественно, про особенности работы в GNU/Linux, и всё в гармоничной краткой форме с удобными запросами. Чтобы было видно какие устройства часто рекомендуют, а какие наборот.
Регулярно напарываюсь на то, что тред исчёзает прямо «из-под носа» (например, при переходе на другую страницу обсуждения или при нажатии на кнопку «Показать удалённые комментарии»).
При этом часто в Гугле тред находится, но кнопки «Cached» почему-то нет (например, как для forum/talks/9370585 - на последней странице нет интересных комментариев, а первые уже недоступны)...
Иногда для сайтов делают специализированные «восстанавливалки» (например, deletionpedia для википедии или stackprinter для stackoverflow). Есть ли что-либо похожее для linux.org.ru?
Двух звёзд (которые, насколько я помню, нужны чтобы «официально» смотреть удалённые нити) нет и не светит...
В Linux уже есть возможность задать ограничение на то, какие сисвызовы могут выполняться программой (включая после fork/execve), а какие будут возвращать ошибку, использовать эмулятор или вообще SIGKILL. Работает из-под пользователя тоже.
В качестве демо есть программа, которая «отключает» один сисвызов.
Есть ли что-то большее, чтобы задать можно было задавать «белый» или «чёрный» списки (с аргументами для некоторых типа prctl), но не настолько большое чтобы охватывать всю систему (типа SELinux) или требовать много всяких конфигов.
Что-то типа
limit_syscalls access brk close connect dup \
execve exit_group fcntl64 fstat64 getsockname \
getuid32 mmap2 mprotect munmap open read set_thread_area \
setuid32 socket write -- /bin/ping 127.0.0.1
У меня нет подключений с «белым» IP, а там где есть (на VPS-ке), там нельзя настроить туннели (и я не знаю фильтруется ли там протокол 41).
Кто-нибудь, у кого настроено 6to4 или у кого есть белый IP, который пропускает протокол 41, снимите tcpdump того, как оно работает (например, «ping6 ipv6.google.com» и «curl -6 ipv6.google.com»).
Чтобы настроить 6to4, можно использовать скрипт http://vi-server.org/pub/6to4.sh
Дамп можно снять через
tcpdump -i ... proto 41 -w dump.cap
Примеры применений:
* Простой запуск программ внутри LXC или unshare.
* Типа sudo, только простое и не нужен setuid-bit.
* Позволить пользоватеям chroot в определённую директорию.
Есть ли сервис, где можно публиковать проекты и собирать (или не собирать) взносы, которые потом зачисляться на счёт в WebMoney?
Через уязвимость в ruby on rails взломан Github.
Всем пользователям нужно переподтвердить ключи ssh.
следующие → |