Анон, вопрос тебе такой. Как часто ты допускаешь опечатку :; вместо :: ? Доводилось ли тебе когда-нибудь печатать или хотя бы видеть :; не в качестве опечатки, а преднамеренное? Знаешь ли ты хоть одну IDE, где было бы автоисправление этой хуйни?
Какая книга из пикрилов лучше всего для вката в C++?
Если несколько из них, то в каком порядке лучше читать?
P. S. Посмотрел ссылку в шапке, там рекомендуют брать любую. Если они одинаковы, то имеет смысл прочитать все, чтобы 4 раза повторить одну и ту же инфу?
>>3539188 Кроме стауса остальное хуйня какая-то. Вот эти жве книжки прочитать надо. Хорошо по большим конкретным темам С++ обясняют Nicolai M. Josuttis - C++ Move Semantics David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor - C++ Templates
>>3539742 Ну и изучать программирование на с++ просто по книжками бессмысленно. Надо что-то писать. Для плюсов лучше всего игровой движок подходит. Там можно все знания применить. И мув семантику и шаблоны и контейнеры из стандартной либы
>>3539171 Зато можно сидеть-пердеть в каком-нибудь эмбеддед до пенсии.
Какая-нибудь веб-макака доработает лет до 35-40, потом уже устанет бесконечно учить очередные новые модные фреймворки. И что ей делать от 40 до 65 лет? если к тому времени пенсионный возраст ещё не поднимут Часто вижу жалобы от скуфов, что в айтишке нужно постоянно бежать чтобы просто оставаться на месте. Что опыт не накапливается, а постоянно выкидывается вместе с очередным устаревшим фреймворком.
А в эмбеддеде знания очень медленно устаревают, востребован даже 20-30 летний опыт с PCI, PCI Express, SATA, USB, понимания работы загрузчиков, организации памяти и т.д. Много базовых вещей типа схемотехники, которые вообще не устаревают.
И если скуф-фронтендер влачит жалкое существование, вызывая смех у зумеров, то дед-эмбеддер - уважаемый и востребованный специалист.
>>3539746 Раз уж ты сам об этом заговорил, лысина, то че за эмбедед в рабшке? Это же помойная гос военка как правило. Даже какие нибудь крипто казинычи менее кринж
>>3539934 Ах ну да, вот прямо все компании пиздят, придумывают разные вакансии, чтобы завлечь эмбеддеров, а на самом деле кроме беспилотников они ничего не разрабатывают. И вообще все эти компании фейковые, созданные Минобороны, чтобы завлечь эмбеддеров.
>>3539963 Вот ты вячик наивный. Признавайся студент? Ты явно не по програмистки мыслишь, возьми открой вакансию на норм стеке. Или просто открой вакансию в бигкок на тех же плюсах. Вот например я сразу вижу там челы пишут мы делаем lte 5g sdr станцию, пишем софт под нее. Или мы интегрируем наш поиск с нашей хуисой все написано на микропенисах, будете бизнес код хуячить. И все я все понимаю че там делать надо.
Тем временем открываем рядовую плюсовую вакансию. Так хуе мое. Требования. Значица высшее образование, так еще че, а да, лысина, 10 лет опыта, знания линукс кернел и посикс писать епта под эти как его, армы и рок чипы. Ну все епта че не понятного?
На собесе тебя эти тоже будут греть разумеется. Там ведь они не совсем дурачки, как своего кадра найти знают. Будут спрашивать максимально о тебе, лезть в жопу и прочее такое. Вишь я знаю эту кухню. Спроси у местной лысой гречи где я напиздел
[[платиновый вопрос]] Анон, посоветуй иде на линух без проприетарного говна, чтобы умело генерировать сборочные скрипты, проверять синтаксис и читать инклюды. Может, есть какая-нибудь мало распространённая ИДЕха, которую пилят полтора энтузиаста для себя? Я пробовал geany, KDevelop и QT Creator. Geany очень удобный после некоторой настройки, но не умеет читать системные инклюды (если их не открыть вручную), генерировать сборочные скрипты и проверять ошибки на лету. QT Creator страшный монстр, тащит за собой тонну говна и вынуждает вместо кода заниматься собой. KDevelop в целом норм, но там настолько уебанская подсветка синтаксиса, сколько ни настраивал - не получается получить адекватный результат. Одно и то же отображается разными цветами и начертаниями (объявление переменной и её использование, например). До идиотизма: открывающая скобочка синяя, закрывающая красная. Кароч подкинь чего-нибудь не заезженного.
>>3539693 ты не захочешь читать страуструпа после праты. тебе чтобы понять как работает язык достаточно праты, после него можно в какую-то конкретную тему углубится. страуструп больше как справочник подходит
>>3540281 >страуструп больше как справочник подходит У него несколько книг, обычно так про другую его книгу говорят. А та, что на пикриле, это именно учебник.
>>3539188 Начни с Праты и все. Как прочтешь сам поймёшь что там дальше надо. Но если даже не поймёшь погугли таких же как ты, на реддите и в других местах сотни таких вопрос "Что читать, учить, теперь".
>>3539188 на данный момент читаю страуструпа. 3 издание РРР(2024) не рекомендую вкатываться с нее. примеры не работают, треть книги про QT очень мало нюансов рассмотрено.
плюсы: хорошие упражнения и вопросы после глав, современный стандарт
параллельно читаю сайтик learncpp.com - вот это очень хороший источник. куча примеров, кривая обучения пологая, медленно все разжевывают. опционально есть узкие темы.
Индусы наконец Студию 2026 выкатили. По скорости очень заметный прогресс, намного быстрее всё работает. Новых фич завезли много, например профилирование нормальное или хот-релоад допилили, убрав почти все ограничения, даже в main теперь патчится. Интерфейс весь перелопатили, отзывчивее стал.
Чем дебажить плюсы и чистый си в многопоточном программировании и IPC? хватает ли gdb или есть ещё какие-то йоба-утилиты? есть ли какие-то фичи для блокирующих вызовов, типа read/recv? можно ли в tui enable как-то разделить на два экрана, чтобы один поток был на одном экране, другой на другом? знаю, есть ещё strace, но на чем-то серьезном не пробовал ещё.
добрый день, меня зовут Ибрагимов Ислам Османович и я студент 1 курса КазГУ, у меня недавно начались занятия по программированию на языке С++, анонимусы, прошу помощи со следующими вопросами: 1)как объявить переменную 2)в чем разница между int и float? float и double? 3)как получить значение переменной из стандартного потока ввода? 4)как вывести значение переменной в стандартный поток вывода?
помогите, пожалуйста, я не очень понимаю да и лень немного) я сайты хочу делать)
>>3541284 Нужно начинать с Паскаля, а потом уже переходить к C++. Паскаль учится за пару недель, а C/C++ отличается лишь синтаксисом. Рекомендую книги Андрея Столярова: http://www.stolyarov.info/books/ Андрей Викторович - бывший профессор МГУ, гениальный ученый и лучший программист во всем бывшем СССР. Наш Столлман и Таненбаум.
>>3541288 А, и совсем забыл про базу: винда сосет, линух рулит; Boost и STL не нужны; комитетчики террористы; всех джаваскриптеров и петухонщиков следует расстрелять; HTTPS тоже не нужен; Таласса на C++ лучшая CMS для веба. Вот теперь открываем учебники великого Андрея Викторовича Столярова.
>>3541292 >винда сосет экчуалли да >Boost и STL не нужны ????? >комитетчики террористы ??? >всех джаваскриптеров и петухонщиков расклевать ??????? >HTTPS тоже не нужен Проиграл конечно, но почему? >Таласса на С++ лучшая CMS Проиграл конечно
>>3541292 > винда сосет, линух рулит Зачем нужен линукс, когда WSL есть? > Boost и STL не нужны STL нужен, а вот буст да, пердольное bloatware, которое ещё хуй соберёшь. > всех джаваскриптеров и петухонщиков следует расстрелять Жс-петухи пусть живут, кто тогда будет чистить сортиры и делать фронт, если не они. А вот питоныч в машобе просто обязателен. >>3541298 > Проиграл конечно, но почему? Наверное потому что SSL-либы везде разные и с ними пердольно работать.
>>3541356 >Зачем нужен линукс ну поставь сервер xray на впс шиндой и посмотри сколько шиндовз в простое жрет >блоатваре а в чем проблема блоатвари? ну жирное и жирное >хуй соберёшь вопросы к смаке и комитету, которые решил, что процесс сборки к стандарту языка не имеет отношения >жс петухи пусть живут >кто будет чистить сортиры и делать фронт QT-братья!
>>3541386 > жулия Академический язык, что-то типа ЯП матлаба. В ИИ не используется совсем. > Пытоныч просто популярен, а не необходим. Сейчас в 2025 все я не утрирую тренят модели на pytorch разработка Меты. Других вариантов тренировки моделей просто не существует. Сюда ещё добавляем всякие DeepSpeed/MegatronLM разработки Майков/Нвидии, которые тоже являются базой для тренировки LLM. И для деплоймента тоже нет вариантов за пределами питона, разве что TensorRT и ggml разработки Нвидии и Жоры Геганова, но они очень узкоспециализированны. И ничто не заменит питон, ведь он выступает как скриптовый язык, а под капотом у pytorch свой JIT-компилятор, все операции написаны на ручном CUDA-коде сейчас ещё ROCM бэкенд вроде есть, а ещё существует triton - компилятор питона в CUDA, в pytorch есть AOT компилятор моделей для уменьшения оверхеда питона. По итогу упор всегда в GPU, поэтому всем похуй что питон сам по себе очень медленный. А по удобству скриптинга питон просто топ.
>>3541414 Так речь же шла про машоб в общем, а не нейронки. Почему для просчета регрессии обязателен петухон? Жулия то удобнее и выразительнее для этого. Что касается нейронок: один фиг ты не будешь конкурировать с гигантами, а просто у них хттп ручку дергать.
>>3541546 >BlackRock — один из крупнейших инвестиционных фондов, использует Julia для количественного анализа и финансового моделирования. Не то что бы совсем академический язык, если его чешуйчатые ануннаки используют..
>>3541414 >А по удобству скриптинга питон просто топ. Смотря кокого, мне Перл нравился, но он к сожалению протух, а в Питухоне некоторые вещи тяжеловато делаются. мимо
Аноны, предстоит искать работу. Последний раз искал в конце 23го года. Тогда нашёл на 350к с++, сигнал процессинг, немного нейросетей приправленных пайторчем.
Как сейчас выглядит рынок труда? Мне хотя бы 400к надо.
>>3541546 > про машоб в общем, а не нейронки Так машоб это и есть нейронки. А статистика не машоб, т.к. там нет обучения. Если доёбываться до определения, то в википедии в статье как раз про нейронки речь. А в нейронках нужен автоград, реализация которого сейчас существует только в pytorch и мертворождёном ML.NET. TensorFlow сдох давно и Гугл сидит на pytorch, последняя модель на TF вроде была PALM от Гугла лет 5 назад.
>>3541288 > Cтоляров хорошая книжка, если хочется почитать "фе" самого столярова на любую тему. относительно других аспектов –– такой себе курс. задачник только хороший.
>>3541624 > зачем мне нужен питухо У тебя по ссылке всратый биндинг только части pytorch, ещё и с очень устаревшей кудой, карты новее Ампера нахуй идут. Что ты там тренить будешь без оптимизаторов/реализаций моделей/аттеншена и прочего? Будешь переписывать то что писали годами корпорации типа Меты/Нвидии?
>>3539693 гавно у страуса есть только две настоящие книги - Дизайн и эволюция, и The Annotated C++ Reference Manual, дальше это хуйло разленилось и стало писать книги на отьебись
>>3542046 >>3542048 > builder > CLion Кал без поддержки С++20 не нужен. Уже 5 лет прошло, у Майков всё обкатано до идеала, а у всякого говна до сих пор надо вприсядку дрочить чтоб хотя бы import std сделать.
Мне посоветовали вот эту книжку, в ней используется C++. А я не его не знаю. Что прочитать перед этой книгой? Может есть учебник по C++, где с простых вещей начинают и потом до сетевого программирования доходят?
>>3539163 (OP) >вместо шапки ссылки книги умерли, загрузите новые! >ответы на вопросы согласен ну и зачем тогда тред нужен, предлагаю закрывать за потерей актуальности.
>>3542158 А в них примеры на каких языках программирования?
Алсо одна из этих книг упоминается там:
"Если вы уже владеете материалом, содержащимся в каком-либо разделе, можете его пропустить. Например, начальные разделы посвящены сокетам, которые хорошо описаны в других источниках, таких как книга У. Стивенса, Б. Феннера, Э. Рудоффа «UNIX: разработка сетевых приложений», 3-е изд. (изд-во «Питер») или Beej’s Guide to Network Programming. Рекомендуем ознакомиться с этими ресурсами."
>>3542436 >А в них примеры на каких языках программирования Это системное погромирование там все на Си, на Крестах и Петухоне только обертки и то от васянов.
А когда пишут "программирование на Unix", то это то же самое, что Linux или не совсем? Почему программирование на Unix выделяется в какую-то отдельную область, если там используется C?
>>3542499 >А когда пишут "программирование на Unix", то это то же самое, что Linux или не совсем Имеется в виду семейство UNIX-подобных ос. Вообще, все они в той или иной степени posix совместимые. Даже винда немножко posix
>>3542502 То есть все, что в таких книгах пишется, на какой-нибудь Ubuntu точно будет работать? С поправкой на более новую версию технологий.
>Вообще, все они в той или иной степени posix совместимые. Даже винда немножко posix Просто если в эпоху популярности Windows пишут отдельные книги по разработке для Unix и Windows, то как будто есть значительные расхождения между этими типами ОС.
>>3542504 >То есть все, что в таких книгах пишется, на какой-нибудь Ubuntu точно будет работать? Это троллинг? >Просто если в эпоху популярности Windows пишут отдельные книги по разработке для Unix и Windows, то как будто есть значительные расхождения между этими типами ОС. Различия есть. У этих систем разные идеологии. Совершенно. Винду - писали индусы, а юниксы - умные люди
>>3542123 Странное тебе посоветовали. Обычно все что касается сети использует си. А си очень простой язык, и книги по сетям любят эти особенности и конечно их эксплуатируют. Обратное как то странно и скорее всего книга говно
Напиши два простых приложения: одно сервер, другое - клиент
Сервер поднимает сокет и ждёт несколько входящих соединений. При соединении ждёт текстовой команды, которой означает имя файла, которого нужно создать в рабочей дирректории бинаря
А клиент, соотвественно коннектиться и шлёт имя файла.
ПОтом посомтри epoll. Всё пиши на си. КОгда поймёшь чо происходит: читай исходники nginx и squid (лучге nginx)
На всё про всё - даю тебе месяц-полтора. Если проштудируешь сетевую часть исходников nginx - то будешь знать все нюансы рабоыт с сетью. Это реально много для прохожднеия собесов на начальном уровне и просто понимания, как это всё работает.
Больше тебе это нахуй не надо. ПОслдений раз сервер на си я писал в 2012 год, и в 2022. Но в 2022 связано с лицензионным ограниченмиями и всем таким (тупо старый компилятор, который не может соброать boost.asio)
Сегодня для сети в с++ используется asio, но понимать, как работает асинхронный код с помощью всяких epoll/select'ов - понять очень ценно и полезно.
>>3542535 >прогарммирования сети не надо читать книги. ты загнул конечно. несколько ф-ций любой дурак может вызвать, но это не значит, что это сЕтЕвОе пРоГрАмМиРоВаНиЕ > читай исходники nginx и squid бросайте универы, петушары, бегом читать исходники nginx и squid
>>3542671 >бросайте универы, петушары, бегом читать исходники nginx и squid >бросать универы == не читать тупые коммерческие книжки где 95 процентов воды окэй nginx именно самое лучше сетевое программирование, что я видел. Читают книжки - лохи. Нужно читать исходники. Иногда вообще пишут книжку какие-то ноунеймы, котоыре ничгео в жизни не прогарммировали.
>>3542727 Вот, читай книжечку про город чистую архитектуру. Его крутой программист роберт мартин написал. Инженер. Кстати, можно его исходники где-то почитать? Какой-то модуль фрибсд забабахал, или линукса? Может пайторч? Может тензорфлоу? Хм, чот не вижу. Ну ты читай читай. Там глобальные логеры у него. Ахуенная штука
>>3542738 >консультант То есть пиздабол. Видел такого консультанта, может часами говорить на любую тему, любого собеседника уболтать и подавить интеллектом, но кода за несколько лет написал только хеллоуворлд, половину мышкой, и тот заглючил. В общем консультант это мастер работать языком, как шлюшки отсасывающие клиентам.
>>3542753 Однако ж, пару раз меня про эту книжку спрашивали на собесах любители SOLID. Что поделать! Пока что, мы живём в мире людей победивших софтскиллов. И отбор наверх идёт именно по этим параметрам. Ну один гегемон уже из-за этого отбора (не быть, а казаться), начал сыпаться. Так что жду прихода технофашиков, которые всяких робертов заткнут, и тогда - заживём
> коммерческие книжки книжки -- источник знаний. и все. есть хорошие книжки, есть плохие. плохие книжки читать не стоит, хорошие читать стоит. считать, что все книжки плохие равно боятся книжек
чаще всего в книжках какой-то васянский nginx разобран по косточкам, с примерами и объяснениями, не понимаю чего тут плохого.
>>3542975 Я бы сказал знание сишки для крестов примерно так же важно как и знание ассемблера для джавы. Т.е. для реальных задач бесполезно. Хотя ты можешь писать на сишке с классами и говорить что крестовик. Но в 2025 С++17 - это минимум, а по хорошему С++23 надо знать, чтоб не обсераться от исходников STL.
>>3542997 Конечно, есть хорошие книжки. Но нет ничего лучше просто почитать исходники. А книжки по сетям, наверно, вообще все говно. МОжет, только таненбаум, но я его только про ос читал, и скажу, что достаточно просто установить qemu или bochs, скачать intel manual architecture volume 3 и начать писать ОС, читая другие Оси.
>>3543596 Нет, не достаточно. Люди все же привыкли воспринимать человеческий язык и хотя бы какие то понятные идеи и текст. Сидеть ковыряться в исходниках и выносить из этого какое то адекватное понимание может только аутист. В любом случае ты читая исходники и половины не поймешь почему сделано именно вот так, а не иначе. Ты можешь конечно пукнуть ну а вот я могу, но кто этому поверит? Я думаю что ты просто дурачок-аутист вот и все. Что ты там читаешь сидишь и нахуя, я даже хз
>>3543609 В этих книжках, даже четверти нет того, что нужно для написания реально ос. Тебе всё равно придётся придти в исходники для написания. А, ну да + irc с разрабами. Никакой нигде инфы больше нет. Смирись с этим
>>3543596 >Но нет ничего лучше просто почитать исходники. Сколько лет вижу эту мантру. Форсить её могут только дебилы, которые никогда не видели продакшн код.
>>3543634 >Тебе всё равно придётся придти в исходники для написания. Нет не придётся. Практически, все современные методики, если не описаны в книжках, то описаны в статьях, бложиках и т.д. В исходники ты идёшь уже после прочтения статьи, когда у тебя уже есть представление, куда смотреть. Не говоря уже, что смотреть чужие исходники без понимания аналогично списыванию у рандом хуя - не факт, что этот хуй реализовал всё как надо. Даже в широко используемых, "проверенных временем" проектах полно костылей.
Расскажи мне, как определить максимально надёжынй аппартынй источник времени на железе, его гранулярность. Скинь бложик (только бложик не человека, который автор должен быть чистым преподом, а не разработчиком ядра линукс, окэй? Или скинь мне на главу таненбаума, где этот вопросик обкашливается)
Покажи мне костыли сетевого подмодуля в nginx . Ты же читал его исходники? Ну не читал ты nginx, скинь продукт, который читал, и какие там ужасные костыли, только ты должен не один макросик скинуть, а прям по теме. Ты же шаришь, я вижу.
>>3543992 >надёжынй аппартынй источник времени на железе Ты передергиваешь. Или ты читать не умеешь? Где логическая связь с постом выше? Если тебе так надо, смотри датащит или мануалы на конкретную хуевину. Вот если там нет, тогда уже, да.
Что заладил со своим нджинксом? Он тебя в жопу ебал?
>>3544124 >Если тебе так надо, смотри датащит или мануалы на конкретную хуевину Вот теперь, школьник, слушай. Вот в исходниках как раз в коде всё уже это сделано, баги компиляторов и железа учтены, в комментах есть описания глюков железа и компиляторов для разных версий, в исходниках учтена разница в поведении разных операционок и железа и дохуя чего всего. Поэтому и надо читать исходники, долбоёб
>>3544284 Ну что сказать поздравляю ты проебал кучу времени на говно. И собираешься проебать кучу времени еще на одно говно. Тебе хоть деньги платят? Или ты так просто околачиваешься вокруг?
>>3544291 Альтернатива есть: не тратить время на говно и программирование в целом и уж тем более на изучение каких-то сраных языков. Это все кал. В 25 году остался один язык программирования -- английский
>>3541356 >которое ещё хуй соберёшь. Вкатутося, плиз, буст собирается двумя строчками в консольке. И это мы ещё по пердоликс не говорим с его apt-getом. >>3544301 >Так С++ это мoкpo писькa для С Минусы будут?
>>3544699 Американская мыльница с регион-локом, там не ОС, а прошивка. ОС это то, что можно установить на компьютер, а не то, что в нём прошито производителем. И обновления прошивки это вовсе не установка ОС. ОС это то, что устанавливается по воле пользователя, значит обязан быть выбор из нескольких ОС.
>>3544898 Ну и что? Смысл в том, что когда производитель делает софтварную начинку и ставит на свои устройства это прошивка, а не ОС. ОС это нечто свободное, что ставится по чужому выбору на всякое разное. Компилятор можно засунуть и в прошивку, это не делает прошивку ОС.
С помощью opencv и matchTemplate ищу нужные изображения на экране. На одно изображение уходит 16мс, если искать два последовательно то 33мс. Можно ли как-то ускорить процесс? Может можно как-то позволить программе потреблять больше ресурсов процессора? Если в этом конечно есть смысл. Пробовал многопоточность с помощью thread, чтоб два изображения искались одновременно, но в итоге скорость выходит такая же, как если искать последовательно - 33мс.
>>3544958 Да ну? А как же тогда ставят винду, под дулом пистолета? Ну ты и лолка.
>>3544973>>3545022 Одебилевшему скоту неприятно, даже хрюкнуть в ответ ничего не может.
Отличие ОС от прошивки принципиально. ОС это когда делают приложения "под ОС". А прошивка это когда приложения делают "под девайс". "Приложение под Windows или Linux" означает именно это, приложение под ОС, независимо от железа, а "приложение под MacOS" это ложь и значение совсем другое "приложение под макбук такой-то серии и выше", то есть под железо. Когда говорят "ОС" подразумевают ОС, когда говорят название прошивки подразумевают железо. Таким образом, ОС это нечто свободное, что ставится на независимое железо.
>>3545215 Вообще нихуя не понятно что ты там ищешь и делаешь и что за задачу решаешь. Попробуй свои алгоритмы на грейскейлах запускать и посмотреть что за сколько отрабатывает и в эту сторону копать
>>3545492 Ищу кнопки на 6 маленьких окнах в браузере, а когда они появляются - нажимаю. Для измерения скорости выполнения отдельных задач использую chrono. Оказывается сами изображения ищутся быстро - 5мс, но больше 10 мс занимает функция HDC hdcScreen = GetDC(NULL), которая нужна для последующего захвата экрана.
>>3545542 Ошибся, просто если выполнить HDC hdcScreen = GetDC(NULL) единожды, то экран правильно захватывается только один раз, а следующие кадры просто черные, естественно и на поиск уходит в таком случае меньше времени. Наверное 16 мс это мой возможный минимум, так как мало того что ищу на участке 1/3 моего монитора 3440х1440, так и сам скрин для поиска ужимается в четыре раза. Читал что можно быстрее захватывать экран с помощью directX, напрямую беря пиксели из памяти видеокарты, но сложно потом этот поток перевести в изображение.
>>3545552 15мс это на одно изображение, а ищется несколько. Учитывая что с такой же скоростью еще десяток ботов успевает нажать, то да, хотелось бы уменьшить время. Хотя тут видимо уже больше зависит от сервера, кто ближе к нему находится, тот первый видит кнопку в браузере. Но все-равно когда сократил поиск с 200мс до 15мс, то результат ощутил.
>>3545565>>3545560 У тебя GetDC захватывает весь экран сразу, потом ты можешь на нем искать разные изображения, то есть, его длительность не учитывается в каждом изображении. ReleaseDC не забываешь делать?
Для ботов посмотри headless-chrome. Это более адекватный способ, вроде.
>>3545542 >Оказывается сами изображения ищутся быстро - 5мс чел для такой тупой задачи это нихуя не быстро повторюсь ты что то не так кодишь, копай дальше
>>3545646 >>3545651 А че не быстро-то? Эта хрень тупо по пикселям сопоставляет и строит карту корреляции. Чисто по алгоритму это цикл 4-го уровня вложенности. Такое сопоставление можно оптимизировать по принципу оптимизации поиска вхождения подстрок, но только не когда вся карта корреляции должна быть на выходе. Такой метод в принципе неадекватный сам по себе. Если ты нашел картинку в какой-то позиции, то следующий фрагмент width x height можно было бы вообще пропустить.
>>3545654 Дополню, что в данном случае можно было бы сделать дайнскейл этих картинок и сопоставлять милиписечные тумбнейлы. Если надо, потом фрагменты исходного масштаба досопоставить отдельно. Это должно быть намного быстрее.
>>3545646 >>3545651 >>3545659 Все время у меня занимают конкретно эти две функции: BitBlt 9мс (*функция Win32 API, предназначенная для передачи прямоугольного блока пикселей из одного контекста устройства в другой. Она выполняет битовую копию данных цвета между исходным и целевым устройствами). cv::matchTemplate 5мс - поиск нужного изображения на скриншоте
Процессор 12400f. Скрин размером 712х1092 для поиска совпадений ужимается до 178х273. Позже попробую еще использовать монохромные цвета и обрезать/закрасить в черный ненужные участки скриншота.
>>3545713 Что такое тбб? Какие строки смотреть? Делал все как тут описано https://habr.com/ru/articles/318846/ Качал с гитхаба последнюю версию и модули к ней, собирал с помощью CMake, ошибок не было. Для скрина используется CV_8UC4, 4 канала. Ищется изображение png 10х8, оно перед этим переводится в cv::COLOR_BGR2BGRA, так как без этого выходила ошибка о разных типах. Если использовать 3 канала, то вместо скриншота получался просто черный экран.
>>3545738 Пока точно удастся сократить время на поиск нескольких изображений, так как до этого у меня для каждого файла в функции был и скрин и сравнение, а теперь скрин будет делаться только в начале цикла и по нему уже поиск всех нужных изображений. Пока получается по 5мс на одну картинку + 10мс в начале цикла на скриншот.
>>3545760 Однако не он плохо смотрел милого улыбнулся он сюй не красивого быть инстинкт мужской и сказал зудело так поэтому себя был видя но кролика уж сердце контролировал маленького иметь не своего злых когда мыслей человека чистого мог может на яо и просто это он такого.
>>3545706 Функция используемая для захвата экрана BitBlt длиться 9мс в случае, если вместе с ней в функции находится одна cv::matchTemplate. Если сравнения нет, то BitBlt длится 22мс, а если делать например сразу 5 сравнений, то ее скорость опять возвращается к 9мс. При 10 сравнениях скорость BitBlt скачет от 10 до 20мс. Странно как, для нее ведь ничего не меняется.
>>3545861 У меня возникли проблемы с библиотеками ttb в code:blocks. Includes в настройках компилятора добавил, библиотеки все добавил, но при выполнении программа выдает ошибку, как если бы не было ссылок на библиотеки. С opencv таких проблем не было. Ну да ладно, не думаю что ttb многое бы изменило. Выше написали что matchTemplate использует многопоточность, наверное специально для этого городить ничего больше не надо.
>>3545906 Ты бы подробнее расписал какую задачу решаешь. Читы для игрульки, или захват рабочего стола (что делаешь с несколькими экранами)? И как организуешь захват и на какой ОС?
Если это вывод через какое-то графическое API, то можно попататься хукнуть презентацию, и залезть в текстуру свопчейна еще до того как кадр покажется на экране. Если нужен весь рабочий стол, то нужно гуглить приколы с композитором.
>>3545910 >как если бы не было ссылок на библиотеки Значит продолбался или с путями до инклюдов, или с путём для поиска lib-ов, либо dll не положил в директорию к экзешнику. Читай ошибки внимательнее.
>>3548327 >Ты бы подробнее расписал какую задачу решаешь. На кнопки в браузере быстро нажимаю. На сайте при этом живой поиск - кнопки появляются периодически. Я уже нашел более хороший метод с максимально возможной скоростью в браузере - перехват нужных входящих пакетов WebSocket на с++ и отправка в браузер команды javascript на нажатие кнопки. Пришлось даже задержку использовать, так как браузер еще не успевает нужные элементы в dom встроить. Удается нажать еще до появления изображения кнопки. Следующим шагом к ускорению хочу попробовать нужные пакеты сразу отправлять, не из браузера.
>И как организуешь захват и на какой ОС? Windows. На изображении две функции - на захват и на поиск кнопки на скрине. Часть скриншота закрашивал, чтоб ошибок при поиске избежать, так как изображение сильно сжималось и приходилось возиться с настройкой чувствительности. >>3548329 >либо dll не положил в директорию к экзешнику Вот этого не делал, не знал даже о таком.
>>3548394 Это тебе не в плюсы скорее всего. Проще запилить скрипт GreaseMonkey, расширение браузера, или типа того. Ну или клиент на ноде/питоне. Посмотри есть ли вообще у сайта API, чтобы не трахаться со скраппингом.
> Вот этого не делал, не знал даже о таком. На msdn можно загуглить как именно винда грузит динамические библиотеки.
>>3548841 Расширение несложно сделать, делал, но оно проигрывает по времени перехвату пакетов c++, к тому же его действия легко отслеживаются на сайте, что может привести к бану за такое. Я сейчас изучаю пакеты websocket и tcp у сайта, их не так много, хочу реализовать отправку пакетов с нажатием сразу с помощью c++, не ожидая браузера. Программка для поиска изображений мне тоже нужна для игры, но там такая высокая скорость нажатий не нужна.
>>3545738 IntelTBB очень важно. ПОтому что львиная доля (если не 95 процентов) алгоритмов параллелиться с помощью IntelTBB. То, что у тебя там какие-то pthread - ни о чём не говорит. Собери с IntelTBB. Это очень важно
>>3549103 +Я последний раз возился с opencv в 2021 году. Скажу на память. Если ты на винде, тогда нужно было с сайта intel скачать устанвощик intetbb, установить. Потом в cmake указать дирректории для intelTBB. С opencv я работал тогда очень плотно. Не думаю, что сильно что-то поменялось. ,наприме, все конвертеры в разные каналы, optflowtracker, каскад хаара, cv::mean, cv::integral и прочее - все паралеллись с помощью intelTBB. За твою matchtempalte сказать не могу - сам гляди. Даже если именно она от inteltbb не зависит, куча opencv функций для обработки изображений - зависит
>>3549106 +именно про cv::integral напиздел. Но код cv::matchTemplate дохера кода в себе содержит. Тем более - ты же не только её дёргаешь из всегда фреймворка. Ну смотри сам, ёбаный в рот. СОбрать с inteltbb - буквально 15 минут. Ничего сложного, ёбаный в рот
>>3551011 Я так понимаю, этот тред мониторят дохуя анонов. Раз в 30 минут открывают, смотрят, есть ли новые посты, видят, что нет, закрывают. Свои посты писать уже никто не хочет, все ждут постов, на которые интересно отвечать. Так тред и тонет, не дотянув до 1000.
>>3551052 Ну дык чё ты хотел, в этом треде нет толп крудошлепов, вкатунов и волков. С++ нужен только реально идейным или людям с мозгами и в теме, а эти люди редко будут сидеть на борде для умственно отсталых крудошлепов.
Сложно ли такое будет реализовать с помощью библиотеки openssl?
Из секрета-tsl из лог-файла браузера сгенерировать ключ с помощью алгоритма HKDF: - выбрать алгоритм хэширования (SHA-256), - получить: ключ шифрования (encryption key), вектор инициализации (IV), MAC ключи (если используется AEAD) Применить полученный ключ/ключи к пакету - определить тип шифра (TLS использует AES-GCM) - декодировать с помощью ключей и IV - проверить аутентификацию (например, через тег MAC или AEAD).
Эти операции умеет делать Wireshark, но мне надо на лету расшифровать два пакета tsl, на их основе сформировать другие два пакета, зашифровать этими же ключами и отправить обратно. Сама структура расшифрованных пакетов несложная, но вот с их декодированием видимо придется повозиться.
>>3551052 Ну, скажем, года два назад я бы со своими вопросами пошёл сюда; но нынче задаю их нейронке. Я вот тут задал вопрос, который нейронке не задашь, анон только поржал и ничего путного не ответил.
>>3556906 Пришлось чуть поскрипеть мозгами - порядок вычисления выражений: f() + g() - порядок вычисления аргументов функций foo(f(), g()) Если правильно помню, до 17 стандарта порядок не был определён, потом стал как-то определён
>>3556882 Это не решается одной задачей\вопросом. Если ты хочешь выяснить свой грейд то это только интервью. Весь процесс интервью строится на ковырянии тебя до тех пор пока ты не начнешь плавать. Например в бибокеке составляется матрица с баллами и вопросами\темами. И интервьюер тебя ебет в жопу по ним. Полный разговор на 1.5-2 часа.
Ну если тебе прям экспресс тест, вот тебе классика минут на 20 на выбор написать на листке: шаред птр вектор (только пуш методы) Разумеется никуда не подглядывать, если какие-то синтаксические ошибки то похуй. Главное комментируй основные строчки и какая за ними идея стоит
>>3556927 Даже на джуна с такими знаниями не взял бы тебя. То что ты перечислил - это unsequenced behavior, порядок может быть любым, вплоть до полного рандома. А unspecified behaviour должно быть всегда одинаковым в рамках одного бинарника. Например количество реальных аллокаций и как они будут сделаны при вызове new - это unspecified behaviour. А есть ещё implementation-defined behavior - это то что компилятор должен самостоятельно определить и задокументировать, например размеры базовых типов. А так да, комитет регулярно из одного behaviour в другой переводит, например undefined в unspecified в новых стандартах.
>>3556967 >Ну если тебе прям экспресс тест, вот тебе классика минут на 20 на выбор написать на листке: >шаред птр >вектор (только пуш методы) >Разумеется никуда не подглядывать, если какие-то синтаксические ошибки то похуй. Главное комментируй основные строчки и какая за ними идея стоит За честные 20 минут в блокноте родил это https://paste.parinux.org/paste/gjpiEsog#u3kTX-5c6xMMBtJPqN9JSxiiKlpZibVb4MyKlihTQ+U >Полный разговор на 1.5-2 часа. Понимаю, да.
>>3556975 >Даже на джуна с такими знаниями не взял бы тебя. А ты где такое требуешь? Честно говоря думаю, что это троллинг. >unsequenced behavior Не гуглится Знаю только деление на {Undefined, Implementation, Unspecified} Behavior. >порядок может быть любым, вплоть до полного рандома. А unspecified behaviour должно быть всегда одинаковым в рамках одного бинарника. Например количество реальных аллокаций и как они будут сделаны при вызове new - это unspecified behaviour. Вот это интересно, не знал, спасибо.
>>3557008 Я тебя просил комментарии написать чтобы понять как ты к архитектуре класса подходишь, ты это все проебал и тебе сразу минус бала два за такой игнор меня.
В общем ты не прошел ревью, детские ошибки присутствуют, но вижу что чисто базово что то понимаешь. Зачем то вызываешь для дефолтного конструктора тяжелые операции, почему то в резерве муваешь, может ты хотел мув на ноэксепт делать? Сишные маллоки, в эмплейсе две проверки получаются, я бы списал на невнимательность, но у тебя буквально два метода перед глазами, деструкторы ты забыл вызвать в своем резерве, гарантии исключений ты не знаешь и прочее прочее чего я уже даже не стал смотреть.
В общем это уровень студента где-то на экзамене, ну четвёрочника обычной шараги, которому первый раз такое задание дали. Я бы сказал что ты не выше джуна-джуна+
>>3557029 >Я тебя просил комментарии написать чтобы понять как ты к архитектуре класса подходишь, ты это все проебал и тебе сразу минус бала два за такой игнор меня. Я просто честное слово не понимаю, что можно комментировать в векторе. Я за эти 20 минут и трети того что стандарт требует не реализовал.
>Зачем то вызываешь для дефолтного конструктора тяжелые операции >Сишные маллоки >в эмплейсе две проверки получаются >деструкторы ты забыл вызвать в своем резерве Это признаю
>почему то в резерве муваешь А что ещё там делать?
>и прочее прочее чего я уже даже не стал смотреть Справедливости ради там дальше уже и нечего смотреть?
>которому первый раз такое задание дали В принципе так и есть. Я операторы new/delete никогда в своей практике не использую. Реально стыдно за exception safety
>>3557035 Одно то что тебе нечем прокомментировать вектор уже говорит о том что ты не знаешь ни про инварианты классов, ни про гарантии исключений, ни про семантику использования. Если ты не понимаешь как архитектурить класс правильно, то это уже не выше джуна, о чем с тобой можно говорить? Ты на вопрос какой инвариант у твоей херни получился сможешь ответить? А соблюдаешь его по коду, глянь ка. Я тебе могу досрать еще пару абзацев где ты обосрался, но мне лениво, итак уже все понятно.
Я тебе по секрету скажу норм плюсовой челик даже не стал бы мне отвечать, он бы сказал пик и ответил комментом в духе да я и так знаю реализацию вектора из стл и писал уже его на собесах. А то что ты ответил уже своего рода детект нуфани
>>3557041 >Я тебе по секрету скажу норм плюсовой челик даже не стал бы мне отвечать, он бы сказал пик и ответил комментом в духе да я и так знаю реализацию вектора из стл и писал уже его на собесах. А то что ты ответил уже своего рода детект нуфани Хорошо, на собесах буду интервьюеров нахуй слать
>инвариант (m_data == nullptr && m_size == 0 && m_capacity == 0) || (m_data != nullptr && m_size <= m_capacity) + валидность объектов на [m_data; m_data + size - 1] и просто память на [m_data + size; m_data + m_capacity - 1]
>А соблюдаешь его по коду, глянь ка. маллоки на new заменить, деструкторы где надо повызывать, исключения поймать и всё заебок с инвариантом будет
>Я тебе могу досрать еще пару абзацев где ты обосрался, но мне лениво, итак уже все понятно. Будь добр, всё равно же не спишь?
P.S. >>3557035 >>почему то в резерве муваешь >А что ещё там делать? Про это так и не понял
>>3557043 Не буду добр. Если это говно то зачем мне туда полностью погружаться? Я тебя вообще два метода по сути просил написать, а ты мне зачем то вот это например подпихиваешь if (i > m_size - 1) throw std::runtime_error("index out of bounds"); одна строчка по сути а столько говна, почему рантайм ерор это, в стл есть специальный экспешн который кидает вектор Дальше мсайз это че? Это сайз_т, ты сам это сказал, не я, уверен что безопасно писать -1? В таких случаях нормальные люди i + 1 пишут и тд и тп
>>3557044 Думаю уже понятно, базово про инварианты и гарантию исключений, дальше можно больше. Я изначально просил комменты чтобы понять например почему в векторе нужно делать аллокацию сырой памяти плюс инплейс конструктор, понимает это человек или нет. НУ и про вектор вообще можно много чего накинуть писал же. Это так сказать вершина дизайна стл
>>3557048 >почему рантайм ерор это, в стл есть специальный экспешн который кидает вектор Я знаю, да. Но как он называется? Я не помню. Уверен, что ты тоже. >Дальше мсайз это че? Это сайз_т, ты сам это сказал, не я, уверен что безопасно писать -1? В таких случаях нормальные люди i + 1 пишут Обтекаю
>>3557049 Я тебе написал что можешь забить на синтаксис. Даже если не помнишь и если даже такого экспешена вообще в стл нет твой класс это ебать не должно. Видишь я делаю еще один вывод что ты еще что такое и рантайм ерор в приложениях и архитектуре не понимаешь или даже вообще что такое экспешены в дизайне с++ что уже критикал как бы