VPS в зарубежных ЦОДах у российских провайдеров
Собственно, сабж. Есть ли такие варианты, сохранятся ли (знаю, что загадывать бессмысленно) и вообще какие есть подводные камни?
Собственно, сабж. Есть ли такие варианты, сохранятся ли (знаю, что загадывать бессмысленно) и вообще какие есть подводные камни?
В LMMS используются сэмплы в формате DS (DrumSynth) и большая часть библиотеки сэмплов, которая идёт в комплекте с ним содержит сэмплы в этом формате. Чем можно их сконвертировать их в что-нибудь более распространённое, вроде wav. Быстрым поиском ничего полезного для этой задачи и чего-либо вне контекста применения в LMMS и FL, я не нашёл.
Задача примерно такая: есть multiprocessing.connection.Listener (по сути, просто TCP сервер), который в бесконечном цикле принимает подключения, для простоты будем считать, что всё это в одном потоке.
Как правильно сделать так, чтобы при установке некоторого флага, например экземпляра threading.Event, он выходил из этого цикла, независимо от входящих подключений. Загвоздка в том, аналога select, который бы принимал примитивы я не нашёл и том, что метод accept у Listener'а блокирующий. Есть приближенное решение с подсовыванием в multiprocessing.connection.wait внутреннего сокета Listener'а и Connection'а, который будет играть роль флага, но это слишком костыльно по мне.
Столкнулся с такой задачей - есть некий источник видео и его надо сделать доступным по http в виде mpegts потока (заранее приношу извинения, если тут терминологическая каша).
Публиковать его, очевидно, можно ffmpeg'ом, в простейшем случае как-то так
ffmpeg -i /dev/urandom -f mpegts http://whatever/foo/bar
Но непонятно, что можно использовать в качестве сервера, который будет этот поток принимать и ретранслировать. Беглый поиск выдает только коммерческие комбайны, вроде Wowza и Flussonic, есть nginx-ts-module, но он по факту генерит HLS и DASH из ts потока.
Хотя вроде магии там нет - публикатор просто делает POST запрос и постоянно шлёт данные, а плеер, соответственно, GET и постоянно получает их. Т.е. запилить кривой, но более-менее рабочий сервер можно и самому, но прыгать по граблям на своем велосипеде не хочется. Или может есть какой универсальный сервер, в котором такое реализовано?
Почему есть люди, которые считают gopher альтернативой современному вебу? Есть же некоторое сообщество, которое это декларирует и поддерживает узлы и «порталы». Например, suckless, вроде как агитируют за gopher.
Ведь он сильно не лучше HTTP/HTML, например в стандартном протоколе нельзя никак получить информацию о содержимом, доступном по URL, а как его интерпретировать решает браузер по типу ссылки (либо с помощью костыля в виде префикса в URL). Возможности нескольких сайтов на одном IP нет, хранить состояние на клиенте (для аутентификации, например) нельзя. Сама разметка предназначалась для каталогов ссылок, впрочем относительные ссылки сделать нельзя, тег для текстовых записей отсутствует в спецификации, а его использование для создания импровизированных «страниц» приводит к прибитой гвоздями «разметке» ascii-артом.
Если хочется «легкий»/«чистый»/«правильный» интернет, то почему нельзя использовать, например, некоторый ограниченное подмножество HTML или XHTML, которое может быть отображено в любом браузере, и в комплекте получить более-менее актуальные инструменты и нормальные спецификации, в которых большая часть этих проблем отсутствует?
Есть примерно такой код.
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 или ещё как?
Есть nginx c rtmp модулем и нужно прикрутить возможность посмотреть по HLS запись трансляции с произвольного момента времени за последние N часов, вроде того, что в IPTV называется Timeshift.
Насколько адекватным/работоспособным способом будет хранение всех ts сегментов (за N часов) и самодельный параметризуемый генератор для создания плейлистов с нужными сегментами? Конкретно в контексте того, не рухнет ли всё при большом периоде записи/большом числе потоков?
Подскажите, где можно почитать про то, как технически был организован Fidonet, желательно в общем виде и чтобы было понятно непосвященному. Или хотя бы где можно спросить.
То, что находится беглым поиском в основном про социальную (и немного организационную) составляющую, либо в формате «инструкция для пользователя», где сплошные детали реализации в конкретном софте и всё это в доморощенной терминологии и для «полевых условий» так, что из этого основная суть понятнее не становится.
Не знаю, насколько релевантно, но cast saahriktu
Подскажите, где в x2go (клиенте или сервере) можно указать желаемую глубину цвета, как для VNC. В стандартном клиенте есть пресеты компрессии вида 64-png, 256-png, 16m-png, но какого-либо эффекта, в плане числа цветов, я от их применения не уловил.
Есть таблицы
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
Хочется найти простой кроссплатформенный компилируемый язык для программирования всякой мелочи для себя. Отправной точкой можно назвать C, но хочется поменьше рутины, возможностей на ровном месте выстрелить в ногу и наличия удобных базовых структур, вроде строк, динамических массивов и прочих списков. В кандидатурах сейчас пока C++ (не хочется лезть в дебри именно плюсов, с другой стороны писать в духе C с классами кажется как-то не комильфо), Pascal (начинал с Delphi когда-то, но уже почти не помню), Vala (тыкал немного, напрягает, что надо тянуть Glib и с поддержкой + кроссплатформой не очень), Go, D (на первый взгляд тоже ситуация с поддержкой и библиотеками не радует), Rust (какой-то инопланетный, но идея с управлением памятью интересна).
Есть ли какая-то готовая штука, которую можно развернуть у себя в которой можно загрузить или написать в веб-интерфейсе скрипт на каком-то языке, который она поддерживает, после чего можно будет вызывать его http запросом с параметрами и получить результат выполнения. При этом, интерфейс должен быть относительно высокоуровневым (т.е. не а-ля *(S|C)GI) и унифицированным, а скрипт должен быть ограничен в плане доступа к системе, кроме некоторого внутреннего хранилища, поэтому условный PHP не подходит.
Собственно, это слегка похоже на serverless, но не уверен, т.к. не приходилось сталкиваться. В качестве запасного варианта пока смотрю на то, чтобы прикрутить duktape к чему-нибудь.
Есть nginx с rtmp модулем, сконфигурированный генерировать HLS поток (с hls_path, без транскодирования). Проблема заключается в том, что при попытке проиграть этот поток показывается единственный первый кадр и больше ничего, та же самая история, если указать этот плейлист локально. При этом, запущенный с -v
, mpv показывает, что исправно грузит нужные сегменты; а также проигрывает поток, если указать плейлист с параметром --playlist
(хотя выдаёт warning, что это HLS поток и так делать не надо). VLC и ffplay проигрывают без видимых проблем.
Пару лет пользуюсь машиной на Aruba за 1€, а тут случайно заметил, что сетка тарифов сменилась и вся эта категория стала 2.79. Отсюда вопрос - куда можно перейти на сравнимый конфиг и стоит ли? После беглого просмотра нашёл только CX11 у Hetzner (разница в 0.3 и объёме диска) и какие-то предложения у Alpharacks (далековато и не совсем ясны условия, раз это спецпредложения).
Собственно, вопрос в заголовке. Домен нужен для утилитарных целей, вроде прикручивания сертификата к VPSке. Благозвучность не особо важна, чем короче, тем лучше.
Freenom почему-то на любой вариант выплевывает «not available». Большинство предложений для 3-го подразумевает бесплатность, только если тут же и хоститься. Пока использую freeavailabledomains, но как-то в один день не обнаружил ни домена, ни аккаунта, может у них какие-то технические проблемы были.
Есть одна часть web-приложения, задача которого получить коллекцию от сервера, отобразить в виде списка и дать интерфейс для манипуляций с документами из этой коллекции на клиент-сайде.
Что посоветуете использовать из фреймворков, чтобы реализовать, желательно проще в поддержке и не сильно оверкилльное для такой задачи.
P.S. Сейчас прототип слеплен бесхитростно на обычном JS.
На днях основательно обновился и обнаружил, что GTK стал 3.22 и отвалилась одна тема. И, судя по репозиторию, автор не спешит чинить её (хотя относительно 3.20 отписался в issues).
В связи с этим у меня вопрос - есть ли где руководство или человеческий changelog для портирования тем на новую версию GTK3.
Посоветуйте, пожалуйста, расширение для Firefox для установки своей страницы на новых вкладках.
Самые простые дополнения находил - их недостаток в том, что в адресной строке отображается url. У какого-то дополнения это было исправлено, но в итоге оно у всех новых вкладок очищало строку, в том числе и при открытии ссылок.
Ну и интересует именно установка своей страницы, а не просто настраиваемый speed dial.
Есть Cubieboard2, на который хочется установить Linux во внутреннюю память (изначально там что-то на android). После безуспешных попыток установить Armbian и Cubian с SD, выяснилось, что необходима предварительная установка штатного образа с помощью LiveSuit.
Собственно, проблема: после прошивки образом lubuntu при загрузке выводится логотип, два tux'а и на этом всё заканчивается. Часть образов с cubieboard.org вообще забраковываются LiveSuit. При этом образ на базе android (найденный благодаря archive.org) ставится успешно.
Есть скрипт на питоне, который получает задания в виде пары «действие» и «день и время в cron формате» и добавляет их в очередь apscheduler. Значение дня может быть wildmark'ом.
Вопрос: как сделать так, чтобы при ситуации, когда в одно и то же время должны выполниться два задания - с шаблоном и с конкретным значением, выполнялось задание с конкретным значением.
следующие → |