jayrandom: (Default)
[personal profile] jayrandom
Вспомнить старое доброе интернетское прошлое. В Юниксе всё должно элегантно составляться из кубиков, даже сетевые операции.

А ведь тот же NetCat продолжает работать. И можно с его помощью запросто засервить файл или двусторонне пообщаться текстом, как и 15-20 лет назад. Вспомнить команды разделения канала (о) и (оо).

Кстати, а почему только текстом? Почему бы не наложить на простой и незамысловатый сокет передачу звука прямо из микрофона? Что-нибудь в духе двух строчек (симметрично):

        Alice$   cat /dev/mic | nc -l 12345

        Bob$     nc alice.org 12345 > /dev/audio


Ну или совсем сурово:

        Alice$   cat /dev/webcam | mpeg_compress | nc -l 12345

        Bob$     nc alice.org 12345 | mpeg_decompress | mpeg_player -


Прибавить сюда SSH-шифрование канала на лету.
И тогда Скайп может спокойно гулять лесом :)

Date: 2011-03-02 11:54 am (UTC)
From: [identity profile] azgar.livejournal.com
Сжатие выгодно производить как можно ближе к железке.
Самое смешное будет, если железка (общается с системой уже пожатыми данными)|(может отдавать данные в нужном пожатом формате). А их, данные, для совместимости станут распаковывать а потом опять запаковывать.

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

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

Date: 2011-03-02 02:27 pm (UTC)
From: [identity profile] jayrandom.livejournal.com
Вот-вот. А *должно* быть возможно их сшивать на высоком уровне. Потому что тогда можно воротить всякие интересные штуки, которые без этого воротить нельзя.

Примеры того, как это делается, можно увидеть в AppleScript'e. Мне очень нравится идея, что любая программа - это не чёрный ящик, а серый ящик, который можно подёргать за заранее оговоренные протоколом ножки. Таким образом, даже самой GUIёвой программой можно управлять со стороны, посылая ей сообщения и получая ответы. Т.е. её можно скриптовать, и поддержка этого скриптования сделана на уровне опсистемы (а не каждой программы отдельно, как в Эмаксе и пр.).

А скрипт - это язык программирования самого высокого уровня (выше - интерактивный человек). Писать на нём новую функциональность неудобно и неэффективно, а соединять уже написанное - с превеликим удовольствием.

Date: 2011-03-02 02:51 pm (UTC)
From: [identity profile] azgar.livejournal.com
Концептуально, пайпы это слишком низкий уровень, чтобы на нём были накручены управляющие потоки.
Это, как раз, самый низкий уровень общения между процессами, ниже некуда.
Гуёвые опсистемы, на сколько я знаю, многие в большей или меньшей степени предоставляют возможность слать другим процессам или их ресурсам сообщения. Которые, опять же, более или менее стандартны. Хотя, не все и не на всё обязаны адекватно реагировать.
Гуёвая платформа это очень мощная сила. В плане энфорса сложных стандартных интерфейсов.
А интерфейс процесса в *нихах, наоборот, очень прост. Договорились о стдин, стдаут и стдерр, плюс пятнадцать сигналов и фсё (?).
Вот и поди организуй передачу от сетевого интерфейса на камеру сигнала "а снизь-ка ты мне, брат, разрешение".
Конечно, на самом деле будет проще, сеть говорит запаковщику "не пролезает!", запаковщик камере "режь частоту кадров" или как-то так. Но это всё надо срастить и стандартизировать. Ты ж понимаешь, какой это гмрй. Как всегда кому-то потребуется фича, которой в стандарте нету, начнутся расширения, нахлабучки, в пайп придётся вставлять конвертеры управляющих протоколов, ...
Но самое обидное, что нужно это всё только отдельным нетипичным элементам вроде нас с тобой :)

Date: 2011-03-02 04:06 pm (UTC)
From: [identity profile] jayrandom.livejournal.com
Когда это работает, это нужно всем. А поскольку не работает, то все привыкли, что этого не нужно и хотеть :)

Date: 2011-03-02 04:23 pm (UTC)
From: [identity profile] azgar.livejournal.com
Обычные паровозы на командной строке замечательно работают.
Но, увы нам, увы, нужны они далеко не всем :)
Более того, большинство о них вообще не знает.

Date: 2011-03-06 09:37 pm (UTC)
From: [identity profile] jayrandom.livejournal.com
Кому надо - тот знает. Кому не надо - от того и не зависит :)

Profile

jayrandom: (Default)
jayrandom

January 2026

S M T W T F S
    1 23
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 19th, 2026 08:32 pm
Powered by Dreamwidth Studios