LINUX.ORG.RU

Избранные сообщения serg002

полиморфная функция

Форум — Development

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

#define PR_HEX_WRAP(a, b) print_hex(a, sizeof(typeof(*a)), b)

void print_hex(void *a, size_t memb_s, size_t s) {
	size_t i;
	s = s * memb_s;
	printf("0X");
	for (i = 0; i < s; i++) {
		if ((i % memb_s == 0) && (i > 0)) 
			printf(" 0X");
		printf("%X", *((uint8_t *)a + i));
	}
	printf("\n");
}

можно передавать любой массив в ф-цию PR_HEX_WRAP и макрос автоматически передает нужный размер

 

IvanR
()

Linux shaper 10G (HTB)

Форум — Admin

Здравствуйте. Есть следующий вопрос:

Конфиг шейпера

tc qdisc add dev eth0 root handle 1:0 htb r2q 20
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Gbit burst 12000k cburst 12000k
tc class add dev eth0 parent 1:1 classid 1:9 htb rate 10Mbit ceil 10Gbit burst 6000k cburst 6000k quantum 200000

Как только трафик через класс 1:9 переваливает приблизительно в 1Gbit, у него (класса 1:9) вырастает backlog (я так понимаю это очередь), растёт задержка и появляются дропы. Через корневой класс 1:1 в это время течёт около 5Gbit, он не загружен, дропов нет, весь остальной трафик протекает нормально. CPU 20%. IPerf’oм мимо 1:9 трафик легко поднимается до 10G.

Тоесть захлёбывается только класс 1:9 и не могу понять почему. r2q / burst / cburst крутил в разные стороны :)

 , ,

xneo
()

Гениальных игр тред

Форум — Games

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

Ну в общем это тред игр, где вам хотелось воскликнуть «это гениально!». Добавлю еще одну, Do not feed the monkeys - игра про видеонаблюдение как одну из новых технологий зондирования. Еще одна вертится в памяти, может быть позже вспомню

 , ,

goingUp
()

Python Shared Objects

Форум — Development

Поскольку релиз пре-альфо-альфы моего проекта вызвал шквальный интерес, то почему бы мне не запостить результаты своих успехов на LOR.

https://github.com/byko3y/python-shared-objects - репушка

https://habr.com/en/post/585320/ - статья-обзор-бенчи (ахтунг, english).

https://www.reddit.com/r/Python/comments/qfdj8m/pso_easy_concurrency_with_pyt... — душный тред на reddit (тоже инглиш, внезапно)

Меня больше всего удивила не негативная реакция, нет, а тот факт, что мне даже никто не ответил в списках рассылки бидона. При том, что чел, который недавно просто выкинул GIL из питона (просто выкинул, почему бы и нет) и выложил свое творение, словил кучу ответов. Ну то есть ответы плана «откуда вас таких рожают? С 1999 года уже который раз выкидывают GIL, но ни к чему это не приводит». ХЗ, может центральные разработчики просто заняты очень важным обсуждением нового синтаксиса для ленивых параметров по умолчанию в PEP 671, и в поте лица пытаются выбрать между символом «=:» и «=>», но никак не получается. Люди работают, а я их тут отвлекаю.

 , , ,

byko3y
()

2 провайдера и разделение трафика

Форум — General

Научите плиз, как это осилить? Хочу из локальной сети запросы в инет на, к примеру, 443 порт отправлять через одного провайдера и получать с него же, все остальное через второго. Добавил 2 таблицы в rt_tables, правила такие

ip route add $PROV1_SUB dev $PROV1 src $IP1 table PROV1
ip route add default via $PROV1_GW table PROV1
ip route add $PROV2_SUB dev $PROV2 src $IP2 table PROV2
ip route add default via $PROV2_GW table PROV2

ip route add $PROV1_SUB dev $PROV1 src $IP1
ip route add $PROV2_SUB dev $PROV2 src $IP2

ip route add default via $PROV1_GW

ip route add from $IP1 table PROV1
ip route add from $IP2 table PROV2

ip route add $LOCAL_SUB dev $LOCAL_IP table PROV1
ip route add $PROV2_SUB dev $PROV2 table PROV1
ip route add 127.0.0.0/8 dev lo table PROV1
ip route add $LOCAL_SUB dev $LOCAL_IP table PROV2
ip route add $PROV1_SUB dev $PROV1 table PROV2
ip route add 127.0.0.0/8 dev lo table PROV2

ip rule add from all fwmark 400 table PROV2
Как в nftables (на худой конец iptables) фильтровать трафик меткой? Никогда этого не делал, нахожу примеры в которых конкретный источник указан, а мне нужно чтоб любой источник из локальной сети был.

 , ,

achilles_85
()

помогите найти на али силиконовые гвозди для fan

