LINUX.ORG.RU

Сообщения xperious

 

bash нуб

#!/bin/bash
set +e

str="123"

function foo1()
{
    VAR1=500
    if (($VAR1 < 100)); then
        VAR1=100
    else
        VAR1=$(($VAR1/2))
    fi
    return $VAR1
}

if [ -z str ]; then
    VAR2=100
else
    VAR2=$(foo1 $str)
fi

echo "$VAR2"
# ... somethin else used VAR2

можете смело закидывать помидорами, но реально не могу понять почему VAR2 теряется. Как поправить чтобы VAR2 инициализировался 250 и можно было использовать?

 ,

xperious
()

странный спинлок

здравствуйте, в одной из реализаций стандартных библиотек си встретил следующую реализацию спинлока:

int pthread_spin_lock(pthread_spinlock_t *s)
{
	while (*(volatile int *)s || a_cas(s, 0, EBUSY)) a_spin();
	return 0;
}

static void a_spin()
{
	volatile int tmp = 0;
	a_cas(&tmp, 0, 0);
}

что делает a_spin? что за магия

 , ,

xperious
()

бесконечная запись двух стримов в один файл

Здравствуйте. Есть два файла разной длительности по времени... Из одного выдираем только видео, транскодируем в другой формат; из второго - только аудио и транскодируем в другой формат. В итоге эти два стрима мультиплицируем в выходной файл. Хочется, чтобы по окончанию файлов, они прогонялись заново, т.е бесконечно это делалось. В следующей команде стримы останавливаются: сначала один прекращается, потом другой.

ffmpeg 	-threads 2 \
		-stream_loop -1 -re -i input1.flv \
		-stream_loop -1 -re -i input2.ogg \
                -c:v libx264 -preset fast -pix_fmt yuv420p \
		-c:a aac -ar 44100 \
		-map 0:v -map 1:a \
		output.mp4

В чем ошибка?

 ,

xperious
()

дернуть из контейнера другой контейнер

есть хост. на нем образ1 и образ2. Заускаю контейнер образа1 в интерактивном режиме. Могу ли я из этого контейнера каким-то образом запустить на хостовой машине контейнер образа2? честно говоря, ничего не смог нагуглить

 ,

xperious
()

приаттачиться консолью к запущенному докер-образу

В общем, запустил контейнер с выхлопом в консоль. Назовем ее «основной». Все работает, отлично.

Есть ли способ «приаттачиться» к контейнеру из другой консоли(или даже эмулятора терминала), чтобы выполнять в этой «приаттаченной» консоли команды, которые не будут дублироваться на основной? Ну в смысле docker attach не подходит т.к. как раз происходит то самое «дублирование» команд. Честно говоря такой простой кейс, а меня вогнал в ступор

 ,

xperious
()

не компилируется портянка

Здравствуйте, что-то подвис на компиляции такого... подскажите, как поправить

template< int in1, int in2, typename FinalT,
		  int (FinalT::*WrapperImpl)(double const& arg1, double const& arg2, double& arg3)>
static int func_impl(int* self, double const& arg1, double const& arg2, double& arg3, bool in)
{
    return 1;
}

template< int in1, int in2, typename FinalT,
		  int (FinalT::*WrapperImpl)(double const& in_frame_info, double const& in_frame, double& out_frame_info)>
static int func(int* self, double const& arg1, double const& arg2, double& arg3)
{
    return func_impl< in1, in2, typename FinalT,
		      int (FinalT::*WrapperImpl)(double const& arg1, double const& arg2, double& arg3)>
	(self, arg1, arg2, arg3, false);
}

 

xperious
()

результаты автотестов по почте

Здравствуйте, есть набор python-скриптов… Есть дженкинс, который запускает эти python-скрипты(фактически, автотесты). Нужно как-то связать результаты выполнения этих тестов (failed или не failed) с посылкой почты определенным людям. Понимаю, что можно написать самому скриптик отправки на почту результатов, но мне кажется, что сейчас так никто не делает.

  1. Можно ли как-то сделать это через дженкинс?
  2. Можно ли скармливать дженкинсу какой-то файл результатов? Если да, то что за формат такого файла? Или хотя бы что погуглить
  3. Как в go такие вещи бы решались? Чисто ради расширения кругозора

