кроме значений Кармы и Рейтинга, еще и подсчет количества Банов (у скольких пользователей текущий человек находится в черном списке), то это будет супер полезная информация в самом начале дискуссии.
Вместо того, чтобы смотреть на эти значения, гораздо практичнее будет ознакомиться с несколькими предыдущими комментариями пользователя. А перед этим, понятное дело, прочитать его комментарий и оценить — следует ли (хочется ли) на него отвечать?
Например, ваш ответ может нанести пользу другим людям, которые хотели задать такой же вопрос, но не успели и не стали задавать, т.к. его уже озвучили. Конечно, ситуация, когда отвечаешь на тот же вопрос, но от «уважаемого» человека в следующем комментарии, гораздо комичнее — «Тебе, пёс заминусованый, лычку и билет в ЧС, но вот другому комментатору отвечу».
В части механизма игнора (в т.ч. счетчика) — затея деструктивная, выше уже описали почему. Не раз наблюдал картину, когда грамотные и интересные пользователи были заминусованы, что памятник Ленину голубями.
И, раз пошла такая пьянка, у меня тоже предложение:
2 @Boomburum (пардон, если не по адресу): Я подписан на крутых специалистов и в целом замечательных людей, иногда мне интересны не только их публикации, но и комментарии по разным темам. Хочу получать такие уведомления без танцев с RRS. Можно?
Комментарий выше на ваше утверждение о «-1 → 0» в топике C/C++ — это не троллинг, а вполне адекватная реакция. Не важно, перепутали вы что-то или нет, вы об этом написали и вам на это ответили.
В части правильно/неправильно давать в «руководстве для новичков» подход, который может привести к ошибкам в более сложных случаях, тут уж вам решать. Вы же сами назвали статью «альтернативой» документации и захотели улучшить ее.
По поводу отношения к руководствам по win32 в 2025 году (а их за все время накопилось, хоть попой ешь) скажу так. Примерно раз в год на Хабре случаются выбросы в духе: «Пацаны, сейчас я научу вас писать свой движок на DX12. Часть первая: язык Си создал Деннис Ритчи в 1970 году, вот это указатель, вот так писать на плюсах, а так — создается окно. Вот мы и нарисовали окно, а как рисовать, объясню в следующей части».
Ясен пончик, запал заканчивается, и не то что до рисования — до инициализации DX дело не доходит, т.к. писатели сами вдуплить не могут в те 100500 loc, необходимых для радужного треугольника, либо поняли, что объяснить могут только треть или четверть из всего этого бойлерплейта. И все эти первые части стыдливо стираются самими авторами по прошествии пубертатного периода времени.
Пользователи этот цирк видят, отчего сии опусы у некоторых комментаторов ничего кроме раздражения и желания поострить не вызывают.
Тогда что она делает в сишном хабе? Нет, если автор покажет рабочий код Direct2D на чистых сях (без костылей на плюсах), это будет номер!
в документации от Microsoft мало что сказано о том, что вообще нужно сделать для создания окна
А это что? Целый учебник с картинками: Get Started with Win32 and C++ (даю линк на английскую версию, т.к. перевод ИИ в MSDN на русский — кровь из глаз).
И почему в затравочном абзаце речь про DX, а тут резко упали до D2D?
Почему WNDCLASSEX в "цитате" из MSDN и в статье обозвали "_WNDCLASS", когда у последнего (сиречь WNDCLASS) полей меньше? И ссылка дана на ansi версию, когда по ходу пьесы у нас вовсю юникод будет?
Про Case Engine тут слышал, две статьи их видел. Очень жаль, что не срослось с разработкой.
Я уверен — ребята клевые, но вот на Хабре статьи не взлетели, т.к. не о том писали — от разработчиков движков (даже начинающих) ждешь какой-нибудь жести и офигительных историй, а не туториалы по VS 2022 и избитые учебные статьи в духе, как писать на плюсах.
Под офигительными историями и жестью я понимаю: «Увидели на конференции такой-то доклад такой-то студии и решили запилить подобную фичу в наш движок. Сначала сделали так <описание во всех красках не очень гениального решения>, но не сложилось, потому что ... А затем мы пошли другим путем <описание во всех красках гениального решения> и всех победили. Вот вам бенчмарки и список литературы.».
Не обязательно же отвлекаться от разработки, тратить время и разжевывать для самых маленьких, как пилить свой движок от А до Я и все его возможности на 100500 статей ради плюсиков на Хабре. Достаточно редко, но метко раз в полгода-год вот такое выдавать.
Александр, мое почтение! Даже если не выстрелит или забьете и приступите к другому проекту — все равно это хороший опыт.
Хотелось бы побольше мяса и подробностей в статье, а также прочее: предыстория разработки фреймворка (курсовая/дипломная работа или другое) или с чего начинали, работали один или с командой, что читали, чем вдохновлялись, на какой он стадии (картинку выводит или нет), к чему хотите прийти и т.д.
Используя holds_alternative проще и быстрее сразу проверить: содержит ли some_variant значение типа строки (без извлечения этого значения), чем сразу с помощью std::get_if извлекать из варианта нечто и для неудачных исходов обрабатывать nullptr.
Вам несколько раз предлагали вместо вот этого оффтопа в комментах оформить ваш опыт в виде большой и основательной статьи. Предлагали без задних мыслей и желания подколоть. Будет круто, если вы так и поступите, т.к. темы, которые вы затрагиваете, гораздо интереснее, чем очередные пассажи от ЛЛМ о создании Сапера/Змейки на питоне.
это звучит так будто делать движок и 3д игру нереально без движка.
Нет, это звучит как «данная статья обзорная и в ней приводятся интересные истории о применении разных аллокаторов для разных задач, детали их реализации со всей выкладкой и обоснованием конкретных решений в ней будут лишними — для этого надо писать совершенно другие статьи с другой мотивацией и посылом, а иногда еще с нотариально заверенным разрешением от юридического департамента».
Когда вы пишите движок/игру, вам эта статья (да и вся их серия) может помочь, как вдохновение, источник идей или навигатор по нескольким специфичным аллокаторам, а за реализацией — добро пожаловать в гугл, искать нужный учебник/руководство/вайтпейпер/etc., параллельно воплощая все это в коде.
Jijiki, я вас умоляю, не поверхностно, а достаточно для такого рода статьи.
Например, по приведенной в статье ссылке на репозиторий с TLSF содержится ~1K loc на сях. Сферическая публикация с его описанием — это простыня не менее чем 30+ страниц A4, забитых формулами и ссылками на Кнута + пара десятков строчек сишного псевдокода. И все это добро не даст новичку полного понимания для самостоятельной реализации, а через месяц после прочтения — напрочь выветрится из головы.
Тут же вопрос, надо ли это автору и читателям, когда более углубленный материал уже несколько раз написан другими людьми? Чтобы пацаны с уважением головами покивали и некоторые в закладки добавили да забыли насовсем, ибо повод и целесообразность применения может совсем не появиться?
Не считая того, что в void myfunc(const int arr[3][2]) компилятор игнорирует 3 и превращает параметр функции в const int arr[][2] (т.е. в обычный указатель на константный массив из 2 интов), ни в чем https://godbolt.org/z/T6q1WdT3G :)
Ваш комментарий и еще один ниже внезапно (!) никак не противоречат приведенной мной цитате. Зато она видимо обидела кого-то.
Зная ассемблер, так то и мне K&R простой показалась бы в свое время. И если что, новичок — это не про возраст. Не противоречит это и утверждению Константина Владимирова, что K&R должна быть первой (не важно в каком смысле «первой») книгой студента — сферический студент кафедры информатики в МФТИ сдецл отличается от сферического новичка в вакууме, ничего о программировании доселе не слышавшем.
Хэннеси-ПаттерсонComputer Architecture: A Quantitative Approach
Ознакомился наспех с содержанием — да, это то что я хотел в том числе. Спасибо!
Просто комменты профессионалов читаю иногда (вот например), и некоторые слова гуглю, а там такие вещи интересные, которых в общих книгах по CS я не встречал и не догадывался об их существовании. Но системы в этом гуглении нет, хотелось бы не по крупицам знания получать, а последовательно что ли.
Вы уверены, что хотите именно про микроархитектуру, а не про то, как правильно бэнчмаркать и оптимизировать программы?
Ну и правильно (или около того) оптимизировать и бенчмаркать хочу тоже научиться. И те же алгоритмы, чтобы вообще о существовании LRU хотя бы догадываться.
Если что - я почти уверен, что по ссылке не про аппаратный кэш ;)
Это да, но я не сомневаюсь, что unreal_undead2 и в остальном разбирается, поэтому и спросил в рамках оффтопа.
Разрешите тупой вопрос? А есть ли какой букварь/ресурс/цикл для виндузятников-любителей asm/C/C++ по теме оптимизации, чтобы вот слова типа prediction, latency, occupancy, cache miss, TLB, etc. не казались совсем уж магией. Ну еще чтобы про то, как грамотно профилировать, бенчмаркать и пр. было.
Или это только в университетах дают, или в разрозненных статьях/книгах?
Предположу, что вырубят к концу января 2026, когда рекламный бюджет закончится. Как было с реакциями:
• конец ноября 2024: На Хабре появились Реакции
• конец января 2025: Реакции на Хабре: постмортем
И да, я согласен с предложением @haqreu — нумерация строк в коде гораздо сподручнее ИИ.
Вместо того, чтобы смотреть на эти значения, гораздо практичнее будет ознакомиться с несколькими предыдущими комментариями пользователя. А перед этим, понятное дело, прочитать его комментарий и оценить — следует ли (хочется ли) на него отвечать?
Например, ваш ответ может нанести пользу другим людям, которые хотели задать такой же вопрос, но не успели и не стали задавать, т.к. его уже озвучили. Конечно, ситуация, когда отвечаешь на тот же вопрос, но от «уважаемого» человека в следующем комментарии, гораздо комичнее — «Тебе, пёс заминусованый, лычку и билет в ЧС, но вот другому комментатору отвечу».
В части механизма игнора (в т.ч. счетчика) — затея деструктивная, выше уже описали почему. Не раз наблюдал картину, когда грамотные и интересные пользователи были заминусованы, что памятник Ленину голубями.
И, раз пошла такая пьянка, у меня тоже предложение:
2 @Boomburum (пардон, если не по адресу): Я подписан на крутых специалистов и в целом замечательных людей, иногда мне интересны не только их публикации, но и комментарии по разным темам. Хочу получать такие уведомления без танцев с RRS. Можно?
Комментарий выше на ваше утверждение о «-1 → 0» в топике C/C++ — это не троллинг, а вполне адекватная реакция. Не важно, перепутали вы что-то или нет, вы об этом написали и вам на это ответили.
В части правильно/неправильно давать в «руководстве для новичков» подход, который может привести к ошибкам в более сложных случаях, тут уж вам решать. Вы же сами назвали статью «альтернативой» документации и захотели улучшить ее.
По поводу отношения к руководствам по win32 в 2025 году (а их за все время накопилось, хоть попой ешь) скажу так. Примерно раз в год на Хабре случаются выбросы в духе: «Пацаны, сейчас я научу вас писать свой движок на DX12. Часть первая: язык Си создал Деннис Ритчи в 1970 году, вот это указатель, вот так писать на плюсах, а так — создается окно. Вот мы и нарисовали окно, а как рисовать, объясню в следующей части».
Ясен пончик, запал заканчивается, и не то что до рисования — до инициализации DX дело не доходит, т.к. писатели сами вдуплить не могут в те 100500 loc, необходимых для радужного треугольника, либо поняли, что объяснить могут только треть или четверть из всего этого бойлерплейта. И все эти первые части стыдливо стираются самими авторами по прошествии
пубертатного периодавремени.Пользователи этот цирк видят, отчего сии опусы у некоторых комментаторов ничего кроме раздражения и желания поострить не вызывают.
Вы документацию конкретно по GetMessage() до конца читали? Что она в случае ошибки возвращает?
UPD. Что-то странное с примерами кода:
Это который из четырех?
Соединили:
Я нашел 2 причины, почему этот код вообще не скомпилируется. Это нейруха сгенерировала что ли, или просто влом было собирать перед публикацией?
Ну и:
Нет, это обычный ноль!
Тогда что она делает в сишном хабе? Нет, если автор покажет рабочий код Direct2D на чистых сях (без костылей на плюсах), это будет номер!
А это что? Целый учебник с картинками: Get Started with Win32 and C++ (даю линк на английскую версию, т.к. перевод ИИ в MSDN на русский — кровь из глаз).
И почему в затравочном абзаце речь про DX, а тут резко упали до D2D?
Почему WNDCLASSEX в "цитате" из MSDN и в статье обозвали "_WNDCLASS", когда у последнего (сиречь WNDCLASS) полей меньше? И ссылка дана на ansi версию, когда по ходу пьесы у нас вовсю юникод будет?
Про Case Engine тут слышал, две статьи их видел. Очень жаль, что не срослось с разработкой.
Я уверен — ребята клевые, но вот на Хабре статьи не взлетели, т.к. не о том писали — от разработчиков движков (даже начинающих) ждешь какой-нибудь жести и офигительных историй, а не туториалы по VS 2022 и избитые учебные статьи в духе, как писать на плюсах.
Под офигительными историями и жестью я понимаю: «Увидели на конференции такой-то доклад такой-то студии и решили запилить подобную фичу в наш движок. Сначала сделали так <описание во всех красках не очень гениального решения>, но не сложилось, потому что ... А затем мы пошли другим путем <описание во всех красках гениального решения> и всех победили. Вот вам бенчмарки и список литературы.».
Не обязательно же отвлекаться от разработки, тратить время и разжевывать для самых маленьких, как пилить свой движок от А до Я и все его возможности на 100500 статей ради плюсиков на Хабре. Достаточно редко, но метко раз в полгода-год вот такое выдавать.
В целом, желаю удачи.
Александр, мое почтение! Даже если не выстрелит или забьете и приступите к другому проекту — все равно это хороший опыт.
Хотелось бы побольше мяса и подробностей в статье, а также прочее: предыстория разработки фреймворка (курсовая/дипломная работа или другое) или с чего начинали, работали один или с командой, что читали, чем вдохновлялись, на какой он стадии (картинку выводит или нет), к чему хотите прийти и т.д.
Вас понял. Я же не для спора спросил, сам разберусь со временем.
Используя
holds_alternativeпроще и быстрее сразу проверить: содержит лиsome_variantзначение типа строки (без извлечения этого значения), чем сразу с помощьюstd::get_ifизвлекать из варианта нечто и для неудачных исходов обрабатыватьnullptr.Или у вас другое мнение?
Вам несколько раз предлагали вместо вот этого оффтопа в комментах оформить ваш опыт в виде большой и основательной статьи. Предлагали без задних мыслей и желания подколоть. Будет круто, если вы так и поступите, т.к. темы, которые вы затрагиваете, гораздо интереснее, чем очередные пассажи от ЛЛМ о создании Сапера/Змейки на питоне.
Нет, это звучит как «данная статья обзорная и в ней приводятся интересные истории о применении разных аллокаторов для разных задач, детали их реализации со всей выкладкой и обоснованием конкретных решений в ней будут лишними — для этого надо писать совершенно другие статьи с другой мотивацией и посылом, а иногда еще с нотариально заверенным разрешением от юридического департамента».
Когда вы пишите движок/игру, вам эта статья (да и вся их серия) может помочь, как вдохновение, источник идей или навигатор по нескольким специфичным аллокаторам, а за реализацией — добро пожаловать в гугл, искать нужный учебник/руководство/вайтпейпер/etc., параллельно воплощая все это в коде.
С большой долей вероятности нейронка не причислила бы Кернигана к «создателям» Си:
Jijiki, я вас умоляю, не поверхностно, а достаточно для такого рода статьи.
Например, по приведенной в статье ссылке на репозиторий с TLSF содержится ~1K loc на сях. Сферическая публикация с его описанием — это простыня не менее чем 30+ страниц A4, забитых формулами и ссылками на Кнута + пара десятков строчек сишного псевдокода. И все это добро не даст новичку полного понимания для самостоятельной реализации, а через месяц после прочтения — напрочь выветрится из головы.
Тут же вопрос, надо ли это автору и читателям, когда более углубленный материал уже несколько раз написан другими людьми? Чтобы пацаны с уважением головами покивали и некоторые в закладки добавили да забыли насовсем, ибо повод и целесообразность применения может совсем не появиться?
Не считая того, что в
void myfunc(const int arr[3][2])компилятор игнорирует3и превращает параметр функции вconst int arr[][2](т.е. в обычный указатель на константный массив из 2 интов), ни в чем https://godbolt.org/z/T6q1WdT3G :)Ваш комментарий и еще один ниже внезапно (!) никак не противоречат приведенной мной цитате. Зато она видимо обидела кого-то.
Зная ассемблер, так то и мне K&R простой показалась бы в свое время. И если что, новичок — это не про возраст. Не противоречит это и утверждению Константина Владимирова, что K&R должна быть первой (не важно в каком смысле «первой») книгой студента — сферический студент кафедры информатики в МФТИ сдецл отличается от сферического новичка в вакууме, ничего о программировании доселе не слышавшем.
Кто эти «все» и «кому» они советуют? В аннотации от издательства и в авторском предисловии к K&R чёрным по русскому написано:
Благодарю!
Ознакомился наспех с содержанием — да, это то что я хотел в том числе. Спасибо!
Просто комменты профессионалов читаю иногда (вот например), и некоторые слова гуглю, а там такие вещи интересные, которых в общих книгах по CS я не встречал и не догадывался об их существовании. Но системы в этом гуглении нет, хотелось бы не по крупицам знания получать, а последовательно что ли.
Ну и правильно (или около того) оптимизировать и бенчмаркать хочу тоже научиться. И те же алгоритмы, чтобы вообще о существовании LRU хотя бы догадываться.
Это да, но я не сомневаюсь, что unreal_undead2 и в остальном разбирается, поэтому и спросил в рамках оффтопа.
Разрешите тупой вопрос? А есть ли какой букварь/ресурс/цикл для виндузятников-любителей asm/C/C++ по теме оптимизации, чтобы вот слова типа prediction, latency, occupancy, cache miss, TLB, etc. не казались совсем уж магией. Ну еще чтобы про то, как грамотно профилировать, бенчмаркать и пр. было.
Или это только в университетах дают, или в разрозненных статьях/книгах?