~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
Там пакеты есть
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
private:
whothefuckami
ExplanationType explanation{};
whothefuckami
std::condition_variable cv{};
whothefuckami
public:
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 без изменеия твоего кода
whothefuckami
hmmmm
fruid
что если ExplanationType wait будет возвращать не ExplanationType, а указатели на функции без аргументов, которые ничего не возвращают?
fruid
пробудись и выполни мол лямбду мою
whothefuckami
hmmmm
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
а хотя вообще пусть спит что угодно, это ведь нормально и дает операционной системе процессорное время на работу с другими приложениями
whothefuckami
Угу
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
прямо на почти час чтения)