From: Nil A 2:5015/46 20 Jan 2023 22:50 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Получаем ноду в зиване - квест
Hello, Vitaliy! Friday January 20 2023 11:57, from Vitaliy Aksyonov -> Nil A: NA>> Короче да, получай ноду в зиване, будешь как настоящий старпёр, VA> В процессе. Если на непарольное мыло не ответит - буду пробовать VA> достать его другими средствами. Непарольное мыло никто не читает в зиване. Ещё, будь готов, что типичный зивановец не ставит пароли на pkt, надо в конфиге разрешить, иначе не растоссится. VA> Я бы и модем поднял, но у меня нет телефонной линии. VoIP с g.721 кодеком тебе даст 9600 и иногда больше беспалевно. Я тут, кстати, заморочился, нашёл несколько полностью софтовых модемов, чтобы на x86 крутить и в SIP пихать, но из-за пропраетарности этих v32bis всех, оно немного не опенсорц, а на 2400 дудеть мне не охота. Всегда можно чорный курьер + ata186 (или аналог) запустить, и получишь типа 19200 даже. VA> Это было бы вообще аутентично. В Зивановке есть модемные федо, не вопрос. Опять же, тоссят они раз в сутки потом. Мега аутентично. Best Regards, Nil
From: Nil A 2:5015/46 20 Jan 2023 22:36 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Test
* Originally in hobbit.test * Crossposted in su.c_cpp Hello, Vitaliy! Friday January 20 2023 11:57, from Vitaliy Aksyonov -> Nil A: Префаза. в локальной тестовой эхе hobbit.test последние несколько дней, довольно в активном ритме, случается много интересных CPP обсуждений, поэтому кросс-пострю в профильную эху su.c_cpp. NA>> Звучит как реклама C++. VA> Но это ведь правда. Плюсы довольно низкоуровневы, чтобы писать VA> эффективный код, но при этом не насолько, как голый си, чтобы писать VA> удобно, безопасно и понятно человеку. До появления в C++11 lvalues, там были сплошные копирования тяжёлых структур данных. Были даже отдельные реализации, похожие на STL, где есть move всего содержимого контейнера. И до появления явного правила RVO в C++11 (aka copy elision), был вообще караул с возвратом значений, приходилось через параметры гонять указатель или ссылку. Кстати, на этом примере, покажу как стандарты C++ сосут. RVO правило сразу не заработало, надо было ещё потом NRVO прописать, и потом в C++17 ещё пришлось "guaranteed copy elision through simplified value categories" прописывать. А если у тебя там какой-то side-effects из-за вызовов copy/move конструктотров? Ну так-то, чтобы не было side-effect, надо сразу на Haskell писать, пока тебе не потребовалось из файла почитать, где сайд-эффекты прут как из рога изобилия, и тут на сцену выходят монады. Кстати, в жопу хаскель, монадный синтаксис уже плотно перекачевал в C++. И, вот ещё пример, как C++ стандарт сосёт. В C++17 добавили std::optional, который устанешь каждый раз проверять, и в других языках ты пишешь .and_then, или .or_else, или transform. Они добавили в C++23 монадный синтаксис, вместе с std::expected наконец (но мы то все уже давно сидим на https://github.com/TartanLlama/expected). Кстати, вот пример, как в 90х писали на C++, в до C++11, на примере голдеда. Так то голдед, можно сказать, что ООП, по настоящему, где есть интерфейсный класс, с виртуальными функциями почитать разные форматы баз сообщений. Например, в Husky это сделано на голом Си, через макрос, который через указатель попадает на структуру с адресами функций, такой ручной переход по v-table. Так вот, в голдеде везде оптимизации в виде memset()/memcpy() на sizeof класса, как будто он весь такой POD, хоть там и виртуальные функции есть. Кстати, там в голдеде новодел есть, в лице std::string и std::vector, ну честно же, так удонее, чем руками тут же писать разные linked list. Но вот классы с std::string и std::vector прям удалять и копировать через memset()/memcpy() как-то совсем плохо, однажды запустив под valgrind увидишь там потерянные std::vector. Я пример с голдедом привёл зачем. Чтобы показать, что на C++ нельзя было пейсать эффективный код. И только сейчас, с помощью всех этих шаблонов, constexpr выражений, можно получить эффективный бинарный код на выходе, опять же, при условии, что программист знает что получится, когда он именно вот так вот напишет, проверив на каком-нибудь https://godbolt.org . Кстати, SFINAE должно умереть, и всё это должно быть уже if constexpr с разными concepts требованиями к типам. VA> Смотрел видосик на ютубчике, как один товарищ про const VA> рассказывал. Так там как раз был пример, когда он то ли VA> добавлял, то ли наоборот убирал const и несколько ассемблерных VA> инструкций превращалось в тонны кода. "Один-товарищ", его зовут Jason Turner, его канал https://www.youtube.com/@cppweekly Проблема с ним лично в том, что он далёк от продакшен кода. Он раскрутился на консалтинге, кодревь, и прочих разводках, что щас кого-то наймём и он "фсё починит". Вообще, с ними со всеми проблема общая в том, что если ты не умеешь программировать, то ты идёшь в менеджеры. Если не умеешь руководить, то ты идёшь учить других как программировать. Если не умеешь учить, то ты пишешь книжки. VA> У нас еще веселее. Мы в своем компоненте совмещаем асинхронный подход VA> (самописные очереди на boost asio) и многопоточность. А в другом VA> компоненте к этим двум еще добавили stackful корутины из буста. Иногда VA> бывают очень занятные баги. С++20 корутины должны сильно помочь, но проблема, что так и не дали библиотеку в std:: неймспейсе, чтобы корутины использовать "из-коробки", приходится cppcoro, им подобными, или самописными пользоваться. VA> С корутинами был интересный прикол. Мы портировали этот код с винды на VA> линукс и он начал странно крешиться иногда. Выяснилось, что при VA> выделении памяти для стека она выделялась без выравнивания и вместо VA> stack overflow код вылазил в чужую память и крешился. Было непросто VA> найти причину. Не надо stackful и stackless корутины в одном коде миксить. Кстати, придёт к тебе на работу джун, которых в школе учили критические секции мьютексами защищать, а тут у тебя корутины, и как ты его код отревьювишь? NA>> Кстати, в C++ комитете полно русский людей, что радует. VA> Наслышан. Вроде STL наши написали первоначально. Ты не знаешь кто такой Степанов Сан Саныч? Вики тебе в помощь. VA> Большой плюс котлина, что он использует ту же JRE. А она почти везде VA> есть или может работать. На таком же принципе появляются новые языки программирования, как грибы, и все такие C++ убицы. Вот тебе тройка из 2022 года. * Val https://www.val-lang.dev * Carbon https://github.com/carbon-language/carbon-lang сам Гугл учавствует, считай уже 3ий язык после Go и Dart. * cppfront https://github.com/hsutter/cppfront Все они поразитируют на том, что совместимы с C++, только более модно/молодёжные. VA>>> Мы пока используем fmt либу. Одинаково работает. Вот на C++20 VA>>> перейдем - заменим на std:: NA>> Когда поддержка будет везде. Когда они ещё доприлят std::chrono с NA>> таймзонами или хотябы с std::chrono::local_t, чтобы не тащить NA>> https://github.com/HowardHinnant/date.git и чтобы std::format ещё NA>> это мог напечатать. VA> Таймзоны - это боль. У нас 4 раза в год вылазят баги с ними. :) VA> Спросишь, почему 4? Потому что перевод часов на зимнее и летнее время VA> в США и в других странах происходит в разные дни. Ты мне рассказываешь, как два раза в год у нас есть неделя, когда митинги с США и Европейцами расходятся на час? NA>> Буст - это тестовая площадка для будущего C++ стандарта. VA> Именно. Из него очень многое перехало почти без изменений. Те же умные VA> указатели или ranges. std::filesystem::path тоже из Буста. Но, забавно, Google C++ Style Guide явно запрещает его использовать из-за "security vulnerability". Чувак как-то умудрились Time-of-check to time-of-use проблему притащить в самом спеке, как тот самый mktemp() страдает. Best Regards, Nil
From: Vladimir Fyodorov 2:6035/3.1 20 Jan 2023 20:51 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Test
Разнообразно приветствую тебя, Vitaliy! 20 Января 2023, Vitaliy Aksyonov писАл к Vladimir Fyodorov следующее: VF>> Прикольный баг, но не встречался с таким. Но если починишь более VF>> десятилетней давности баг с твитами и группами при использовании VF>> конфига husky для описания путей к эхам, то буду по гроб жизни VF>> благодарен. Даже денег готов заплатить; правда сейчас хрен их VF>> переведёшь в нормальную страну... VA> Честно говоря, не помню. Никогда твитами не пользовался. :) Как его VA> воспроизвести? Гляну на досуге. Там должно сойтись несколько условий. И это наиболее критично для модераторов, которые везде используют twit, но в модерируемых ими эхах через GROUP твит отключён, так как в них нужно читать все письма. Типа так (см. пример ниже): === GROUP MODERATED MEMBER RU.FIDONET.TODAY TWITMODE SHOW ENDGROUP === при глобальной установке "TWITMODE SKIP". В общем, вот подробности. = MY-OUT.OLD (2:6035/3.1) ===================================================== Msg : 22385 of 34872 Loc From : Vladimir Fyodorov 2:50/15 Пят 06 Янв 17 10:30 Subj : bug =============================================================================== Обнаружил небольшой глюк. Если прописать твиты для группы эх, то после написания письмА в этой эхе твит перестаёт действовать. По пунктам. В конфиг вписываем: === GROUP PUSHKIN MEMBER PUSHKIN.LOCAL TWITNAME Andrei Mihailov ENDGROUP === Заходим в эху, убеждаемся, что сообщения от "Andrei Mihailov" пропускаются. Создаём новое письмо в этой эхе или отвечаем на чьё-либо письмо. Сохраняем своё письмо. Читаем эху дальше и видим среди прочих сообщения от/к "Andrei Mihailov", которые должны были пропускаться. Если выйти в список эх, а затем снова зайти в PUSHKIN.LOCAL, то твит снова работает. Если прописывать твит не для группы эх, а глобально, то такой проблемы не возникает. = MY-OUT.OLD (2:6035/3.1) ===================================================== Msg : 23068 of 34872 Loc From : Vladimir Fyodorov 2:50/15 Вcк 26 Фев 17 08:56 Subj : Re: bug =============================================================================== VF> Обнаружил небольшой глюк. Если прописать твиты для группы эх, то после VF> написания письмА в этой эхе твит перестаёт действовать. Кстати, верно и обратное. Если для группы эх прописать, например, === GROUP MODERATED MEMBER RU.FIDONET.TODAY TWITMODE SHOW ENDGROUP === зайти в неё, ответить на чьё-то письмо, сохранить ответ, то с этого момента и до выхода в список эх твиты снова будут работать, как прописано в глобальном правиле, а не в правиле для группы. В моём случае - вместо того, чтобы показывать все сообщения, будут пропускаться письма всех перечисленных как TWITNAME в основном конфиге. = MY-OUT.OLD (2:6035/3.1) ===================================================== Msg : 23826 of 34872 Loc From : Vladimir Fyodorov 2:50/15 Сpд 03 Май 17 18:56 Subj : Re: bug =============================================================================== VF>> Обнаружил небольшой глюк. Если прописать твиты для группы эх, то VF>> после написания письмА в этой эхе твит перестаёт действовать. VF> Кстати, верно и обратное. Если для группы эх прописать, например, VF> === VF> GROUP MODERATED VF> MEMBER RU.FIDONET.TODAY VF> TWITMODE SHOW VF> ENDGROUP VF> === VF> зайти в неё, ответить на чьё-то письмо, сохранить ответ, то с этого VF> момента и до выхода в список эх твиты снова будут работать, как VF> прописано в глобальном правиле, а не в правиле для группы. В моём VF> случае - вместо того, чтобы показывать все сообщения, будут VF> пропускаться письма всех перечисленных как TWITNAME в основном VF> конфиге. Появилось немного времени, проверил старые версии голдеда - везде поведение такое же, вплоть до 2000 года. Но зато когда я поставил версию 1.1.4.4 2000-04-25, она перестала видеть письма из конфига husky, и чтобы продолжить эксперимент, я прописал одну эху через AREADEF в конфиге голдеда. И чудо - баг пропал, все правила для группы продолжают действовать и после написания письма в эху из этой группы. Вернул обратно современный голдед, то же самое, бага как не бывало. Вот что было раньше: ===golded.cfg=== AREAFILE Fidoconfig \fido\husky\areas ================ === areas === EchoAreaDefaults -b Squish -g N -dupecheck move -dupehistory 14 EchoArea STARPER.LIMITED \fido\msgarea\starper\limited -a 2:50/15 2:5020/715 ============= В таком виде баг есть. Ежели вообще не смотреть в конфиг хаски, а прописать: ===golded.cfg=== ;AREAFILE Fidoconfig \fido\husky\areas AREADEF STARPER.LIMITED "STARPER.LIMITED" g Local Squish \fido\msgarea\starper\limited . (Loc Pvt) ================ то бага нет. Кто-нибудь может объяснить, в чём тут порылась собака и как её избежать? Не может тут что-то быть с разницей в форматах описания эх в husky 1.4 и 1.9? Или они абсолютно одинаковые? ============================================================================== Всяческих благ. Искренне Ваш, Vladimir Fyodorov, эсквайр. ... Коровоизлияние в мозг
From: Cheslav Osanadze 2:6078/80 20 Jan 2023 22:08 +0200
To: Vladimir Fyodorov 2:6035/3.1
Subject: Test
Привет Vladimir! 20 Янв 23 20:51, Vladimir Fyodorov -> Vitaliy Aksyonov: VF> то бага нет. Кто-нибудь может объяснить, в чём тут порылась собака и VF> как её избежать? Я так глубоко не стал погружаться, что бы описывать твит для разных эх, просто отрубаю твит руками, в нужных.:) Cheslav. ... В порочащих связях был, но не замечен
From: Vitaliy Aksyonov 2:5023/24.4107 20 Jan 2023 21:57 +0200
To: Nil A 2:5015/46
Subject: Test
Hello Nil! 20 Jan 23 20:55, you wrote to me: VA>> За что мне нравится современные плюсы и современный компиляторы - VA>> грамотно написанный код оптимизируется в очень компактный и VA>> быстрый код. NA> Звучит как реклама C++. Но это ведь правда. Плюсы довольно низкоуровневы, чтобы писать эффективный код, но при этом не насолько, как голый си, чтобы писать удобно, безопасно и понятно человеку. VA>> Реально килобайты кода вложить в десяток ассемблерных VA>> инструкций. NA> Или один кранчик темплекйтов идёт в килобайты ассемблерных инструкций NA> ;-) Такое тоже бывает. Смотрел видосик на ютубчике, как один товарищ про const рассказывал. Так там как раз был пример, когда он то ли добавлял, то ли наоборот убирал const и несколько ассемблерных инструкций превращалось в тонны кода. VA>> Насчет дебага. Если не использовать опасные подходы, вроде голых VA>> указателей и подобного, чтобы стэк или куча не ломалась - дебаг VA>> не так страшен. Даже если голым gdb. NA> С указателями всё ясно. А вот с многопоточностью уже не всё так NA> однозначно бывает. И деагеришь обычно кору, которая случается только NA> на двух машинах, например в Японии, при том что в нетворке у нас NA> овер-двухсот-тыщ машин с этим же релизом. На самом деле, там NA> оказалось, что одна буст библиотека, с одной версией gcc, давала NA> бажок, атомарные там операции, которые воспроизводятся только once in NA> a blue moon. Обычно это как раз порча кучи или стэка. Ну а то, что это из-за многопоточности - это уже дело другое. Такие баги очень непросто ловить. Особенно, когда воспроизводится раз в году, после дождичка в четверг. У нас еще веселее. Мы в своем компоненте совмещаем асинхронный подход (самописные очереди на boost asio) и многопоточность. А в другом компоненте к этим двум еще добавили stackful корутины из буста. Иногда бывают очень занятные баги. С корутинами был интересный прикол. Мы портировали этот код с винды на линукс и он начал странно крешиться иногда. Выяснилось, что при выделении памяти для стека она выделялась без выравнивания и вместо stack overflow код вылазил в чужую память и крешился. Было непросто найти причину. VA>> Коммитет иногда занимается херней, вместо того, чтобы решать VA>> реально насущные проблемы. NA> Кстати, в C++ комитете полно русский людей, что радует. Наслышан. Вроде STL наши написали первоначально. VA>> Модули было бы круто. Хоть я и ожидал от них большего, чем они на VA>> самом деле являются. NA> Там как-то по фортрановски сделали штолле, короче проблему NA> зависимостей так и не решили. Надеюсь, что если в проекте cmake NA> какой-нибудь, и там более-менее по гайдлайнам написан симейк файл, то NA> оно само создаст нужные коммандочки для компиляции модулей. Если есть make какой-то, то, конечно, код пересоберется. Но представь, что у тебя есть shared либа. И ее не пересобирали, она распространяется отдельным пакетом. И вот пересобираешь код, который ее использует, и ломаешь бинарную совместимость. Да. Это кривой интерфейс и кривые руки. Но я на такое нарывался. Ну не умеют и не хотят у нас люди в обратную совместимость. Как раз эти "стильно, модно, молодежно". Тьфу! VA>> Бинарной совместимости нет. NA> Одного компилятора с другим? Обычно их не миксишь. Или всмысле, что NA> когда добавил новое поле в структурку, то потерял ABI? Нуда, С++ это NA> просто высокоуровневый ассемблер. Даже того же компилятора, но с разным набором флагов, например. Никто не гарантирует. А вот если я на java скомпилирую полоивину кода в opendjk, вторую в oracle jdk и вообще разных версий - все будет работать отлично. VA>> Все равно собирать каждый раз. NA> Секунду, одно дело у тебя стопицот разных header only библиотек, и NA> крошечный .cpp с такими инклюдами пересобирает снова и снова фсё. И NA> другое дело, что .h файлы уже не надо каждый раз перекомпилировать. Ну NA> а все засисимости то да, надо пересобрать, ведь там поинтеры на NA> переменные съезжают, когда ты семантику вызова меняешь. Вопрос тут, ты NA> перекомпилируешь маленькие .cpp файлы, или со свеми инклюдами это NA> мегабайты каждый раз пересобирать. Я не говорю, что модули полностью отстой. Но они не решают все проблемы, которые могли бы решить. VA>> Это то, что меня в плюсах бесит. Поменял дефайн какой-то и VA>> получил крэш на ровном месте, если весь проект не пересобрал. :) NA> Дефайны надо фтопку, ни каких макросов. Только if constexpr, хотя он NA> более для шаблонов, а #ifdef пока так просто не выпиздишь. Надо. Только куда легаси девать? :) Ну и криворуки везди, они заполонили.... Ну ты понял. VA>> Вот, кстати, тоже этого не понимаю. API выдали, а реализацию VA>> пилите сами. Маразм. NA> Есть стандарт - это чиста теоретики, собираются раз в год поквасить. NA> Есть задачки группе компиляторов, а если задачки группе NA> библиотеко-пейсателей. И все три между собой не встречаются. В других языках это не так. :) С другой стороны, плюсы есть почти под любую аппаратную платформу. А где нет - есть голые си. NA> Но есть когда за фуршет платит какая-то контора. Вот гоу, например, NA> там сразу новая версия, и там тебе сцайт с обновлённой документаций, и NA> компилятор, подо все платформы сразу собирает, и библитеки с ним NA> вместе, и обсуждение новых фич не расстягивает на года. Также у Гугла NA> ещё есть дарт с этим флаттером, по задумке убийца всего мобильного NA> девелопмента. Не силен в мобильной разработке. Все может быть. NA> Кстати, вот ещё бохатая конторка есть, Джетбреинс (недавно весь 5030 NA> офис перевезла в европу), так они не просто там Котлин пилят, они NA> решили сделать тоже убийцу мобильного деволопмента. Микрософт тогда со NA> своим Xamarin не смог в топчики выйти, так эти Kotlin Multiplatform NA> щас пиарят. Правда, у них бюджета меньше, чем у флаттеров. Но флаттер NA> хочет дарт, а дарт больше никому нахуй не нужен, а Котлин уже де-факто NA> андроид язык. Большой плюс котлина, что он использует ту же JRE. А она почти везде есть или может работать. VA>> Мы пока используем fmt либу. Одинаково работает. Вот на C++20 VA>> перейдем - заменим на std:: NA> Когда поддержка будет везде. Когда они ещё доприлят std::chrono с NA> таймзонами или хотябы с std::chrono::local_t, чтобы не тащить NA> https://github.com/HowardHinnant/date.git и чтобы std::format ещё это NA> мог напечатать. Таймзоны - это боль. У нас 4 раза в год вылазят баги с ними. :) Спросишь, почему 4? Потому что перевод часов на зимнее и летнее время в США и в других странах происходит в разные дни. VA>> Дык, в бусте сто лет как есть. :) Используем, опять же, пока VA>> новый стандарт недоступен. NA> Буст - это тестовая площадка для будущего C++ стандарта. Именно. Из него очень многое перехало почти без изменений. Те же умные указатели или ranges. NA>>> Сплошные разочарования с этим C++ короче. VA>> Не скажи. Он не так плох, как кажется. Просто это реально VA>> огромный объем работы, чтобы стандарт развивать. NA> На в этом месяце https://www.tiobe.com/tiobe-index сказал, что таки NA> C++ пижже Джавы! Мне такой камбек нравится. Я считаю, что инструмент должен использоваться под задачу. Не существует идеального языка под все задачи. Где-то можно на асме написать, где-то на плюсах, где-то на баше или питоне. VA>> Я на скрипку заглядывался, фортепиано тоже... Но это очень долго VA>> учиться надо. Нет столько мотивации. Хочется, чтобы раз - и VA>> играешь. VA>> :))) NA> Вот, удобно, когда тебя в децтве везде отдали, и ты не просто проебал NA> первые нанацать лет жизни на игру в солдатики, а прям реально так NA> хуяк, и у тебя во взрослой жизне откуда-то скилы вот так вот взять и NA> сбацать на фоно, что все охуеют вокруг, главное не сбиться, а то там NA> чексумма уже давно не сходится. Или так хуйк, друзья на роликах зовут NA> покататься, надо попробовать штолле, и хуяк, я сразу еду, и передом, и NA> задом, и без этой дрочни фристал конечно, но скилы из децкой секции NA> коньков всплывают. Точно! Меня на парусный спорт батя отдал. Так что я под парусом в детстве походил и очень рад этому. Не было у нас в семье никого с музыкальным образованием. Как есть уже. Догоню теперь. Никогда не поздно начинать. VA>> Фото я тож увлекаюсь, правда в последнее время редко фотик VA>> расчехляю. У меня одно время был Зенит-Е. На пленку шикарные VA>> фотки получались. У сына в этом году в школе курс фотографии. NA> А я чёт даже в прошлом году три плёночки отснял. Я даже сканер купил, NA> чтобы прям до зерна добраться, но отправить на проявку+скан в лаб NA> оказалось более совместимо с домашними заботами. Крутяк. NA> Я, кстати, много лет уже подсел на дальномер. У меня лейка M9, та ещё NA> с CCD, там исо 800 прям край, но у меня суммилюксы есть (1.4 дырка), а NA> если совсем уж темно, то просто не надо там сымать. Дальномер мне NA> зашёл, прям я вижу весь мир в видоискатель и рамками вырезаю что NA> нужно. На обычной зеркалке, или цифрозеркалке, я приношу много фото и NA> много стираю или кропаю потом сильно по композиции. И вот ещё, про NA> интерфейс, слишком сложные фотки современные, особенно если несколько NA> разных брендов есть, то я тупо забыаю что и как где. И только эта NA> полностью мануальная лейка спасает, я могу в любой степени пьяности NA> схватить её, когда какая-то движуха происходит, и у меня тут выдержка, NA> тут диафрагма, дальномером я фигачу точно даже в пьяном виде, даже на NA> 2.0 заебись попадаю, короче кайф. У меня Canon 500D. Старичек. Еще до переезда купил. И несколько объективов. Телевик на 300 мм, универсал 18-75 и фикс портретный. На фиксе размытие шикарное получается. На телевик пробовал луну снимать. Кое-что даже вышло. :) VA>> ЗЫ. Вот пообщался с тобой немного и понимаю, что хоть Фидо и VA>> чахнет - но еще живое. Есть интересные люди. Имеет смысл ноду VA>> держать. NA> Ну вот получишь ноду в зиване, и поймёшь, что там писец, федо умерло в NA> середине 90х ещё. Блин, мои линки Дженис 1:261/38, и бухгалтер Андрей NA> 1:320/119, они сука почту тоссят раз в несколько часов, в 21ом веке, NA> какова хуя. Дикари-с! :D NA> Короче да, получай ноду в зиване, будешь как настоящий старпёр, сидеть NA> в кукингсах обсуждать шарлотки там разные, и ещё про NA> демократы-республиканцы там тема. Больше там ничо не шевелится. Там NA> сука прям Back to the future, когда ZMH раз в сутки, чтобы NA> прокачаться. Скорость ответа на нетмейл - в течении недели. Хотя, на NA> емейлы отвечают в течении минут десяти. В процессе. Если на непарольное мыло не ответит - буду пробовать достать его другими средствами. Я бы и модем поднял, но у меня нет телефонной линии. Это было бы вообще аутентично. Vitaliy ... 10.0 times 0.10 is hardly ever 1.00.
From: Vitaliy Aksyonov 2:5023/24.4107 20 Jan 2023 20:14 +0200
To: Vladimir Fyodorov 2:6035/3.1
Subject: Test
Hello Vladimir! 20 Jan 23 19:38, you wrote to me: VA>> Ты знаешь, иногда не помешает и подебажиться. Я нашел интересный VA>> краш в голдеде. Если файлы индекса нодлиста пустые (а их можно VA>> получить штатными средствами), то при открытии браузера нодлиста VA>> он крешится. Может починю на досуге. По-хорошему, чинить надо VA>> компилятор нодлиста и сам дед. VF> Прикольный баг, но не встречался с таким. Но если починишь более VF> десятилетней давности баг с твитами и группами при использовании VF> конфига husky для описания путей к эхам, то буду по гроб жизни VF> благодарен. Даже денег готов заплатить; правда сейчас хрен их VF> переведёшь в нормальную страну... Честно говоря, не помню. Никогда твитами не пользовался. :) Как его воспроизвести? Гляну на досуге. Vitaliy ... 10.0 times 0.10 is hardly ever 1.00.
From: Nil A 2:5015/46 20 Jan 2023 20:55 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Test
Hello, Vitaliy! Friday January 20 2023 10:28, from Vitaliy Aksyonov -> Nil A: VA> За что мне нравится современные плюсы и современный компиляторы - VA> грамотно написанный код оптимизируется в очень компактный и быстрый VA> код. Звучит как реклама C++. VA> Реально килобайты кода вложить в десяток ассемблерных инструкций. Или один кранчик темплекйтов идёт в килобайты ассемблерных инструкций ;-) VA> Насчет дебага. Если не использовать опасные подходы, вроде голых VA> указателей и подобного, чтобы стэк или куча не ломалась - дебаг не так VA> страшен. Даже если голым gdb. С указателями всё ясно. А вот с многопоточностью уже не всё так однозначно бывает. И деагеришь обычно кору, которая случается только на двух машинах, например в Японии, при том что в нетворке у нас овер-двухсот-тыщ машин с этим же релизом. На самом деле, там оказалось, что одна буст библиотека, с одной версией gcc, давала бажок, атомарные там операции, которые воспроизводятся только once in a blue moon. VA> Коммитет иногда занимается херней, вместо того, чтобы решать реально VA> насущные проблемы. Кстати, в C++ комитете полно русский людей, что радует. VA> Модули было бы круто. Хоть я и ожидал от них большего, чем они на VA> самом деле являются. Там как-то по фортрановски сделали штолле, короче проблему зависимостей так и не решили. Надеюсь, что если в проекте cmake какой-нибудь, и там более-менее по гайдлайнам написан симейк файл, то оно само создаст нужные коммандочки для компиляции модулей. VA> Бинарной совместимости нет. Одного компилятора с другим? Обычно их не миксишь. Или всмысле, что когда добавил новое поле в структурку, то потерял ABI? Нуда, С++ это просто высокоуровневый ассемблер. VA> Все равно собирать каждый раз. Секунду, одно дело у тебя стопицот разных header only библиотек, и крошечный .cpp с такими инклюдами пересобирает снова и снова фсё. И другое дело, что .h файлы уже не надо каждый раз перекомпилировать. Ну а все засисимости то да, надо пересобрать, ведь там поинтеры на переменные съезжают, когда ты семантику вызова меняешь. Вопрос тут, ты перекомпилируешь маленькие .cpp файлы, или со свеми инклюдами это мегабайты каждый раз пересобирать. VA> Это то, что меня в плюсах бесит. Поменял дефайн какой-то и VA> получил крэш на ровном месте, если весь проект не пересобрал. :) Дефайны надо фтопку, ни каких макросов. Только if constexpr, хотя он более для шаблонов, а #ifdef пока так просто не выпиздишь. VA> Вот, кстати, тоже этого не понимаю. API выдали, а реализацию пилите VA> сами. Маразм. Есть стандарт - это чиста теоретики, собираются раз в год поквасить. Есть задачки группе компиляторов, а если задачки группе библиотеко-пейсателей. И все три между собой не встречаются. Но есть когда за фуршет платит какая-то контора. Вот гоу, например, там сразу новая версия, и там тебе сцайт с обновлённой документаций, и компилятор, подо все платформы сразу собирает, и библитеки с ним вместе, и обсуждение новых фич не расстягивает на года. Также у Гугла ещё есть дарт с этим флаттером, по задумке убийца всего мобильного девелопмента. Кстати, вот ещё бохатая конторка есть, Джетбреинс (недавно весь 5030 офис перевезла в европу), так они не просто там Котлин пилят, они решили сделать тоже убийцу мобильного деволопмента. Микрософт тогда со своим Xamarin не смог в топчики выйти, так эти Kotlin Multiplatform щас пиарят. Правда, у них бюджета меньше, чем у флаттеров. Но флаттер хочет дарт, а дарт больше никому нахуй не нужен, а Котлин уже де-факто андроид язык. VA> Мы пока используем fmt либу. Одинаково работает. Вот на C++20 перейдем VA> - заменим на std:: Когда поддержка будет везде. Когда они ещё доприлят std::chrono с таймзонами или хотябы с std::chrono::local_t, чтобы не тащить https://github.com/HowardHinnant/date.git и чтобы std::format ещё это мог напечатать. VA> Дык, в бусте сто лет как есть. :) Используем, опять же, пока новый VA> стандарт недоступен. Буст - это тестовая площадка для будущего C++ стандарта. NA>> Сплошные разочарования с этим C++ короче. VA> Не скажи. Он не так плох, как кажется. Просто это реально огромный VA> объем работы, чтобы стандарт развивать. На в этом месяце https://www.tiobe.com/tiobe-index сказал, что таки C++ пижже Джавы! Мне такой камбек нравится. VA> Я на скрипку заглядывался, фортепиано тоже... Но это очень долго VA> учиться надо. Нет столько мотивации. Хочется, чтобы раз - и играешь. VA> :))) Вот, удобно, когда тебя в децтве везде отдали, и ты не просто проебал первые нанацать лет жизни на игру в солдатики, а прям реально так хуяк, и у тебя во взрослой жизне откуда-то скилы вот так вот взять и сбацать на фоно, что все охуеют вокруг, главное не сбиться, а то там чексумма уже давно не сходится. Или так хуйк, друзья на роликах зовут покататься, надо попробовать штолле, и хуяк, я сразу еду, и передом, и задом, и без этой дрочни фристал конечно, но скилы из децкой секции коньков всплывают. VA> Фото я тож увлекаюсь, правда в последнее время редко фотик расчехляю. VA> У меня одно время был Зенит-Е. На пленку шикарные фотки получались. У VA> сына в этом году в школе курс фотографии. А я чёт даже в прошлом году три плёночки отснял. Я даже сканер купил, чтобы прям до зерна добраться, но отправить на проявку+скан в лаб оказалось более совместимо с домашними заботами. Я, кстати, много лет уже подсел на дальномер. У меня лейка M9, та ещё с CCD, там исо 800 прям край, но у меня суммилюксы есть (1.4 дырка), а если совсем уж темно, то просто не надо там сымать. Дальномер мне зашёл, прям я вижу весь мир в видоискатель и рамками вырезаю что нужно. На обычной зеркалке, или цифрозеркалке, я приношу много фото и много стираю или кропаю потом сильно по композиции. И вот ещё, про интерфейс, слишком сложные фотки современные, особенно если несколько разных брендов есть, то я тупо забыаю что и как где. И только эта полностью мануальная лейка спасает, я могу в любой степени пьяности схватить её, когда какая-то движуха происходит, и у меня тут выдержка, тут диафрагма, дальномером я фигачу точно даже в пьяном виде, даже на 2.0 заебись попадаю, короче кайф. VA> ЗЫ. Вот пообщался с тобой немного и понимаю, что хоть Фидо и чахнет - VA> но еще живое. Есть интересные люди. Имеет смысл ноду держать. Ну вот получишь ноду в зиване, и поймёшь, что там писец, федо умерло в середине 90х ещё. Блин, мои линки Дженис 1:261/38, и бухгалтер Андрей 1:320/119, они сука почту тоссят раз в несколько часов, в 21ом веке, какова хуя. Короче да, получай ноду в зиване, будешь как настоящий старпёр, сидеть в кукингсах обсуждать шарлотки там разные, и ещё про демократы-республиканцы там тема. Больше там ничо не шевелится. Там сука прям Back to the future, когда ZMH раз в сутки, чтобы прокачаться. Скорость ответа на нетмейл - в течении недели. Хотя, на емейлы отвечают в течении минут десяти. Best Regards, Nil
From: Vitaliy Aksyonov 2:5023/24.4107 20 Jan 2023 21:23 +0200
To: Vladimir Fyodorov 2:6035/3.1
Subject: Test
Hello Vladimir! 20 Jan 23 20:51, you wrote to me: VF>>> Прикольный баг, но не встречался с таким. Но если починишь более VF>>> десятилетней давности баг с твитами и группами при использовании VF>>> конфига husky для описания путей к эхам, то буду по гроб жизни VF>>> благодарен. Даже денег готов заплатить; правда сейчас хрен их VF>>> переведёшь в нормальную страну... VA>> Честно говоря, не помню. Никогда твитами не пользовался. :) Как VA>> его воспроизвести? Гляну на досуге. VF> Там должно сойтись несколько условий. И это наиболее критично для VF> модераторов, которые везде используют twit, но в модерируемых ими эхах VF> через GROUP твит отключён, так как в них нужно читать все письма. Типа VF> так (см. пример ниже): Интересно. Попробую воспроизвести. Вдруг это легко починить. :) Vitaliy ... 10.0 times 0.10 is hardly ever 1.00.
From: Vitaliy Aksyonov 2:5023/24.4107 20 Jan 2023 19:21 +0200
To: Nil A 2:5015/46
Subject: Test
Hello Nil! 20 Jan 23 18:23, you wrote to me: VA>> Там вовсю FPGA используются. Наши на них смотрели, но дальше не VA>> зашло. Нынешняя скорость нас устраивает, а возможный прирост VA>> будет очень дорого стоить. Игра не стоит свеч. NA> Там ещё можно на разных Network processor писать, чуть попроще FPGA, NA> или там в самой карточке есть кусок FPGAю Я предположу, что ваши на NA> DPDK написали. У нас так до железок и не дошли. Плюнули и продолжили писать на плюсах. VA>> Именно. Это как пишут на .Net или Java и начинают использовать VA>> всякие off-heap или unsafe. Надо инструмент под задачу выбирать. VA>> Мне кажется, что rust еще не готов для серьзеных продуктов. NA> Ну вот всякие фейсбуки даже у себя используют в продакшене. Но там NA> пацаны более молодые, поэнергичнее, тратят и личное время чтобы NA> поразбираться. Знаю я этих "стильных, модных, молодежных". Потом простейшее приложение, которое на спектруме работало, жрет гигабайты памяти и еле ворочается на навороченном компе. Повбывав бы! NA> Была статья переводная на хабре недавно. В стартапе главный решил - у NA> нас нет легаси кода, мы будет сразу на модном-молодёжном расте NA> пейсать. Ну и потом как они сильно пожалели. Во-первых, из-за NA> дотошности компилятора, там нахаляву не попрототипируешь, говнокод не NA> принимает, а значит поэкспериментировать не так быстро. А потом там NA> этот стартап оказался, что все новички в расте, и они там говнокодить NA> начали с самого начала, и потом узнали как надо пейсать, но короче они NA> заебались и другим не рекомендуют :-) Это не новая история. Сколько народу уже на этом обожглось. Например, MongoDB. Кто-то из таких молодых решил, что крутая технология. Начали пилить, а через полгода выгребают такие проблемы, что систему проще переписать, чем править. NoSQL базы работают хорошо в тех сценариях, под которые они спроектированы. А это мелкие микросервисы с крайне ограниченным функционалом. Как только шаг в сторону - хрен оно будет работать нормально. NA> У нас в конторе прям средний возраст какой-то старпёрский, ну в NA> проектах где я туссю, даже C++17 включить боятся, примерно на C++14ом NA> пишут, что уже огромный прогресс. Мне с этим повезло больше. В текущем проекте у нас C++17 и 20 нет только потому, что не успели еще компилятор обновить. Но проект уже в очереди. Как только перейдем под более свежий компилятор - букдет C++20. VA>> Вот когда напишут openssl на rust... :D NA> А кстати, Golang забавная таки штука. Там фсё статикой линкуется, и NA> прям под линуксом можно сделать .exe файл и не надо какой-то NA> кросс-компилятор тащить, один компилятор компилирует подовсе NA> архитектуры и платформы. При этом https такой в стиле curl там NA> из-коробки, и оно без openssl зависимостей, оно там TLS как-то само NA> делает. Удобно, конечно. Но как-то в с вободное от работы время есть куча других интересных активностей. Вот купил себе электрогитару. Учусь. Нашел учителя, т. к. сам уже не раз начинал и бросал. С учителем мотивация больше. Плюс полеты, плюс по дому всегда есть, что делать. Когда хорошая погода летом, я все выходные на аэродроме провожу. VA>> Привык и привык. Не критикую ни разу. У каждого свои VA>> предпочтения. NA> Кстати, когда 90х в офисе стали появлятся первые 15ки, сначала CRT, NA> потом LCD, то после 14" прям приходилось башкой крутить. Прикинь? А NA> щас я смотрб в 27" и как-то норм. Кстати, да. У меня тоже 27" стоит. Сейчас даже 19 кажется мелким. А представить себе 14 с разрешением 1024x768 или, еще лучше, 800x600 - как мы раньше с этим работали? :) NA>>> Всяко, надо свою локалочку пиарить, а не сидеть в тестовой эхе. VA>> Ща туда переберусь. ;) Давно там трафика не было. NA> Ты либо пробрось её дальше, или давай линков наделаем. Она есть у моего босса. Может у Стаса тоже есть. PVT.LUNA.LOCAL. Попробуй туда что-то написать. Может она, конечно, порвана везде. Попробую собрать до кучи. :) Vitaliy ... 10.0 times 0.10 is hardly ever 1.00.
From: Nil A 2:5015/46 20 Jan 2023 19:54 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Test
Hello, Vitaliy! Friday January 20 2023 09:21, from Vitaliy Aksyonov -> Nil A: NA>> Там ещё можно на разных Network processor писать, чуть попроще NA>> FPGA, или там в самой карточке есть кусок FPGAю Я предположу, что NA>> ваши на DPDK написали. VA> У нас так до железок и не дошли. Плюнули и продолжили писать на VA> плюсах. Для DPDK специального железа тоже не надо, только популярную карточку из списка, и тоже на С++ пишешь, и весь сетевой стек у тебя в юзерспейсе, прям рингбафер из карточки мапиться, ещё и конкретный CPU можно гвоздями прибить к твоему треду, чтобы не перещёлкивалось ничего никуда и кешь работал по полной. У меня щас такой проект на работе, гигабитами фигачится там разная фильтрация трафика, штобы дидосы отшибать. VA> Знаю я этих "стильных, модных, молодежных". Потом простейшее VA> приложение, которое на спектруме работало, жрет гигабайты памяти и еле VA> ворочается на навороченном компе. Повбывав бы! Вот, поэтому надо на C++ пейсать - с высокоуровневыми абстракциями, но чтобы за это не платить производительностью. Потом, правда, платишь за дебаг, но это уже вторично. Хотя, надо просто по рукам давать ещё на стадии кодревью. VA> Мне с этим повезло больше. В текущем проекте у нас C++17 и 20 нет VA> только потому, что не успели еще компилятор обновить. Но проект уже в VA> очереди. Как только перейдем под более свежий компилятор - букдет VA> C++20. С C++20 наебалово вышло, компиляторы уже запилили (почти), а стандартную библиотеку неуспели написать. Например, модули, так все ждали, а хуй, работает как-то только в вижуалси. А вот, все такие модные корутины бесстековые, генераторы, вся эта хрень, а даже std::task<> ни какого в библиотеке не дали, и вот мучайся, велосипедь, или тащи cppcoro какой-нибудь. Или вот, std::format - классная штука, прям эволюция printf("Huy %d", i); потом тормозной std::cout \ "Huy " \ i; и наконец compile time std::print("Huy {}", i). Хотя, std::print Только в C++23 появится. Короче, решается использованием библиотеки {{fmt}}, которая ещё с cpp17 работает. Или вот, ranges, классная штука - во-первых, не надо пейсать итератор begin, end, а просто туда переменную, а ещё там есть вьюшки, ну как lazy evaluation штолле, чтобы промежуточные там std::vector не делать, а сразу прям через пайп можно писать разные преобразования. Или вот, концепты, супер изобретение, чтобы 10 экранов шаблонной магии в ошибке не читать, но ведь стандартная библиотека так и не использует их пока. Сплошные разочарования с этим C++ короче. VA> Но как-то в с вободное от работы время есть куча других интересных VA> активностей. Не радиолюбительствуешь? VA> Вот купил себе электрогитару. Учусь. Нашел учителя, т. к. сам уже не VA> раз начинал и бросал. А я закончил по классу фортепьяно. Щас не играю почти, но пальцы ещё помнят. Меня больше от фото/видео прёт как время потратить. VA> С учителем мотивация больше. Учителю ты денежку платишь, а значит надо отрабатывать Ж-) знаю я такую мотивацию. Хотя, бывают понакупят абонементов в спортзалы, и думают, что животик сам уйдёт. Но это не про меня. VA> Плюс полеты, плюс по дому всегда есть, что делать. Класс! VA> Когда хорошая погода летом, я все выходные на аэродроме провожу. В R50 мужики имеют возможность только в гаражах время проводить. Вот она мотивация, в Корорадщину перезжать. VA> Она есть у моего босса. Может у Стаса тоже есть. PVT.LUNA.LOCAL. VA> Попробуй туда что-то написать. Может она, конечно, порвана везде. VA> Попробую собрать до кучи. :) Щас пошукаю по моим линкам.. Best Regards, Nil