Гуглить пробовал, но, честно говоря, от обилия инфы глаза разбегаются: много воды, и сути практически нигде нету. Помогите…

 , , , ,

xperious
()

Забивается раздел диска

здравствуйте, сделал дефолтную разбивку диска с usb-live... получилось так:

df -h:
udev                           12G            0   12G            0% /dev
tmpfs                         2,4G         9,2M  2,4G            1% /run
/dev/mapper/debian--vg-root    28G          26G     0          100% /
tmpfs                          12G         223M   12G            2% /dev/shm
tmpfs                         5,0M         4,0K  5,0M            1% /run/lock
tmpfs                          12G            0   12G            0% /sys/fs/cgroup
/dev/sdb2                     237M          37M  188M           17% /boot
/dev/sdb1                     511M          27M  485M            6% /boot/efi
/dev/mapper/debian--vg-home   422G          53G  348G           14% /home
жил какое-то время, но с сегодняшнего дня начал получать
X session: warning: unable to write to /tmp
при логине в иксах. Ну, очевидно, что памяти не хватает... Мягко говоря, не силен в tmpfs и т.д. Подскажите что можно сделать сейчас чтобы стабильно(а не временно) проблему решить?

 

xperious
()

где найти docker образ debian stretch

не разносите пожалуйста неофита, но на полном серьезе не могу найти как скачать именно образ debian 9… лазание по docker search или ручной поиск на hub.docker.com ничего не дали

 ,

xperious
()

Смена ip-адреса сайта

Чисто задумался: предположим, выделен ip-адрес моей веб-службе, которя в облаке, например, запущена... у клиента есть соединение с ним(браузер, например). Поменялся ip-адрес(он же не фиксированный, а берется из пула) - и, соответственно, connection грохается самым плохим образом. Допустим, через эту службу скачивался файл 100Гб в момент смены ip-шника. И все, кирдык, либо должны быть реализованы какие-то механизмы «докачки» на клиенте. Есть ли какое-то общепринятое название у проблемы о смене ip-адреса во время передачи данных?

 ,

xperious
()

синхронизация содержимого папок на разных машинах

здравствуйте, предположим, скачиваю я какой-то контент в определенную директори. хочу чтобы:

1) автоматом это же появилось на нескольких других машинах(в моем случае, виртуальных) в своих директориях.

2) при изменении содержимого в одной из машин - автоматически изменения выкатывались и на других машинах, в том числе и на хосте

есть ли какая-то несложная софтина для таких целей, а-ля rsync(он же вроде так не умеет)?

 ,

xperious
()

изменение настроек энкодера on-fly

здравствуйте, при кодировании с помощью libx264 хочу на лету менять битрейт... подскажите, кто-нибудь пользовался методом

X264_API int x264_encoder_reconfig( x264_t *, x264_param_t * );
если да, то он корректный вообще?

 , ,

xperious
()

странное поведение при dhcp

Здравствуйте... у нас в конторе есть рабочая подсеть 10.0.200...

dhcp присвоил мне 10.0.0.161. Вроде все нормально - почта работает, гит доступен, другими участниками сети моя машина пингуется.

Однако есть проблема: поднимаю у себя на машине виртуалку с сетевым мостом, ее ip 10.0.0.202; ее могу пропинговать со своей машины, однако с других машин ее не видно. В чем может быть проблема?

 , ,

xperious
()

NAT в понимании дилетанта

здравствуйте, просьба тех, кто давно занимается сетями, не смеяться.

Рассмотрим упрощенную схему. Я человек, с домашним ПК... предположим, сижу я в социальной сети... элементарным нажатием мыши, отправляю простой get-запрос на какой-то сайт... компьютер подключен через роутер, соответственно 80 порт, с которого браузер посылает запрос, транслируется в какой-то дугой на роутере(а роутер заносит это в таблицу). соответственно, последующие роутеры и маршрутизаторы делают то же самое... если сделать traceroute vk.com, то выдает следующее:

