И это всё МОЁ

Приветствую коллеги,


Дорабатываю имеющуюся C++ обертку для порт аудио.


Не могу понять как мне организовать хранение семплов, простых числовых значений типа int разной длины или float.
Вопрос по ООП дизайну.


К сожалению имеющая кодовая база построена так разные типы семплов хранятся в разных типах шаблонных классов


MyBuffer<INT_16> 
MyBuffer<FLOAT_32>


Хранилище типизировано и везде в коде который использует класс MyBuffer стоят switch/if по типу контейнера. Что мне кажется не очень правильно, при добавлении нового типа семплов везде придется ставить дополнительные if блоки.


В каждом таком хранилище будет только один тип значений.
Наверное будет правильно сделать MyBuffer не шаблонным а обычным классом.
Я могу использовать простой union для хранения разных типов данных в одном объекте и хранить информацию о том какой в целом тип содержит мой контейнер. ( Есть и std::variant из С++17 но мне кажется тут можно обойтись и простым union) Т.е внутри моего класса будет


std::vector<myUnion> dataStorage;


Также можно хранить данные в сыром виде (массив unsigned char) и тоже хранить информацию о том какой тип данных хранится реально внутри контейнера.


Или же можно создать базовый тип Sample и наследников семплы разного формата Sample16, Sample32Float например.
И в таком случае хранить коллекцию указателей на этот базовйый тип


std::vector<*Sample>


Хотелось бы еще и данные как то в одном виде отдавать из этого контейнера и избежать всех if/switch по типу.


И тут к сожалению все рассмотренные подходы упираются в одинаковую проблему.
метод не сможет вернуть разные типы данных.


type? GetSample(int ch, int frame) 


либо надо иметь разные методы, что привежет к тем же if/switch в коде который использует класс MyBuffer()


int GetIntSample(int ch, int frame);
float GetFloatSample(int ch, int frame);


либо просто отдавать сырые данные в массиве char


void GetSample(int ch, int frame, char* outBuffer);


Может быть действиельно обойтись простым хранением unsigned char, и отдавать эти данные unisigned char для всех?
Например при отправке этих данных по сети они все в любом случае в массив байт преобразуются.


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


Буду благодарен за идеи!
Спасибо!









 , , ,








И это всё МОЁ

В качестве оконного менеджера использую dwm, который запускаю через startx. Курсор изменил скопировав тему в ~/.icons/ и прописав название темы в .Xresources, во всех программах курсор изменился, но курсор в терминале st, dwm, dmenu остался прежним.
Вопрос - почему так?

Как изменить курсор, чтобы он работал глобально, желательно через configuration.nix?

Пробовал прописывать тему курсора через lightDM, но это не решило проблему.

Буду очень благодарен, так как стандартный X11 курсор не масштабируется на hidpi разрешениях, а у меня в планах использование такого дисплея.








 , , , ,








И это всё МОЁ

@bryak, я что-то не понял, где здесь нарушение было?









 ,








И это всё МОЁ

Без лишней помпы вышел февральский релиз проектов Osmocom, реализующих CNI (Cellular Network
Infrastructure).


Это свободная (GPLv3+) реализация компонентов сетей 2G, 2.5G и (частично) 3G.


Упрощённая схема взаимодействия всего это добра доступна в http://osmocom.org/projects/cellular-infrastructure/wiki и позволяет наглядно оценить чудовищный объём работы, проделанный разработчиками.


Несмотря на триумфальное шествие по планете 5G и разговоры про неизбежность 6G старый добрый GSM и (E)GPRS по прежнему интересен энтузиастам, а местами даже актуален и активно используется.


Из интересных новшеств за почти год разработки стоит отметить:



  • поддержка IPv6

  • реализация Cell Broadcast

  • поддержка frequency hopping

  • управление мощностью сигнала

  • одновременная поддержка GPRS и EPGRS


И множество других любопытных улучшений.









 , ,








И это всё МОЁ

Собственно. Буквально полчаса назад ни с того, ни с сего «апач» начал переделывать ссылки вида localhost/site в localhost/srv/http/site/index.php. Но если перейти по адресу localhost/site/index.php, всё в порядке. Что это вообще может быть и куда копать, какие логи смотреть?


Кстати, пять минут назад обновился (пришла обновка PHP и модуля php-apache), та же картина.









 ,








И это всё МОЁ

