LINUX.ORG.RU

Сообщения vi0

 

«Rust in Minsk» скоро исчезнет с meetup.com

Форум — Talks

 ,

vi0
()

Написал библиотеку, чтобы открывать файлы HEIC в feh

Форум — Multimedia

https://github.com/vi/imlib2-heic

Библиотека использует готовый декодировщик libheif.

Также есть аналогичная для bpg.

https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format

 ,

vi0
()

websocat — клиент, сервер и прокси для WebSocket-ов

Новости — Интернет
Группа Интернет

Вышла версия 1.0.0 программы для работы с WebSocket-ами из командной строки «websocat». Девиз программы: "netcat, curl и socat для вебсокетов".

( читать дальше... )

>>> Подробности

 , , ,

vi0
()

websocat: работаем с WebSocket'ами в стиле socat

Форум — Development

Анонсирую [пред]-релиз своей утилиты.

  • Просто клиент командной строки для WebSocket'ов в стиле netcat:
    $ websocat - wss://echo.websocket.org/
    fdsa
    fdsa
    sadfasf
    sadfasf
    
  • Пробрасываем SSH:
    
    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
    
  • Интегрируем с Nginx
    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'ом:
    $ 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

 ,

vi0
()

udpnat - user-space транслятор адресов для UDP-пакетов (для P2P)

Форум — Admin

Написал очередную ненужну: программа с одной стороны открывает 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

 ,

vi0
()

videomedian: фильтр для восстановления видео с сильными артефактами

Форум — Multimedia

Мой мини-проект: https://github.com/vi/videomedian

Основной сценарий использования: улучшение видео при оцифровке плохого оригинала.

Принцип работы: каждый пиксель на выходе - это медиана от значения расположенного в этом месте пикселя за N последних кадров.

Может, где-нибудь уже есть такие фильры, но по-нормальному реализованные?

 

vi0
()

OutOfOrderFS - утилита для экспериментов с реакцией ФС на сбои

Форум — Development

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|

 , ,

vi0
()

Проброс части сети из VPS без tun/tap.

Форум — Admin

Обычный OpenVPN что-то не очень работает на супердешёвой VPS-ке на OpenVZ, поэтому очевидный способ пробросить подсеть IPv6 отпадает.

Для осуществления такой операции придумал «треугольник из костылей»:

  • ipvampire - избирательно извлекает пакеты из сетевого интерфейса и пишет из в stdout, посылает пакеты из stdin в интерфейс;
  • openvpn --dev stdout - используется stdin вместо устройства tun/tap;
  • seqpackettool - запускалка двух вышеприведённых программ, чтобы они были соединены через socketpair(... SOCK_SEQPACKET ...). seqpackettool - это как мини-socat, ориентированный на SOCK_SEQPACKET.

https://github.com/vi/udptap_tunnel#ipvampire

Может, кому-нибудь для какой-нибудь задачи пригодится эта комбинация или её компоненты.

 ,

vi0
()

flinux — запуск бинарников GNU/Linux в среде Windows

Новости — Linux General
Группа Linux General

Разрабатывается Foreign Linux - механизм запуска ELF-бинарников для GNU/Linux в ОС Microsoft Windows 7 и 8.

В отличие от coLinux, транслятор не требует установки драйвера и работает на amd64.

В отличие от Cygwin, используются «родные» бинарники, не PE.

Для тестирования доступен архив с дистрибутивом ArchLinux и бинарником flinux.

>>> Репозиторий Github

 , , flinux, ,

vi0
()

Утилита для создания MitM-точек доступа: wifiphisher

Новости — Безопасность
Группа Безопасность

Для Kali Linux разработана утилита, позволяющая удобно создавать точки доступа для перехвата пароля от Wi-Fi.

Возможности:

  • Отключение (deauthentication) клиентов от настоящей точки доступа.
  • Настройка беспроводного сетевого адаптера в режим точки доступа, копирующий имя и адрес атакуемой точки доступа.
  • Настройка NAT, DHCP-сервер.
  • Улавливающий веб-сервер (captive portal) со страницей для социальной инженерии, замаскированной под страницу обновления прошивки точки доступа.
  • Интерактивный текстовый интерфейс для оператора.

>>> Подробности

 , , ,

vi0
()

Взламываем контроллеры флешек, чтобы превратить их в клавиатуры

Новости — Безопасность
Группа Безопасность

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

Все инструменты доступны на Github: https://github.com/adamcaudill/Psychson

>>> Подробности

 ,

vi0
()

Переопределялка файлов на основе LD_PRELOAD

Форум — General

Не нашёл с ходу, написал: https://github.com/vi/fopen_override

Код основан на другом костыле: https://github.com/vi/syscall_limiter/tree/master/writelimiter