Форум — Desktop

Типа таких или лучше https://ireland.apollo.olxcdn.com/v1/files/vmue9h4l13kh-UA/image;s=1000x700

Потому что местные барыги цены им не сложат. Хочется их купить штук 100, чтоб были

 ,

serg002
()

Debian: какой приоритет выставить репозиториям?

Форум — Admin

Немного запутался. Установил Деб Bullseye, но некоторые пакеты очень хочется из Bookworm. Допустим, я добавил источник в sources.list и теперь хочу, чтобы нужные мне пакеты и необходимые версии зависимостей подтягивались из тестинга, например, через apt -t bookwarm install somepackage, но всё остальное не обновлялось. Какой приоритет надо выставить в /etc/apt/preferences? Пока сделал примерно так:

Package: *
Pin: release a=testing
Pin-Priority: 400

Я так ничего не сломаю? Все зависимости подтянутся нужных версий?

 , ,

potustoronnim_v
()

Как правильно готовить hostapd?

Форум — Admin

Подскажите плиз как правильно готовить hostapd. Пробовал разные опции, но больше 20 Мб/с hostapd клиентам не выдаёт. AP через NetworkManager выдает нормальную скорость, т.е. это не проблема железа. Чего не хватает?

Драйвер ath10k

Hostapd настраивал примерно как тут https://wiki.gentoo.org/wiki/Hostapd#802.11a.2Fn.2Fac_with_WPA2-PSK_and_CCMP

 ,

pingvinek
()

Почему когда пишут скрипты на Bash не используют фреймворки?

Форум — Talks

Очевидно что они ускоряют написание скриптов, упрощают, и помогают избегать ошибок. Как пример возьмем: https://github.com/niieani/bash-oo-framework

Почему же люди продолжают непрофессионально подходить к этому делу, и пишут чуть ли не в sh-стиле? Такое ощущение что они не сталкивались с реальным миром.

А еще труднее понять почему при написании скриптов не используют нормальную IDE с отладчиком?! Не знают? Не могут научиться?

Да, конечно Bash уже устарел, но это не повод погружаться в 60-е если нужно его использовать.

 ,

MOPKOBKA
()

Как подцепить в конки температуру оперативки

Форум — Desktop

Всем привет. Подскажите пожалуйста, как получить текущую температуру оперативки и вывести в конку ?

Спасибо.

 , ,

Azel
()

Как обращаться с графами, хранящимися в реляционной БД?

Форум — Development

Привет ЛОР!

Поскольку моя текущая работа сильно завязана на embedded и iot, я решил, что в свободное время от всего этого надо бы отдыхать, и собираюсь запилить очередное OpenSource-поделие.

В данном поделии предполагается работа и визуализация графов.

В теории графов не силен, зато хорошо знаю область деятельности, для которой буду писать софтинку.

В БД так же не силен, собственно хочу изучить реляционные БД с в свободное время.

Соответственно есть вопросы к уважаемым регистрантам и анонимусам. Эти вопросы я хочу постить здесь.

Итак, первая часть вопросов

Мне нужно будет хранить направленные ациклические графы в виде узлов и связей. Я хочу делать это так, чтобы эти самые графы можно было легко копировать.

В БД, будут таблицы:

  • графы
    • id
    • desc
  • узлы
    • id
    • graph -> графы.id
    • desc
  • связи
    • id
    • src -> узлы.id
    • dst -> узлы.id

Насколько я понимаю, при копировании графа мне придется:

  • вставить новую запись в «графы»
  • запросить её id
  • вставить дубликаты узлов с новым id
  • запросить их id
  • преобразовать старые id узлов для связей в новые
  • вставить связи с новыми id узлов

Во всем это мне не нравятся два предпоследних шага. Хочется облегчить себе работу и есть две альтернативных идеи:

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

  • добавить в «связи» колонку graph -> графы.id, добавить в «узлы» колонку num (номер узла в графе) и соответственно из колонок src и dst «связей» ссылаться не на узлы.id, а на узлы.num.

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

Вопросы:

  • Насколько правильно я понимаю что, надо делать?
  • Как правильно обращаться с такими графами в реляционной БД?
  • Если перечисленные варианты жизнеспособны, то в каких случаях какой из них целесообразно использовать?

 , ,

shkolnick-kun
()

Посоветуйте паяльник (и всё остальное), тред номер 145

Форум — Talks

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

Каждая из предыдущих попыток обламывалась на том месте, что мне катастрофически не хватает инструмента для решения даже самых простейших и постоянно возникающих проблем. У меня есть абсолютный минимум, который у меня появился ещё примерно в середине школы — китайский паяльник с регулировкой температуры и парой жал (острое и конусно-плоское), пара хреновых пинцетов и какой-то минимум расходников типа катушки ПОС-61, баночки спиртоканифоли и мотка китайской оплётки для выпайки. Ещё есть микродрель Proxxon формата а-ля Dremel и мультиметр UNI-T, который практически неюзабелен для диагностики, т. к. режим прозвона у него работает с лагом в почти секунду.