Я тупой и не могу найти (и в документации тоже) где в 389-server хранятся ACL’ы, конкретно интересует, какие атрибуты по ним он должен хранить шифрованными.









 ,








12:13

Flutter 2

И это всё МОЁ

Разработчики Flutter в рамках мероприятия «Flutter Engage» анонсировали новое крупное обновление – Flutter 2. Также вышла новая версия Dart 2.12.


Flutter известен тем, что позволяет разработчикам создавать портативные приложения для любой платформы, которые компилируются и работают нативно. В Flatter 2 заявлена поддержка 5 операционных систем и веб, теперь один и тот же код может работать на iOS, Android, Windows, macOS, и Linux, а также в виде веб-приложений.


Из важного:



  • появилась надёжная null-безопаность

  • добавлена стабильная реализация FFI

  • новые утилиты разработки и профилирования


P.S. Canonical заявили, что все будущие десктопные и мобильные приложения будут писать на Flutter.


P.P.S. Доклады и презентации с Flutter Engage на YouTube.









 ,








И это всё МОЁ

Кто-нибудь знает, как установить vim-plug глобально в /etc/vim/vimrc? Хочется для каждого пользователя установить темы, настройки, а дальше сам пользователь в своем хомяке тонко настраивал. Я пытался установить глобально в /etc/vim/, но ничего толкового не получилось.









 ,








И это всё МОЁ

Всем доброго времени суток. Не получается использовать ffmpeg через socksproxy.
Запускаю следующим образом:


ffmpeg -http_proxy socks5:127.0.0.1:2517 -i 192.168.1.20/test/playlist.m3u8?id=video1 -c:v copy -c:a aac -bsf:a aac_adtstoasc -hls_time 2 -hls_list_size 5 -hls_wrap 5 -start_number 1 -y -f hls /tmp/hls/test/playlist.m3u8


Проксю socks5:127.0.0.1:2517 для ffmpeg пробовал прописывать по-разному, убирая socks5 и http по очереди, и добавляя их, играл с кавычками, но всё в итоге приводило к тому, что ffmpeg нормально отрабатывает, получает чанки из плейлиста, но не через прокси, а напрямую.


Socks5 настроил с помощью ssh, также настраивал и с помощью Dante. Конкретно с прокси проблем нет, она отрабатывает как положено, проверял через curl, а ffmpeg почему-то этот параметр игнорирует.
После долгого гугления нашёл много вопросов по этой теме, оставленных без ответа, где-то даже писали, что ffmpeg через socks работать не умеет.
При запуске ffmpeg с дебагом видно, что флаг он прочитал:


Reading option '-http_proxy' ... matched as AVOption 'http_proxy' with argument 'socks5:127.0.0.1:2517'


Также пробовал 3 разных сборки ffmpeg, но картина везде одинаковая.
Судя по всему, ffmpeg и правда не умеет работать через socks, и, если это так, то может чем-то можно получать чанки из плейлиста и передавать их в FFmpeg - некая прослойка между ffmpeg и источником видео?
Обращу внимание на то, что нужна именно socksproxy, т.к. источник видео у меня всегда разный. Ссылка на входе для ffmpeg 192.168.1.20/test/playlist.m3u8?id=video1 заворачивается на php-скрипт, который по id определяет какой плейлист отдать в ffmpeg, поэтому nginx или haproxy для этих целей не подойдут, т.к. заранее я не могу знать по какому пути мне нужно будет проксировать ffmpeg.









 , ,








И это всё МОЁ

Доброго! Есть dns сервер на centos.
Есть сервер 1с к которому обращаются пользователи. В зоне dns это сервер записан как 172.16.х.х ss.bases.local
Имя сервера ss, когда обращаешься к нему по имени ss.bases.local он нормально резолвиться, а когда по прямому имени ss нет.
Для правильной работы 1с сервер должен откликаться и на ss.bases.local и на ss. Какие внести настройки в dns сервер чтобы это заработало. Файл hosts править нецелесообразно.









 , ,








И это всё МОЁ

Доброго дня! Открыл я локальную сеть клиентов vpn, теперь не знаю как пакеты пересылать из локальной сети Клиента1 по туннелю strongSwan в локальную сеть клиента 2.
то есть вот такой маршрут: 192.168.10.1 -> 10.1.1.1 -> StrongSwan Server -> 10.1.1.2 -> 192.168.20.1
Кто нибудь знает как это сделать?
Моя крутая сеть: https://ibb.co/0XH2J6Q