traceroute to vk.com (87.240.182.224), 30 hops max, 60 byte packets
 1  192.168.42.129 (192.168.42.129)  0.356 ms  0.379 ms  0.469 ms
 2  192.168.0.1 (192.168.0.1)  4.298 ms  5.855 ms  5.944 ms
 3  81.177.114.61 (81.177.114.61)  10.665 ms  10.829 ms  10.743 ms
 4  81.177.114.60 (81.177.114.60)  9.735 ms  9.771 ms  9.886 ms
 5  188.254.2.0 (188.254.2.0)  36.507 ms  36.478 ms  37.119 ms
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
т.е. мой get-запрос(точнее tcp-пакет), проходит, я полагаю, с десяток, как минимум, устройств принадлежащих моему провайдеру... и у каждого из используется NAT... в итоге все упирается в последнее устройство моего провайдера, которое далее уже контактирует с устройствами дата-центра, где лежит сайт. Меня мучает следующая мысль: пакетов, которые посылает моя машина на внешний интерфейс, десятки... таких как я у провайдера сотни тысяч пользователей. Поэтому для конечного устройства эти транслирования адресов выполняются сотнями миллионов в секунду.

Посему вопрос: реально ли это последнее устройство провайдера справляется с такой нагрузкой, или я неправильно представляю себе весь процесс?

второй вопрос: правильно ли я понимаю, что в выхлопе traceroute я, теоретически, обязательно мог бы увидеть свой белый ip(это самое конечное устройство провайдера) если б печатались все узлы?( а не три звезды вместо них)

 , ,

xperious
()

смартфон как usb-модем на debian

здравствуйте, ни разу с этим не связывался... в итоге есть небольшой мануал https://wiki.archlinux.org/index.php/Android_tethering_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) насколько это актуально? может сейчас можно сделать все проще.

 , ,

xperious
()

время выполнения == нагрузка на процессор?

одна программа стала много потреблять цпу... поисследовал ее с помощью perf... в итоге выдается статистика в процентах. Что это за проценты: время, затраченное на функцию, от общего времени снятия метрики или нагрузка процессора на эту функцию?

и вообще впервые задумался о вопросе: а, например, в утилите htop использование процент использования cpu каким-либо процессом будет ли равно проценту времени, потраченного на этот процесс процессором?

 , ,

xperious
()

подача на вход ffmpeg разжатых фреймов

здравствуйте, я новичок в ffmpeg... подскажите, а можно ли на вход ffmpeg подавать потоковое сырое видео через shared memory?

1) ну, допустим, есть у меня поток с веб-камеры(он ведь вроде raw-фреймами является), можно ли подавать его на ffmpeg для того, чтоб ffmpeg его кодировал и записывал в файл?

2) есть у меня свое приложение, на выходе которого есть raw-фреймы... можно ли их как-то подавать на вход ffmpeg? в идеале через shared memory

 ,

xperious
()

конвертация rgb32 в yuv420

здравствуйте, в каждом пикселе формата rgb32, присутствует альфа-канал, посему вопрос: можно ли валидно конвертировать rgb32 в yuv420p, или только обязательно в yuva420?

 , ,

xperious
()

с помощью какой ide вы исследуете исходники c/c++ библиотек?

здравствуйте, надоело grep-пать исходники на поиск реализации и т.д. чем вы предпочитаете открывать исходники? ну, имеется ввиду, если у проекта система сборки cmake, то проект отлично открывается qtcreator-ом с соответствующими плюшками современных ide... другое дело, если проект старый и на autoconfig... то чем его можно открыть?

 , ,

xperious
()

исключить зависимость из макросов debhelper

здравствуйте, есть кусок debian/control

Depends: ${misc:Depends}
, который в итоге раскрывается в список, в ктором фигурирует libstdc++ какой-то версии... можно ли что-то сделать, чтобы libstdc++ не требовалась после раскрытия макроса?

 , ,

xperious
()

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