LINUX.ORG.RU

Сообщения WDWTFWW

 

VPS в зарубежных ЦОДах у российских провайдеров

Собственно, сабж. Есть ли такие варианты, сохранятся ли (знаю, что загадывать бессмысленно) и вообще какие есть подводные камни?

 , ,

WDWTFWW
()

Конвертация DS сэмплов из LMMS

В LMMS используются сэмплы в формате DS (DrumSynth) и большая часть библиотеки сэмплов, которая идёт в комплекте с ним содержит сэмплы в этом формате. Чем можно их сконвертировать их в что-нибудь более распространённое, вроде wav. Быстрым поиском ничего полезного для этой задачи и чего-либо вне контекста применения в LMMS и FL, я не нашёл.

 , ,

WDWTFWW
()

select для сокетов и синхронизационных примитивов

Задача примерно такая: есть multiprocessing.connection.Listener (по сути, просто TCP сервер), который в бесконечном цикле принимает подключения, для простоты будем считать, что всё это в одном потоке.

Как правильно сделать так, чтобы при установке некоторого флага, например экземпляра threading.Event, он выходил из этого цикла, независимо от входящих подключений. Загвоздка в том, аналога select, который бы принимал примитивы я не нашёл и том, что метод accept у Listener'а блокирующий. Есть приближенное решение с подсовыванием в multiprocessing.connection.wait внутреннего сокета Listener'а и Connection'а, который будет играть роль флага, но это слишком костыльно по мне.

 ,

WDWTFWW
()

Сервер для ретрансляции MPEG-TS потока

Столкнулся с такой задачей - есть некий источник видео и его надо сделать доступным по http в виде mpegts потока (заранее приношу извинения, если тут терминологическая каша).

Публиковать его, очевидно, можно ffmpeg'ом, в простейшем случае как-то так

ffmpeg -i /dev/urandom -f mpegts http://whatever/foo/bar

Но непонятно, что можно использовать в качестве сервера, который будет этот поток принимать и ретранслировать. Беглый поиск выдает только коммерческие комбайны, вроде Wowza и Flussonic, есть nginx-ts-module, но он по факту генерит HLS и DASH из ts потока.

Хотя вроде магии там нет - публикатор просто делает POST запрос и постоянно шлёт данные, а плеер, соответственно, GET и постоянно получает их. Т.е. запилить кривой, но более-менее рабочий сервер можно и самому, но прыгать по граблям на своем велосипеде не хочется. Или может есть какой универсальный сервер, в котором такое реализовано?

 ,

WDWTFWW
()

Gopher и альтернатива Web

Почему есть люди, которые считают gopher альтернативой современному вебу? Есть же некоторое сообщество, которое это декларирует и поддерживает узлы и «порталы». Например, suckless, вроде как агитируют за gopher.

Ведь он сильно не лучше HTTP/HTML, например в стандартном протоколе нельзя никак получить информацию о содержимом, доступном по URL, а как его интерпретировать решает браузер по типу ссылки (либо с помощью костыля в виде префикса в URL). Возможности нескольких сайтов на одном IP нет, хранить состояние на клиенте (для аутентификации, например) нельзя. Сама разметка предназначалась для каталогов ссылок, впрочем относительные ссылки сделать нельзя, тег для текстовых записей отсутствует в спецификации, а его использование для создания импровизированных «страниц» приводит к прибитой гвоздями «разметке» ascii-артом.

Если хочется «легкий»/«чистый»/«правильный» интернет, то почему нельзя использовать, например, некоторый ограниченное подмножество HTML или XHTML, которое может быть отображено в любом браузере, и в комплекте получить более-менее актуальные инструменты и нормальные спецификации, в которых большая часть этих проблем отсутствует?

 , , ,

WDWTFWW
()

Python и гонки при блокировке очереди

Есть примерно такой код.

import queue, threading

def test(q):
    time.sleep(4)
    c = q.get()
    print('thread2 - got {}'.format(c))
    q.task_done()
    print('thread2 - sending bar')
    q.put("bar")
    q.join()
    print('thread2 - done')