Более подробное описание:

Локальная сеть 1 со своим роутером и провайдером

Клиент 1 с двумя ip (192.168.10.x и 10.1.1.1)

VPS на амазоне, на котором крутиться StronSwan Server

Клиент 2 с двумя Ип (192.168.20.x и 10.1.1.2)

Локальная сеть клиента 2 со своим роутером и провайдером


Все клиенты и сервер VPS Debain 10









 ,








И это всё МОЁ

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









 








И это всё МОЁ

Добрый день, у меня есть Raspberry Pi и хочется сделать образ с работающей системы что бы можно ее было клонировать на другую карту. Подскажите.



  1. Мне нужно брать карту точно такого же размера?

  2. Если у меня вся система с настройками занимает там допустим пару гигов, сколько получится образ?

  3. Как это вообще сделать примерно, подмонтировать SD карту на linux машие и через dd?









 








И это всё МОЁ

Имею GlassFish 5 + JDK 1.8, нужно подцепить библиотеку клиента Firebird, куда только не сувал libfbclient.so - результат нулевой, ставлю из репозитория libfbclient2 - все начинает работать, PURGE ЭТОТ ПАКЕТ и тоже все работает.


КАК ТАКОЕ ВОЗМОЖНО??? Голову уже сломал что этой стеклянной рыбе нужно??? ГДЕ В ИТОГЕ БИБЛИОТЕКА ЛЕЖИТ??? которая не удалилась, поиском НИЧЕГО НЕТ!!!









 , , ,








И это всё МОЁ

Есть видео .flv программой menidinfo говорится о неком аудио nellymoser? Чем его вопроизвести, mplayer и VLC не видят звуковую дорожку









 ,








И это всё МОЁ

Привет! Два пакета что ли идут в одном Nginx? Как это понимать?


apt-cache show nginx | grep Version
Version: 1.18.0-0ubuntu1
Version: 1.17.10-0ubuntu1


И ещё вопрос? Чем отличается установка от сайта nginx и собественных убунту репозиториев? На сайте nginx.org есть свои репы указанные http://nginx.org/ru/linux_packages.html. Чем они будут отличаться, если я подключу эти репы?









 ,








И это всё МОЁ

Задача: Поднять серевер, через который можно будет обновлять ОС, ставить ПО из internet.

Имеется: Debian, CentOS

Понимаю, что если бы ОС не были разные, а только, например Debian то все можно было бы решить с помошью кэширования репозиториев apt-proxy \ apt-cacher \ apt-cacher-ng. Однако поскольку имеем еще и CentOS, то не этой ОС просто не будет работать yum.
Решение, которое я пытаюсь внедрить -squid.

Имеем squid, который я собрал с поддержкой ssl:

#squid -v**

Squid Cache: Version 4.6
Service Name: squid
Debian linux

This binary uses OpenSSL 1.1.1d 10 Sep 2019. For legal restrictions on distribution see https://www.openssl.org/source/license.html

configure options: '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' 'BUILDCXXFLAGS=-g -O2 -fdebug-prefix-map=/tmp/squid/squid-4.6=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -latomic' 'BUILDCXX=x86_64-linux-gnu-g++' '--with-build-environment=default' '--enable-build-info=Debian linux' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--libexecdir=/usr/lib/squid' '--mandir=/usr/share/man' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,SMB_LM' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,time_quota,unix_group,wbinfo_group' '--enable-security-cert-validators=fake' '--enable-storeid-rewrite-helpers=file' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--with-gnutls' '--enable-ssl' '--enable-ssl-crtd' '--with-openssl' '--enable-linux-netfilter' 'build_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-g -O2 -fdebug-prefix-map=/tmp/squid/squid-4.6=. -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -latomic' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'CXX=x86_64-linux-gnu-g++' 'CXXFLAGS=-g -O2 -fdebug-prefix-map=/tmp/squid/squid-4.6=. -fstack-protector-strong -Wformat -Werror=format-security'

# lsb_release -d

Description: Debian GNU/Linux 10 (buster)

# cat /etc/squid/squid.conf

acl localnet src 10.0.0.0/8
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access deny all

http_port 3128
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl/squid.pem key=/etc/squid/ssl/squid.key

sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER

#always_direct allow all # если включить, перестает работать http
ssl_bump server-first all
ssl_bump none all
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/ssl_db -M 4MB