Этого достаточно, чтобы спаять провод или напаять гребёнку пинов на сраную ардуину, или чтобы с горем пополам собрать плату на 1206-х компонентах и каком-нибудь SOIC/TQFP (и понадеяться, что всё заработает с первого раза, чего разумеется не происходит), но делать что-то более сложное, чинить свои же косяки или заниматься ремонтом либо невозможно, либо максимально неудобно. Под «ремонтом» я разумеется понимаю не уровень коммерческой микроэлектроники, а простейший ремонт — уровень тех же ардуинок, демоплат и т. п. Перепаять случайно сожжённый линейный стабилизатор, заменить потенциометр со скрученной головой (при этом не убив остаток платы), всё такое.

Вторая проблема в том, что я плохо представляю, что конкретно мне вообще нужно. Я знаю, что мне нужен более удобный паяльник, наверняка фен, что-то для крепления плат на весу, какие-нибудь пинцеты, какие-нибудь расходники и средства их хранения — но я не знаю никакой конкретики, а вариантов слишком много.


Посоветуйте мне, пожалуйста, набор юного бойца с упором на сборку собственных устройств (а не просто ардуиноложство) и диагностику/ремонт/демонтаж. Меня интересует абсолютно всё — паяльные инструменты, ручные инструменты, диагностические инструменты, какие-то quality-of-life приспособления, рекомендации по маркам и видам расходников. Годные обстоятельные статьи тоже принимаются.

И да: существуют ли вообще промежуточные варианты между махровым китаем с алиэкспресса и профессиональным инструментом за сотни нефти? Меня интересуют именно они. Ковыряться в продуктах жизнедеятельности китайцев нет абсолютно никакого желания. Бюджет 100к на всё кроме диагностического инструмента и ещё 100к на всякие осциллографы и иже с ними.

 , , ,

intelfx
()

Чем пользуетесь из F-Droid?

Форум — Mobile

Собственно сабж. Третий андрофон. В первый раз ставил из него судоку. Во второй: блокнот. В этот раз: «Транзистор» для прослушивания радио.

А кто чем ещё пользуется?

 ,

AlexVR
()

Prometheus

Форум — Admin

Всем доброго времени суток! Как темплейтированном или вообще в alert rules Prometheus указать для какой они ноды или сервиса? в доках не нашёл инфы по variables К примеру у меня есть alert rules для бэкэнда,MongoDB,для «железа», контейнеров (Docker), как prometheus будет различать где и к чему применять эти правила алертинга?

 , ,

functionX
()

Как найти mikrotik в сети ?

Форум — Admin

Есть интерфейс на устройстве, на котором стоит mikrotik и раздает по dhcp адреса ( интернет подключен через GSM через другой интерфейс). Как найти ip mikrotik ?

 

Jopich1
()

скачет var в игре csgo

Форум — Games

стоит linux mint 20.2, постоянно скачет var. на винде такого не наблюдалось. все настройки игры - идентичны. именно эта проблема мешает полностью перейти на linux.

 , , ,

ttog_cttugamu
()

Распределенная ФС для картинок

Форум — Development

Привет!

Вот таким вопросом задался, что у нас есть опенсорсного для распределенного хранения картинок? S3 не предлагать, интересует именно решение которое можно самостоятельно поднять.

Задача примерно такая - есть картинки, не очень большие, можно считать до 200 Кб каждая, есть веб сервис, который живет на нескольких машинах, надо чтобы отдача картинок была отказоустойчивой, т.е чтобы они реплицировались между серверами, отдаются они не всем подряд, а только если у юзера есть права.

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

Кто что использует для подобного?

 , ,

OxiD
()

ido vs helm

Форум — Development

Использую ido + ido-flx + smex, но поглядываю на helm (много восторженных отзывов). Раза два пытался переползти, возвращался на ido. Есть ли для helm что то более вменяемое чем helm-smex? Какие преимущества у helm?

 

robotron5
()

Горячая замена HDD при программном RAID

Форум — Admin

Добрый день. Использую Raspberry Pi 4 в качестве NAS устройства. Год опыта использования показывают хорошие результаты, более чем доволен. Но вот задался вопросом. В случае какого-то сбоя, проблемы с одним из жестких дисков или его замены, как правильно его будет отключить и подключить новый? Не просто же вытягивать?

 ,

TheLinuxUser
()

Нормализация звука

Форум — Desktop

Всех приветствую. У меня вопрос по видео плееру mpv.

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

 ,

debian000
()