«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
Вышла версия 1.0.0 программы для работы с WebSocket-ами из командной строки «websocat». Девиз программы: "netcat
, curl
и socat
для вебсокетов".
( читать дальше... )
>>> Подробности
Анонсирую [пред]-релиз своей утилиты.
$ 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
Может, кому-нибудь для какой-нибудь задачи пригодится эта комбинация или её компоненты.
Разрабатывается Foreign Linux - механизм запуска ELF-бинарников для GNU/Linux в ОС Microsoft Windows 7 и 8.
В отличие от coLinux, транслятор не требует установки драйвера и работает на amd64.
В отличие от Cygwin, используются «родные» бинарники, не PE.
Для тестирования доступен архив с дистрибутивом ArchLinux и бинарником flinux.
Для Kali Linux разработана утилита, позволяющая удобно создавать точки доступа для перехвата пароля от Wi-Fi.
Возможности:
>>> Подробности
Обычные USB-флешки, оказывается, тоже компьютеры с обновляемой прошивкой. Эту возможность, как показали исследователи, можно использовать во зло: превращая флешку в клавиатуру, устанавливать вредоносное программное обеспечение.
Все инструменты доступны на Github: https://github.com/adamcaudill/Psychson
>>> Подробности
Не нашёл с ходу, написал: https://github.com/vi/fopen_override
Код основан на другом костыле: https://github.com/vi/syscall_limiter/tree/master/writelimiter
Может, где-то в интернете есть более нормальная реализация? А то я когда-то написал библиотеку для автоматического setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE
всем сокетам, но потом оказалось, что такая в интернете уже есть (хотя почему-то сразу не нашлась)...
Идёт разработка распределённой файловой системы, опирающейся на уже проверенные технологии: BitTorrent, Git, Kademlia, также добавляя недостающую свою: «BitSwap».
Автор замахивается на «новую основу для веба», на основе продвинутых технологий, появившихся уже после HTTP.
( читать дальше... )
>>> Подробности
Написал хак для 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 → нет приемлемых ответов → накодил → ответил сам со ссылкой. Тогда дополнительная видимость проекта получается сама собой.
Можно ли ещё тут добавлять сообщения про них?
Если да, то:
var nums = ki (take 6 (map (fn [x] (js x * 2)) (range 1000)));
Идёт разработка ещё одного языка программирования, транслируемого в JavaScript: ki. ki дополняет JavaScript приёмами функционального программирования и неизменяемыми структурами данных. На ki можно писать целые приложения, отдельные компоненты или просто функциональные «однострочники».
Синтаксис, семантика и структуры данных языка вдохновлены Clojure и ClojureScript.
>>> Подробности
Идёт разработка Haste (HASkell To Ecmascript) - компилятора из Haskell в JavaScript.
Перед проектом стоит цель создать практичный компилятор из Haskell в Javascript.
( читать дальше... )
>>> Подробности
Есть gst-log-viewer, который читает логи GStreamer'а и строит график их «интенсивности» во времени. Можно щёлкнуть на график и сразу перейти к строке. Рисунок: http://i.stack.imgur.com/xKDMr.png
Есть ли что-нибудь похожее, но универсальное (не для GStreamer, а, например, для любых логов, пропущенных через ts '%.s'
).
Также хороша была бы функция фильрации и/или выделения цветом строчек лога с показом на графике где во времени и сколько прошедших grep строчек относительно общего количества.
На ЛОРе тредов «выбор ноутбука» море...
Как-то лень все их читать, а создавать N+1-вый уныло.
Есть ли где-нибудь хорошое, правильное, поддерживаемое в актуальном состоянии howto про «Выбор ноутбука для линуксоида», где отмечены и истории [не]успеха, и то чем чипсеты отличаются, и про то насколько нужен SSD, и про экраны, и про корпуса, ну, и, естественно, про особенности работы в GNU/Linux, и всё в гармоничной краткой форме с удобными запросами. Чтобы было видно какие устройства часто рекомендуют, а какие наборот.
следующие → |