shared_queue = queue.Queue()
t = threading.Thread(target=test, args=(shared_queue, ))
t.start()
print('thread1 - sending foo')
shared_queue.put("foo")
shared_queue.join()
print('thread1 - got {}'.format(shared_queue.get()))
shared_queue.task_done()
t.join()

Т.е. в основном потоке помещаем сообщение в очередь и блокируем его, пока во втором потоке сообщение не достанут и не пометят, как обработанное и тоже самое, но наоборот. Проблема в том, что в большинстве случаев между task_done и помещением сообщения во втором потока, не происходит разблокировки основного потока. Если же сделать небольшую задержку (например, time.sleep), после task_done во втором потоке, то всё выполняется, как и ожидалось.

Вопрос: этого принципиально нельзя избежать, кроме как таким способом, использованием multiprocessing.JoinableQueue или ещё как?

 , ,

WDWTFWW
()

nginx-rtmp и DVR timeshift

Есть nginx c rtmp модулем и нужно прикрутить возможность посмотреть по HLS запись трансляции с произвольного момента времени за последние N часов, вроде того, что в IPTV называется Timeshift.

Насколько адекватным/работоспособным способом будет хранение всех ts сегментов (за N часов) и самодельный параметризуемый генератор для создания плейлистов с нужными сегментами? Конкретно в контексте того, не рухнет ли всё при большом периоде записи/большом числе потоков?

 , , , ,

WDWTFWW
()

Как (было) устроено FIDO?

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

То, что находится беглым поиском в основном про социальную (и немного организационную) составляющую, либо в формате «инструкция для пользователя», где сплошные детали реализации в конкретном софте и всё это в доморощенной терминологии и для «полевых условий» так, что из этого основная суть понятнее не становится.

Не знаю, насколько релевантно, но cast saahriktu

 

WDWTFWW
()

Настройка color depth в x2go

Подскажите, где в x2go (клиенте или сервере) можно указать желаемую глубину цвета, как для VNC. В стандартном клиенте есть пресеты компрессии вида 64-png, 256-png, 16m-png, но какого-либо эффекта, в плане числа цветов, я от их применения не уловил.

 ,

WDWTFWW
()

Join со значением поля в качестве имени поля в результате

Есть таблицы

item_id | param1 | param2
1       | one    | uno
2       | two    | duo
item_id | name   | value
1       | param3 | first
1       | param4 | "1"
2       | param3 | second

Можно ли каким-то образом составить SQL запрос, возвращающий такую таблицу

item_id | param1 | param2 | param3 | param4
1       | one    | uno    | first  | "1"
2       | two    | duo    | second | NULL

 ,

WDWTFWW
()

Человеческая замена C для своих задач

Хочется найти простой кроссплатформенный компилируемый язык для программирования всякой мелочи для себя. Отправной точкой можно назвать C, но хочется поменьше рутины, возможностей на ровном месте выстрелить в ногу и наличия удобных базовых структур, вроде строк, динамических массивов и прочих списков. В кандидатурах сейчас пока C++ (не хочется лезть в дебри именно плюсов, с другой стороны писать в духе C с классами кажется как-то не комильфо), Pascal (начинал с Delphi когда-то, но уже почти не помню), Vala (тыкал немного, напрягает, что надо тянуть Glib и с поддержкой + кроссплатформой не очень), Go, D (на первый взгляд тоже ситуация с поддержкой и библиотеками не радует), Rust (какой-то инопланетный, но идея с управлением памятью интересна).

 ,

WDWTFWW
()

Среда выполнения с HTTP интерфейсом или serverless на коленке

Есть ли какая-то готовая штука, которую можно развернуть у себя в которой можно загрузить или написать в веб-интерфейсе скрипт на каком-то языке, который она поддерживает, после чего можно будет вызывать его http запросом с параметрами и получить результат выполнения. При этом, интерфейс должен быть относительно высокоуровневым (т.е. не а-ля *(S|C)GI) и унифицированным, а скрипт должен быть ограничен в плане доступа к системе, кроме некоторого внутреннего хранилища, поэтому условный PHP не подходит.