hierarchy_stoplist cgi-bin ?
cache_dir ufs /var/spool/squid 2196 64 256
coredump_dir /var/spool/squid
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log none
shutdown_lifetime 3 second
logfile_rotate 1

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

#ls /etc/squid/ssl/

squid.csr squid.der squid.key squid.pem

При текущем раскладе я имею только http. https не работатет.

1614847921.866 35412 10.55.200.200 TCP_MISS/503 2696 GET http://ftp.br.debian.org/debian/pool/main/t/telegram-desktop/telegram-desktop... - HIER_NONE/- text/html
1614850515.527 0 10.55.200.200 TCP_DENIED_ABORTED/200 0 CONNECT 10.55.200.1:3129 - HIER_NONE/- -
1614850516.530 0 10.55.200.200 TCP_DENIED_ABORTED/200 0 CONNECT 10.55.200.1:3129 - HIER_NONE/- -
1614850518.533 0 10.55.200.200 TCP_DENIED_ABORTED/200 0 CONNECT 10.55.200.1:3129 - HIER_NONE/- -

Подскажите, где я накосячил с конфигом?
Если имеется другоее решение, буду благодарен за подсказку.








 ,








И это всё МОЁ

всем привет


подскажите плиз как правильно настроить, хочу настроить в 1 блоке с ssl, чтобы при попадании на урл https://test.ru редиректился на https://www.test.ru


если в блоке с ssl добавляю редирект то происходит цикл


дополнительный блок добавить уже нельзя


 server_name test.ru;


должен остаться в блоке 1


server 1 {
listen 443 ssl;

server_name test.ru;
server_name www.test.ru;

server 2 {
listen 80;
server_name test.ru;
server_name www.test.ru;
return 301 www.$server_name$request_uri;
}









 








И это всё МОЁ

Привет,
Проблема состоит в том, что когда я указываю выход группы пользователей через определенный ip, они не могут зайти на ресурсы в сети, только если их не указывать в списке исключений браузера, но исключения работают не очень корректно.
Подскажите в чем проблема, когда не использую tcp_outgoing_address, все нормально.


auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -s HTTP/[email protected]
auth_param negotiate children 20 startup=0 idle=1
auth_param negotiate keep_alive off


external_acl_type users ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]
external_acl_type vpn ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]
external_acl_type vip ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]


acl localnet src 10.10.10.0/24
acl localnet src 10.10.30.0/24
acl localnet src 172.16.0.0/29
acl localnet src 192.168.0.0/21


acl auth proxy_auth REQUIRED


acl users_acl external users
acl vpn_acl external vpn
acl vip_acl external vip


acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT


acl BLOCKED url_regex -i «/etc/squid/black_list» # Black list


tcp_outgoing_address 172.16.0.2 vpn_acl
tcp_outgoing_address 172.16.0.3


http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager


http_access allow vip_acl
http_access deny BLOCKED
http_access allow users_acl
http_access allow vpn_acl


http_access allow auth
http_access allow localhost
http_access deny all


http_port 3128


cache_dir ufs /var/spool/squid 2048 16 256
coredump_dir /var/spool/squid


refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|?) 0 0% 0
refresh_pattern . 0 20% 4320









 








И это всё МОЁ

Я тут загуглил, и оказалось, что внутри Falcon9 стоит Linux. Так что внезапно все эти скучнейшие жонглирования «туда и обратно» оказались онтопиком. И даже больше:



“We use C++ for all vehicle control systems, Python for tools, testing and automation, and Javasсript/HTML/CSS for our displays.”



А еще все это работает на паре x86 процессоров.


https://thenewstack.io/the-hardware-and-software-used-in-space/


И вот, представьте, что выйдет очередная ракета, и на ней полетят на Марс люди. Вы бы доверили доставку своей ценной персоны на 54млн км системе, которую любой драйвер может ввести в состояние комы, в которой используются, с одной стороны, технологии монолитного ядра времен юности вашей матери/бабушки/прабабушки, а с другой - те же технологии, что в компе балбеса-игруна, который в крайнем случае может перезагрузить систему или переустановить виндоус? И софту на самых небезопасных ЯП? К тому же, наверняка там кодовая база с бородой, и более безопасные фичи новых стандартов просто не используются.


Как можно на таком ширпотребе что-то серьезное делать…









 , ,