IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#acetonevideo
/2022/12/21
~acetone
Most2
Ruskoye_911
anon2
cancername
immibis|ygg2
offensive_nickname
poriori_
weko
whothefuckami_
zero_tolerance
acetone tst: иногда кажется, что жизнь коротка, чтобы я добрался до бсд-систем)
weko tst: ну так и в клирнет не надо так ходить, чтобы тебя начали по таймингам вычислять (ну или выходить через tor)
weko Просто тут палка такая неудобная
weko Прямо шест какой-то
weko acetone: когда нибудь и своё ядро напишешь, всё впереди!:)
fruid в линукс минт такие курсоры завезли, что может уже и не захочется никуда переходить
acetone fruid: сразу деанон) привет
fruid привет
weko Да, деанон сходу такой уххххх :)))
weko А что там за курсоры
weko Крутые какието
fruid никакого деанона, я не индус который делал курсоры для минта
weko Может скачать себе :)
fruid weko а там еще и темы сделали нормальные вместо той зеленой болотины
weko О, это хорошо
weko Было бы неплохо ещё на арч перебазироваться
weko xD)
fruid зачем
weko Хз, арч топ
weko :))))))
fruid не, nixos уже победил арч
fruid и пакеты писать удобнее, и систему настраивать
fruid а проблема что без интернета нельзя установить есть что там, что там
weko Ты у нас тот самый никоменятель?))
weko Можно
weko Там пакеты есть
fruid не знаю о ком ты
fruid Пакеты пакетами, а новый установщик в арче жаждет Сети
weko fruid: ну ладно, поверю тебе xD)
fruid а nixos так вообще жить без нее не может
weko Не можно пакеты скачать и ставить с них
weko В реальности
weko В арче
fruid ну в nixos тоже можно nix-store таскать руками и костылить, проблема в том что кроме manjaro никто этим не занимается
fruid кому-нибудь нужен поиск по library genesis в виде маленького скрипта, который при первом запуске скачает индекс либгена?
fruid он требует wget и sqlite3 (утилиты терминала), и собственно терминал с возможностью показывать кликабельные ссылки с названиями, не соответствующими урлам. gnome terminal может, другие терминалы не смотрел
fruid но формат вывода в скрипте можно напрямую поменять, впринципе не так уж там сложно
fruid 1.2 кб кода
fruid acetone: захостишь где-нибудь?
weko Не в арче это не костыль
fruid оно и в никсе не костыль, но все равно костыль
acetone fruid: что захостить не понял)
fruid код
fruid а то я потеряю
fruid там полнотекстовые индексы для поиска уже готовые и sql я попросил по ним работать, здорово же
fruid и все через ipfs gateway, то есть не жаблокируют
fruid хотя конечно надо уже свой сайт делать
weko Верните релоадеда
acetone fruid: торможу)) если ты про конфиги на одноплатник, конечно опубликую
weko Блин, захотелось какой нибудь творческий форум организовать. Но думаю пока что не потяну, не буду пока что
weko Просто мысли вслух
weko Странные туннели на 200мб, дудос какой то как будто
weko Кто кого то дудосит
acetone weko: на существующих форумах активность дай
acetone 4rum.i2p например
fruid а у меня за полдня 30 мб транзита
fruid хорошо мне.
weko fruid: белый айпи?
fruid чернее черного
weko ясно
weko тогда это нормально
fruid подключаю компьютер через мобильник
weko можешь yggdrasil поставить, слегка увеличит количество
fruid я не особо хочу
weko ладно
fruid вон как вас дудосят транзитом
weko да нет игга не потянет такое
fruid к тому же иггдрасиль же без DHT, он отвалится как только отвалятся прописанные в конфиг пиры
weko и там мало вообще пиров
weko fruid: так укажи много
weko хоть все
fruid если их будут банить, то все по списку и забанят
acetone fruid: игга автоматически работает в локальных сетях, а этом ее сила, а оверлейгый режим через интернет это "костыль" архитектуры)
weko ну так ещё и не банят
weko оверлейный режим нужен потому что нет настоящего мешнета
weko на физическом уровне
acetone Ага
fruid так ну это вопрос точно уже не на сегодня
weko впринципе я пытался 802.11s настроить с иггой, но что -то не вышло
fruid сегодня я хочу бэкап на флешку сделать автоматический)
weko fruid: так я просто подсказал что можно сделать, я не говорю что это очен7ь нужно)
weko оо, любимая "больная" тема про бэкапы
whothefuckami fruid: твоя анонимность зависит от транзита
whothefuckami Без транзита тебя как в торе вычислят
weko дда я не думаю что он нужен обсосу
whothefuckami кто такой обсос?
weko если тобой интересуются то вычеслят
weko провайдер
whothefuckami Бруууух
whothefuckami С такой логикой можно сразу шифрование отрубить
weko нет
weko ты не понял
whothefuckami Нужно хотяб пытаться что-то делать
weko понятно что отсуствие транзита плохо
weko так да я ему и подсказал
weko я думаю понимание есть
fruid у меня аж 30 мегабайт транзита
whothefuckami Лан. Сегодня кстати опять пилить сяду многотуннельную хрень
whothefuckami Честно честно!
weko оооооооооооооооооооооооо та самая шутка?! круто!
fruid это примерно 25% от всего трафика
weko fruid: маловато
weko acetone: кстати ты знаешь что нибудь про 802.11s и другие технологии чтобы делать на уровне коннекта мешнет?
acetone weko: большую часть теории я учил даже без смартфона, поэтому я больше по проводным технологиям
acetone Про вафли толком ничего не знаю
weko ну провод тоже важно
acetone Но было бы интересно просветиться
weko окей, ну вот как проводной мешнет сделать
weko есть какие то же тезисы основные
fruid навалить роутеров, присобачить к ним проводов
fruid некоторые провода собачить к другим роутерам чтобы собачить еще больше проводов
acetone И поставит на все иггу :D
acetone Автоматика и шифрование
weko ну иггу надо ещё дождать пока стабильно станет
weko дождаться*
weko это же надо vlan отдельный делать наверное
weko вот нету технологии чтобы поставил и поехал
weko может стоит какую то железку готовую сделать
weko в которой и провод можно сунуть и к соседу закинуть, и вафля там будет
weko и всё заработает с 1 раза
weko размечтался :D
weko кстати интересно на базе какого нибудь одноплатника сделать таккую железку
weko было бы прикольно
acetone weko: вчера кстати в вг прописал /64 подсеть игг, понравилось
acetone Без локального иггдрасиль ходить
weko acetone: всмысле? allowed-ips или чего?
weko не совсем полнял
acetone weko: да, локальный Address и allowed-ips соответственно
weko тоесть теперь игга стоит на впске? или и на сервере, и на клиенте?
acetone weko: на впске, а клиент не зная ничего про игг роутит 200::/7 через впску
weko хм, понял! круто
weko да, я осознал , ))
weko только вот не очень такая схема
weko лучше ставить всё на локальное устройство
weko а то мало ли что хостер там делает
acetone weko: бесспорно, локальное использование всех приложений в приоритете
weko ygg можно конечно, так так не анонимно, но моя шиза говорит что лучше ставить иггу на локальное устройство
weko хотя... не знаю, может ради (какой-то) экономии батарейки
weko кстати, рад обнаржуить, что при прослушивании радио стало гораздо меньше разрывов
fruid кое-как уговорил cron работать
fruid 30 * * * * /bin/bash -c 'borg create /media/fruid/zenbackup01/borg::$(date --utc --iso-8601=seconds) $HOME/work && borg prune --keep-last 100 /media/fruid/zenbackup01/borg'
weko_ ухъ
fruid ага, при этом borg еще и с виндой работать не умеет
whothefuckami Нужно экспертное мнение диванных архитекторов
` Всё говно.
weko что там
whothefuckami Я тут написал дерьмо, совсем чуть чуть. Нужно ваше мнение. Фатальные недостатки есть? Баги? Просто гавно какое-то?
whothefuckami template<typename ExplanationType>
whothefuckami class ExplanatoryCondition
whothefuckami ExplanationType explanation{};
whothefuckami std::condition_variable cv{};
whothefuckami template<typename lockType>
weko построить монархию, коммунизм?
whothefuckami void notifyOne(lockType& lock, ExplanationType explanation)
whothefuckami this->explanation = std::move(explanation);
whothefuckami lock.unlock();
whothefuckami cv.notify_one();
whothefuckami template<typename lockType, typename Predicate>
whothefuckami [[nodiscard]] ExplanationType wait(lockType& lock, Predicate predicate)
whothefuckami cv.wait(lock, predicate);
whothefuckami return explanation;
whothefuckami Типо чтоб можно было пробудить поток
weko ну я не плюсер... (
whothefuckami И он уже знал, зачем его пробудили
whothefuckami Потому что мы дали объяснение... как-то так
fruid но ведь потоки не спят
whothefuckami Ну, они ждут
fruid и не ждут, они разве что выполняют sleep
whothefuckami Ждут, когда будет исполнен notify() какой-нибудь
fruid который ты им даешь
fruid не знаю, я умею рожать потоки и выполнять в них какой-нибудь код (thread spawn), после чего они сами умирают и все
whothefuckami Ну блин, мне такое не подходит к сожалению
fruid если у тебя какие-то нотификации то надо добавить информации о какой системе распределения работы по потокам идет речь
fruid про рантайм
whothefuckami Не понял, что ты спросил
fruid а я понял, у тебя потоки ждут пока какой-то мьютекс например разлочится, после чего.... поток возвращает explanation и умирает?
whothefuckami Нееее
whothefuckami Потоки выполняют работу, когда их notify(), ну выполнил поток работу, пошёл опять спать ждать notify()
whothefuckami Это чтобы не спавнить потоки по over9000 в секунду
fruid понимаю, тредпул воркеры все дела
fruid меня в целом смущает explaination - это вообще что такое?
fruid обычно объяснения нужны людям а не машинам
whothefuckami А как бы ты назвал?
fruid пока никак, потому что я не понял зачем оно, что оно делает
weko status code
weko может так как то
weko типо того
whothefuckami Когда я notify() поток, я даю ему причину
whothefuckami Чтоб он понял, зачем его notify()
whothefuckami И это делается в основном, чтобы if(reason == CLOSE) close();
whothefuckami Ну, чтоб поток завершить.. Как-то так
fruid И у тебя будет прямо в твоем механизме распределения работы по потокам вся эта простыня всех возможных reason без возможности использовать это дело как библиотеку и добавлять новые reason без изменеия твоего кода
fruid что если ExplanationType wait будет возвращать не ExplanationType, а указатели на функции без аргументов, которые ничего не возвращают?
fruid пробудись и выполни мол лямбду мою
whothefuckami А зачем?
fruid потому что указатели на функции в отличие от веток if с reason'ами можно передать в твой код извне
fruid А еще есть другая концепция - организовать задания для потоков в одну общую структуру например под мьютексом, и поток вместо ожидания твоего notify будет ожидать появления в структуре с заданиями новых заданий, над которыми не
fruid работают другие потоки.
fruid и так постепенно прогрессируя можно будет даже во время ожидания разблокировки мьютекса выполнять какую-нибудь полезную работу, а не просто спать
whothefuckami Вот эта концепция наверно не подходит тому, что я хочу сделать
fruid а что ты хочешь сделать?
fruid в целом оно все универсально и доступно даже в стандартной библиотеке en.cppreference.com/w/cpp/thread/async
whothefuckami Каждый отдельный поток делает операции ввода/вывода. Нужно так:
whothefuckami В программе есть потоки ввода-вывода
whothefuckami Припёрло программе сделать ввод-вывод
whothefuckami Программа проверяет потоки ввода-вывода
whothefuckami Если поток занят(делает ввод-вывод), пропускаем его
whothefuckami Если свободен(ждёт условно говоря), пихаем ему в работу ввод/вывод
whothefuckami Не важно зачем
fruid организуем доступ ко вводу-выводу через мьютекс и всё
whothefuckami У нас ввод-вывод делается в N разных мест, где N - количество потоков ввода-вывода
fruid так а в с++ есть трейты?
fruid а ну да, через наследование
fruid class IOThread { public: AbstractIODestination myIo; }
fruid IOThread threads[N];
fruid for thread in threads { if thread.myIo.isFree { thread.myIo.work() } }
fruid соответственно потоки спавнятся в конструкторе IOThread, там же им задается их конкретный IO, наследующийся от AbstractIODestination
fruid мне кажется это выглядит ближе к твоему описанию
acetone --------------
acetone ОПУБЛИКОВАЛ СТАТЬЮ: habr.com/ru/post/702592
acetone --------------
acetone Независимые онлайн-сервисы: философия свободного интернета и истории его администраторов
acetone ----------------
fruid как, опять?
acetone (без дизрута, не дождался)
weko УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!
weko !!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!
weko !!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!
weko !!!!!!!!!!!!!!!!!!!!!!!!!!!!!УРА СТАТЬЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
weko простите )
fruid whothefuckami: но меня напрягает что так у тебя спят и ожидающие работы потоки ввода-вывода, и управляющий поток, делающий паузу между опросами свободности потоков ввода-вывода
fruid а хотя вообще пусть спит что угодно, это ведь нормально и дает операционной системе процессорное время на работу с другими приложениями
fruid что-то я начитался что надо как можно меньше спать и как можно больше работать для оптимальной производительности, всякие там фибры с умными мьютексами
whothefuckami Скинь что читал
whothefuckami <fruid> class IOThread { public: AbstractIODestination myIo; }
whothefuckami <fruid> IOThread threads[N];
whothefuckami <fruid> for thread in threads { if thread.myIo.isFree { thread.myIo.work() } }
whothefuckami Ну типо, вроде примерно т��к и планировалось
whothefuckami isFree() - как реализован?
fruid это тот кусок мьютекса, который проверяют wait'ом
whothefuckami И вот мы вернулись к той проблеме, с которой начали
whothefuckami Ладно, напишу сначала что-то рабочее, потом вернусь сюда
fruid какая проблема?
whothefuckami Поток при пробуждении
whothefuckami Должен либо выйти из цикла ввода-вывода(завершиться), либо делать ввод-вывод
fruid (что читал - долго рылся на эту тему, в итоге читал доки к библиотекам всяким вроде github.com/djarek/ufiber github.com/RichieSams/FiberTaskingLib#what-are-fibers github.com/google/marl и на других ЯП всякое)
fruid не знаю зачем, но как я понял ты хочешь чтобы можно добавить работу в IOThread либо завершить IOThread
fruid Значит надо взять и сделать addWork(work) и despawn() в методы IOThread
whothefuckami Которые будут работать... Как?
fruid IOThread имеет свой мьютекс. Соответственно despawn() блокирует этот мьютекс, записывает поле shouldDespawn = true; и разблокирует мьютекс. Соответственно поток изнутри уже проверяет эту переменную и самоубивается
whothefuckami Ладно, теперь понял
fruid что касается addWork(work)... Ну опять-таки ты плохо объяснил что это за работа, поэтому я могу предложить например addWork(string work), мол пошли в свой IODestination такую-то строку. Или addWork(указатель-на-void-функцию work), мол выполни мою функцию work
fruid acetone: статья большая и интересная, даже боялся найти там себя, хорошо что я часто меняю ники и шифруюсь
fruid сильно не бойся мьютексов, между уже рожденными потоками можно только с их помощью создать некое общение, мьютексы даже в ассемблере есть
whothefuckami Мьютексов боюсь? Я? С чего бы?
fruid не знаю, я вот побаиваюсь
whothefuckami Жесть
fruid я про них впервые узнал на языке Rust
fruid там вообще страшная простыня <Arc<Mutex<SomeDataType>>>
fruid мьютексы - это локи, локи - это вэйты, вэйты - это враг производительности
fruid я почему-то мечтал что смогу познать лок-фри алгоритмы и забыть о мьютексах как о классе
weko acetone: прочитал , очень круто!
weko прямо на почти час чтения)