Собственно, это слегка похоже на serverless, но не уверен, т.к. не приходилось сталкиваться. В качестве запасного варианта пока смотрю на то, чтобы прикрутить duktape к чему-нибудь.

 ,

WDWTFWW
()

mpv отказывается проигрывать HLS поток с nginx-rtmp

Есть nginx с rtmp модулем, сконфигурированный генерировать HLS поток (с hls_path, без транскодирования). Проблема заключается в том, что при попытке проиграть этот поток показывается единственный первый кадр и больше ничего, та же самая история, если указать этот плейлист локально. При этом, запущенный с -v, mpv показывает, что исправно грузит нужные сегменты; а также проигрывает поток, если указать плейлист с параметром --playlist (хотя выдаёт warning, что это HLS поток и так делать не надо). VLC и ffplay проигрывают без видимых проблем.

 , ,

WDWTFWW
()

Выбора бюджетной vps нить

Пару лет пользуюсь машиной на Aruba за 1€, а тут случайно заметил, что сетка тарифов сменилась и вся эта категория стала 2.79. Отсюда вопрос - куда можно перейти на сравнимый конфиг и стоит ли? После беглого просмотра нашёл только CX11 у Hetzner (разница в 0.3 и объёме диска) и какие-то предложения у Alpharacks (далековато и не совсем ясны условия, раз это спецпредложения).

 

WDWTFWW
()

Бесплатный домен 3 уровня без лишних телодвижений

Собственно, вопрос в заголовке. Домен нужен для утилитарных целей, вроде прикручивания сертификата к VPSке. Благозвучность не особо важна, чем короче, тем лучше.

Freenom почему-то на любой вариант выплевывает «not available». Большинство предложений для 3-го подразумевает бесплатность, только если тут же и хоститься. Пока использую freeavailabledomains, но как-то в один день не обнаружил ни домена, ни аккаунта, может у них какие-то технические проблемы были.

 ,

WDWTFWW
()

Выбор фреймворка

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

Что посоветуете использовать из фреймворков, чтобы реализовать, желательно проще в поддержке и не сильно оверкилльное для такой задачи.

P.S. Сейчас прототип слеплен бесхитростно на обычном JS.

 , ,

WDWTFWW
()

Портирование GTK3 тем на следующие версии

На днях основательно обновился и обнаружил, что GTK стал 3.22 и отвалилась одна тема. И, судя по репозиторию, автор не спешит чинить её (хотя относительно 3.20 отписался в issues).

В связи с этим у меня вопрос - есть ли где руководство или человеческий changelog для портирования тем на новую версию GTK3.

 ,

WDWTFWW
()

Своя страница для новых вкладок

Посоветуйте, пожалуйста, расширение для Firefox для установки своей страницы на новых вкладках.

Самые простые дополнения находил - их недостаток в том, что в адресной строке отображается url. У какого-то дополнения это было исправлено, но в итоге оно у всех новых вкладок очищало строку, в том числе и при открытии ссылок.

Ну и интересует именно установка своей страницы, а не просто настраиваемый speed dial.

 

WDWTFWW
()

Cubieboard2 и проблема с установкой на NAND

Есть Cubieboard2, на который хочется установить Linux во внутреннюю память (изначально там что-то на android). После безуспешных попыток установить Armbian и Cubian с SD, выяснилось, что необходима предварительная установка штатного образа с помощью LiveSuit.

Собственно, проблема: после прошивки образом lubuntu при загрузке выводится логотип, два tux'а и на этом всё заканчивается. Часть образов с cubieboard.org вообще забраковываются LiveSuit. При этом образ на базе android (найденный благодаря archive.org) ставится успешно.

 , ,

WDWTFWW
()

Конфликты задач в apscheduler

Есть скрипт на питоне, который получает задания в виде пары «действие» и «день и время в cron формате» и добавляет их в очередь apscheduler. Значение дня может быть wildmark'ом.

Вопрос: как сделать так, чтобы при ситуации, когда в одно и то же время должны выполниться два задания - с шаблоном и с конкретным значением, выполнялось задание с конкретным значением.

 ,

WDWTFWW
()

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