#181
|
|||
|
|||
Получаем ноду в зиване - квест
Nil A написал(а) к Vitaliy Aksyonov в Jan 23 02:52:44 по местному времени:
Нello, Vitaliy! Friday January 20 2023 14:56, from Vitaliy Aksyonov -> Nil A: VA> Квест, так квест. Хочется ж сделать все по процессу. Как в VA> полиси прописано. Они сами своих полисей не читают, если что. Там написано, зайти директом с заявкой с адреса /9999. Я зашёл, а они, сука, мне так и выдали 1:16/9999 https://nodehist.fidonet.org.ua/?address=1%3A16%2F9999 Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#182
|
|||
|
|||
Re: Test
Vitaliy Aksyonov написал(а) к Nil A в Jan 23 19:28:08 по местному времени:
Нello Nil! 21 Jan 23 01:41, you wrote to me: VA>> Ты перепутал с rvalues. lvalues были с самого рождения. NA> Оговорился. Я так и подумал. Просто поправил. ;) VA>> Или указатели. Да и сейчас много где используется, особенно, если VA>> объект надо отдать в несколько потоков и кто его удалит - заранее VA>> неизвестно. NA> Звучит как std::shared_ptr, если не известно кто и в каком потоке NA> прибьёт. Или как в qt, есть некий parent, который держит всё NA> остальное. Он самый. Хоть это и не очень хороший дизайн, но иногда приходится. VA>> Пожалуй не найдется ни одного человека в мире, включая авторов VA>> стандарта, который может сказать, что знает плюсы на 100%. NA> Там каждый автор в своей узкой нише хочет что-то продвинуть, и как раз NA> нужен такой кворум, чтобы сказать, что остальные части ломаются при NA> этом. Но чаще, они они просто говят, потому что нельзя. Согласен на все 100%. Тут главное, чтобы команда была нужного размера. Если слишком маленькая - легко пропустить какую-то мелочь. Если слишком большая - никогда не договоришься. NA> Кстати, FTSC ещё хуже, они говорят, низя и всё. Почему? Потому что NA> дядя Randy Bush копирайт держит на центральный FTS-0001. А нахуй вы NA> тогда нужны? А мы чтобы обновлять FTA-1003 регулярно. Концепт копирайта давно устарел. Только капиталисты его так просто не отдадут. VA>> Можно неплохо разбираться в какой-то одной-двух областях, но VA>> полностью не знать. Он тупо оргомный. NA> Там вопрос даже в другом, там нельзя вот так вот взять и "переписать с NA> нуля", должно быть легаси-совместимо. Поэтому там полно костылей. NA> Поэтому появляются всякие D языки ;-) убийцы C++. Иногда надо выбросить легаси. Да. Это больно. Примеры есть. Тот же python 3. Никто не умер. Обратные примеры тоже есть. Netscape - отличный браузер был. Похоронили... NA> Про всё предусмотреть, ну вот std::string, например, в c++23 добавили NA> contains() наконец таки, в c++20 добавили startswith()/endswith(). В NA> питонах это с версии2 ещё, с той не юникодной. Прикол в том, что они иногда умудряются сделать это сохраняя бинарную совместимость. Вот где высший пилотаж. NA> Кстати, вот из-коробки я хочу на C++ почитать файлы, и их полочить NA> надо, либо замапить в память, но такова нету. И даже нельзя достать NA> int fd. Из fopen() я могу достать fileno(), а из C++ fstream никак без NA> хака. А если я захочу почитать как корутина, например, уже в лиункс NA> фейсбуки отдали io_uring, и даже твой любимый boost:asio так умеет. Ну NA> окей, давайте сделаем IO thread pool (как какой-нибудь Libuv), и будет NA> все файловые операции туда кидать, но ведь thread pool так и не NA> завезли, только сраный std:async, который не оправдывает своего NA> названия. Кстати, в федо, которое умерло, сегодня самый гуру линуксов NA> - это Гремлин. Он в рулинуксе в прошлом году даже стал спорить со NA> мной, что на epoll якобы можно повесить файловые операции асинхронно, NA> так же как и сокеты. Опять согласен. Плюсы сосут именно из-за отсутствия элементарных кирпичиков, которые есть в стандартной либе любого уважающего себя языка. Файлы, сеть. Ну хоть потоки в стандарт добавили. И то хлеб. NA> Про юникод, я хочу открыть файл, и указать кодировку, и хочу получать NA> std::string каких-нибудь кодепоинтов, или рунов, или чего-то такова, NA> что я обычно в python, golang,.. получаю. QString так умеет, внутри NA> utf16, но мне пофиг на реализацию. В этом плане qt именно core, без NA> GUI части, он мог бы закрыть многие потребности обычного с++ NA> пейсателя, то, что в libc++ сделали неудобно, или не сделали совсем. Qt проприетарный... UTF либ и других хватает. Опять же. Кто что выбрал. В Java - UTF16 внутри использует. Плюсы же - просто байты. Ему, по большому счету по барабану, что там внутри. VA>> memset/memcpy в плюсах вообще быть не должно. Как и new/delete. NA> Ну я на кодревью new/delete не пропущу, но сам я пишу вон placement NA> new в готовом буфере, некая оптимизация при принятии сетевых пакетов, NA> например. А вот memcpy() тоже пришлось применить, ибо std::equal NA> оказался не готов хавать std::bytes также как и unsigned char, я даже NA> на стековерфлоу тут возмутился NA> https://stackoverflow.com/questions/75121121 В голову приходит одно место, где без new не обойтись. Но оно наружу не торчит. Иногда надо сделать объект, который можно использовать только через std::sharedptr. Потому что он использует shared_from_this. Тогда я использую фабричный статический метод std::shared_ptr<A> Create(). При этом конструктор делается приватным. И тут либо объявлять fiend, либо делать return std::sharedptr<A>(new A). Вот в этом месте норм. Так как этот new наружу не торчит. NA> memcpy() будет на buildin заменён компилятный, а он сука знает про ему NA> суют, выравненно оно или нет (а то бы я сам просто NA> reinterpretcast<uint32t>(адрес) делал бы), и он разные 256битные NA> регистры можно использовать при копировании, если march задан не NA> низкий. reinterpret_cast может быть очень опасен. Кто его знает, как оно внутри объект сделает. Это из разряда - в 99.9% случаев работает, а иногда взрывается. :) Например, на какой-то хитрой архитектуре. VA>> Когда пейсался голдед - плюсы были "C с классами". И большинство VA>> пейсателей писали так, как привыкли на голых сях. А там особо не VA>> развернешься. NA> Труъ. NA> Кстати, про стандарто-пейсателей. Я щитаю, самый большой их косяк был NA> - это std::auto_ptr ;-) понятно что сегодня его уже депрекейтнули, но NA> осадочек остался. auto_ptr удивил не одного плюсовика. И принес массу "приятных" моментов. Похлеще, чем #define TRUE random(0.5) // Удачной отладки, суки. VA>> SFINAE - тоже прикольный пример. Например в boost::bind был VA>> реализован просто через набор шаблонов до 20 параметров. VA>> Еслибольше - хрен. Но это приводило к тому, что когда возникает VA>> ошибка компиляции - вываливает тонны нечитаемого текста. Я когда VA>> только начинал boost использовать - очень страдал от этого. VA>> Каждая такая ошибка приводила к мучительному поиску ошибки, VA>> которая в большинстве случаев была вообще в другом файле. VA>> Например, попытка скопировать некопируемый класс. NA> К сожалению, сегодняшнюю libc++ не переписали на c++20 concepts, и NA> если там напортачить с std::optional, в котором возвращается NA> std::uniqueptr, да ещё как-нибудь через .andthen(), то там 10 NA> экранов шаблонной магии вылезает, а могло быть всего одна строчка, что NA> вот требование такое то не совпало. Хотя, они уже там потрудились NA> static_assert() по максимуму понапихать, чтобы в таком виде свалилось, NA> а не в SFINAE. Поэтому я жду, когда мы таки доберемся до C++20 и концепты заюзаем. Хотя бы наш код будет выдавать вменяемые ошибки при компиляции. VA>> Именно так это работает. Как книжки от "трейдеров" как VA>> зарабатывать деньги на бирже. Если бы это реально работало, то VA>> книги такие никто бы не печатал, тупо рубили бы бабло. NA> Если бы экстрасенсы могли узнавать что-то через специфичный API, NA> который они так декларируют, то они бы просто все были бы миллионерами NA> от выигрыша в лотерею, или на фондовом рынке. :-) Но чудес не бывает. Умные люди стригут лохов. А, как известно, лох - не мамонт, никогда не вымрет. :D VA>> Корутины имеет смысл использовать там, где много IO. Так же, как VA>> и асинхронное программирование. Иначе особого прироста они не VA>> дают. NA> Ну сокеты все. И это всё реализовано. Но часто надо ещё и фалы NA> почитать, а вот это почитать асинхронно уже сложнее. boost::asio отлично с этим справляется. libuv, libevent - море их. Опять же, под задачу. Когда и многопоточная программа получше будет. А когда и однопоточная сгодится. Надо смотреть на требования. NA> Ещё коруинами обзывают то, что называется генераторами на самом деле. NA> Хотя вроде современный std::ranges::views::iota как-то без co_yield NA> внутри вроде. Именно. В том же питончике это просто синтаксический сахар над генераторами. Vitaliy ... 10.0 times 0.10 is hardly ever 1.00. --- GoldED+/LNX 1.1.5-b20220504 |
#183
|
|||
|
|||
Re: Получаем ноду в зиване - квест
Vitaliy Aksyonov написал(а) к Nil A в Jan 23 19:46:26 по местному времени:
Нello Nil! 21 Jan 23 02:52, you wrote to me: VA>> Квест, так квест. Хочется ж сделать все по процессу. Как в VA>> полиси прописано. NA> Они сами своих полисей не читают, если что. NA> Там написано, зайти директом с заявкой с адреса /9999. NA> Я зашёл, а они, сука, мне так и выдали 1:16/9999 NA> https://nodehist.fidonet.org.ua/?address=1%3A16%2F9999 https://youtu.be/pp140ciByg8 :D В полиси написано, что по возможности надо использовать вообще /-1, если софт поддерживает. А если не поддерживает, тогда уже 9999. Для меня это просто развлечение. Поинт есть, общаться могу. Нода не жмет. Подожду. :) Заодно софт причешу получше. Вот это мы нафлудили в тестовую эху. :) Ты где живешь-то? В нодлисте - Нижний Новгород. Но судя по твоим мессагам - не там. Vitaliy ... 10.0 times 0.10 is hardly ever 1.00. --- GoldED+/LNX 1.1.5-b20220504 |
#184
|
|||
|
|||
pvt.luna.local
Nil A написал(а) к Vitaliy Aksyonov в Jan 23 07:21:24 по местному времени:
Нello, Vitaliy! Friday January 20 2023 15:00, from Vitaliy Aksyonov -> Nil A: VA> 100% порвано. В нее никто с 2017 года не писал. Через 5020/715 мне там ответил 450/68, вот с такими симбаями и путём. SEEN+BY: 450/68 5015/46 5020/400 715 1042 5034/13 5058/104 @PATН: 450/68 5020/715 Короче порвана. Я щас лонглинком выступлю между несколькими линками пожалуй. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#185
|
|||
|
|||
Test
Nil A написал(а) к Vitaliy Aksyonov в Jan 23 07:37:48 по местному времени:
Нello, Vitaliy! Friday January 20 2023 19:28, from Vitaliy Aksyonov -> Nil A: VA> В голову приходит одно место, где без new не обойтись. Но оно наружу VA> не торчит. Иногда надо сделать объект, который можно использовать VA> только через std::shared_ptr. Потому что он использует VA> sharedfromthis. Тогда я использую фабричный статический метод VA> std::shared_ptr<A> Create(). При этом конструктор делается приватным. VA> И тут либо объявлять fiend, либо делать return std::shared_ptr<A>(new VA> A). Вот в этом месте норм. Так как этот new наружу не торчит. std::make_shared же, он при этои ещё и одной аллокацией внутри создаст, и управляющй блок, и сам объект Так то если ты eturn std::sharedptr<A>(new A) делаешь, то там случается два разных new, для A, и сам std::sharedptr<A> конструктор внутри управляющий блок должен сделать. Так что вот, как раз тут new плохо писать. VA> reinterpret_cast может быть очень опасен. Вот и clang-tidy так же думаем. Но, во-первых, когда либу C'ную используешь, там какой-нибудь char как буфер хотят, а у тебя unsigned char везде, или новый модный std::byte. Вот и приходится кастить. Кстати! Для этого случая как раз сделали в C++20 std::bit_cast, только в clang у меня его похоже нет. VA> Кто его знает, как оно внутри объект сделает. Только POD объекты можно как блок байтов рассматривать, т.е. std::istrivially_copyablev<>, а более сложные объекты уже нельзя. VA> Это из разряда - в 99.9% случаев работает, а VA> иногда взрывается. :) Например, на какой-то хитрой архитектуре. Иногда есть void или char, и хочется закастить на uint32t какой-нибудь и сразу прочитать там двойное слово. И на x86 это даже сработает, только с невыравненного адреса будет медленее. На Арме, например, да, взорвётся если не выравнено. Вот, кстати, я завожу uint32t tmp; и делаю memcpy(&tmp, откуда, 4); А так как memcpy он buildin компилятора, то он по факту сделает сразу чтение двойнова слова если выравненно, а если нет, то побайтно скопирует, в том и сила memcpy. VA> Похлеще, чем #define TRUE random(0.5) // Удачной отладки, суки. Меня хаски удивил, знаешь как? Они там, #define min и max сделали. А знаешь какая у меня ошибка? Где-то внутрях std::vector или типа таво оказывается всё сломано. Какова хуя? А вот, ::max() функция переопределяется. VA> boost::asio отлично с этим справляется. libuv, libevent - море их. boost::asio асинхронно файлы умеет читать только на новых ядрах линукса с io_uring, и вроде на венде умеет с их API. При этом он не будет делать fallback на thread poll. А вот libuv сразу thread pool заводит. Libevent И libev только про сокеты. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#186
|
|||
|
|||
Test
Cheslav Osanadze написал(а) к Vladimir Fyodorov в Jan 23 06:48:51 по местному времени:
Привет Vladimir! 21 Янв 23 00:03, Vladimir Fyodorov -> Cheslav Osanadze: VF>>> то бага нет. Кто-нибудь может объяснить, в чём тут порылась VF>>> собака и как её избежать? CO>> Я так глубоко не стал погружаться, что бы описывать твит для CO>> разных эх, просто отрубаю твит руками, в нужных.:) VF> Ну, во-первых, ты вряд ли много эх модерируешь, чтобы это заметить. Не много. Но в некоторых отключаю даже не по модераторским соображениям, а по соображениям тематики эхи - там, где есть вменяемый модератор, там и затвитованные становятся приличными.:) VF> Во-вторых, возможно, ты вообще не используешь твиты. Нечего было бы отключать... Другой вопрос, что это не очень то удобно, заранее то не вспомнишь, индикатора "Твит" подсвеченного нет. Эхи, где нужно отключить, обычно и читаются отдельной группой. Это всё - моё имхо, конечно же. Мне показалось, что так проще, чем городить отдельные группы с твитом. Cheslav. ... Пpодам тамагочи на седьмом месяце. --- ... |
#187
|
|||
|
|||
Test
Cheslav Osanadze написал(а) к Vladimir Fyodorov в Jan 23 06:48:51 по местному времени:
Привет Vladimir! 21 Янв 23 00:03, Vladimir Fyodorov -> Cheslav Osanadze: VF>>> то бага нет. Кто-нибудь может объяснить, в чём тут порылась VF>>> собака и как её избежать? CO>> Я так глубоко не стал погружаться, что бы описывать твит для CO>> разных эх, просто отрубаю твит руками, в нужных.:) VF> Ну, во-первых, ты вряд ли много эх модерируешь, чтобы это заметить. Не много. Но в некоторых отключаю даже не по модераторским соображениям, а по соображениям тематики эхи - там, где есть вменяемый модератор, там и затвитованные становятся приличными.:) VF> Во-вторых, возможно, ты вообще не используешь твиты. Нечего было бы отключать... Другой вопрос, что это не очень то удобно, заранее то не вспомнишь, индикатора "Твит" подсвеченного нет. Эхи, где нужно отключить, обычно и читаются отдельной группой. Это всё - моё имхо, конечно же. Мне показалось, что так проще, чем городить отдельные группы с твитом. Cheslav. ... Пpодам тамагочи на седьмом месяце. --- ... |
#188
|
|||
|
|||
Получаем ноду в зиване - квест
Nil A написал(а) к Vitaliy Aksyonov в Jan 23 08:00:16 по местному времени:
Нello, Vitaliy! Friday January 20 2023 19:46, from Vitaliy Aksyonov -> Nil A: VA> Ты где живешь-то? В нодлисте - Нижний Новгород. Но судя по твоим VA> мессагам - не там. Да, всё со своего старого AKA пишу, а так если считать ноду по нахождению жопы сисопа, то 1:16/101. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#189
|
|||
|
|||
Получаем ноду в зиване - квест
Vladimir Fyodorov написал(а) к Nil A в Jan 23 07:35:22 по местному времени:
Разнообразно приветствую! NA> Они сами своих полисей не читают, если что. Там написано, зайти NA> директом с заявкой с адреса /9999. Я зашёл, а они, сука, мне так и NA> выдали 1:16/9999 NA> https://nodehist.fidonet.org.ua/?address=1%3A16%2F9999 Забавно. Можно в анналы записать :) -- Всяческих благ. Искренне Ваш, Vladimir Fyodorov, эсквайр. ... Пропала несущая? Заплатите налоги! --- Нotdoged/2.13.5/Android |
#190
|
|||
|
|||
Re: Получаем ноду в зиване - квест
Vladimir Fyodorov написал(а) к Vitaliy Aksyonov в Jan 23 08:09:06 по местному времени:
Разнообразно приветствую! VA> В полиси написано, что по возможности надо использовать вообще VA> /-1, если софт поддерживает. А если не поддерживает, тогда уже VA> 9999. А недавно Вард удалил из нодлиста "технические" /999 и /9999. -1 в нодлисте не было. VA> Для меня это просто развлечение. Поинт есть, общаться могу. Нода VA> не жмет. Подожду. :) Заодно софт причешу получше. Для всех давно уже это damned hobby. Прикольно, что в Америке старпёры больше прутся от BBS и дверных игр. VA> Вот это мы нафлудили в тестовую эху. :) Переходим в RU.FIDONET.TODAY ? Наверное, все подписаны, и это всяко там более топично, нежели очередные споры windows vs linux, домашний телефон vs сотовый, binkd vs t-mail :) -- Всяческих благ. Искренне Ваш, Vladimir Fyodorov, эсквайр. ... Пропала несущая? Заплатите налоги! --- Нotdoged/2.13.5/Android |