Может, где-то в интернете есть более нормальная реализация? А то я когда-то написал библиотеку для автоматического setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE всем сокетам, но потом оказалось, что такая в интернете уже есть (хотя почему-то сразу не нашлась)...

 

vi0
()

ipfs — распределённая файловая система на идеях Git и BitTorrent

Новости — Open Source
Группа Open Source

Идёт разработка распределённой файловой системы, опирающейся на уже проверенные технологии: BitTorrent, Git, Kademlia, также добавляя недостающую свою: «BitSwap».

Автор замахивается на «новую основу для веба», на основе продвинутых технологий, появившихся уже после HTTP.

( читать дальше... )

>>> Подробности

 , , ,

vi0
()

ipv6proxy - проброс IPv6 stateless autoconfiguration в другую сеть.

Форум — Admin

Написал хак для ipv6: полу-мост, полу-маршрутизатор.

Основной сценарий использования: компьютер получает IPv6 по Router Advertisings на одном интерфейсе, но хочется подключить ещё один хост к этой же сети на другом.

По-нормальному для этого используется мост (brctl), но это может быть проблемным: во-первых, на Wi-Fi с ограниченными драйверами мост может не работать - можем посылать пакеты только с нашего MAC-адреса, во-вторых поднятие моста сбрасывает всякие настройки, маршруты и т.д.

Для IPv4 обычно можно просто включить NAT. Но тянуть NAT в IPv6 не хочется, а если пытаться «дробить» /64 дальше, то stateless autoconfiguration не будеть работать...

Программа ipv6proxy делает 3 вещи:

  • Слушает и перенаправляет ICMPv6;
  • Добавляет маршруты (/128) на найденные в другой сети узлы;
  • Настраивает интерфейс при запуске (ipv6.forwarding=1, ipv6.accept_ra=2, allmulticast=true)

    --

    Проект на Github: https://github.com/vi/ipv6proxy

 ,

vi0
()

Можно ли на ЛОРе пиарить свои маленькие ненужны?

Форум — Linux-org-ru

Обычно я просто выкладываю проектики на Github.

Иногда получается схема: спросил на StackExchange → нет приемлемых ответов → накодил → ответил сам со ссылкой. Тогда дополнительная видимость проекта получается сама собой.

Можно ли ещё тут добавлять сообщения про них?

Если да, то:

  • В какой раздел? Development? Talks? В разные в зависимости от тематики?
  • Как часто? Раз в неделю OK?
  • Как лучше оформлять? Как-нибудь или есть образец/шаблон?
vi0
()

ki - смешиваем Clojure и JavaScript

Новости — Open Source
Группа Open Source
var nums = ki (take 6 (map (fn [x] (js x * 2)) (range 1000)));

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

Синтаксис, семантика и структуры данных языка вдохновлены Clojure и ClojureScript.

>>> Подробности

 , ,

vi0
()

Haste - компилятор Haskell в JavaScript

Новости — Open Source
Группа Open Source

Идёт разработка Haste (HASkell To Ecmascript) - компилятора из Haskell в JavaScript.

Перед проектом стоит цель создать практичный компилятор из Haskell в Javascript.

( читать дальше... )

>>> Подробности

 , haste,

vi0
()

Где тот самый блоб openh264?

Форум — Development

А этот волшебный блоб, который как джокер против патентов на H.264... Он вообще есть или может быть он потом будет? FAQ написан скорее в будущем времени...

Или я просто как-то не так ищу?

 , , ,

vi0
()

GUI log viewer

Форум — General

Есть gst-log-viewer, который читает логи GStreamer'а и строит график их «интенсивности» во времени. Можно щёлкнуть на график и сразу перейти к строке. Рисунок: http://i.stack.imgur.com/xKDMr.png

Есть ли что-нибудь похожее, но универсальное (не для GStreamer, а, например, для любых логов, пропущенных через ts '%.s').

Также хороша была бы функция фильрации и/или выделения цветом строчек лога с показом на графике где во времени и сколько прошедших grep строчек относительно общего количества.

 ,

vi0
()

Консолидированный ответ всего linux.org.ru на тему «выбор ноутбука»

Форум — General

На ЛОРе тредов «выбор ноутбука» море...

Как-то лень все их читать, а создавать N+1-вый уныло.

Есть ли где-нибудь хорошое, правильное, поддерживаемое в актуальном состоянии howto про «Выбор ноутбука для линуксоида», где отмечены и истории [не]успеха, и то чем чипсеты отличаются, и про то насколько нужен SSD, и про экраны, и про корпуса, ну, и, естественно, про особенности работы в GNU/Linux, и всё в гармоничной краткой форме с удобными запросами. Чтобы было видно какие устройства часто рекомендуют, а какие наборот.

vi0
()

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