![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Thunderbolt |
|
|||
![]() DevRel ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 7.11.2007 Где: Тула Репутация: 6 Всего: 16 |
На нашем сайте мы регулярно публикуем статьи, посвященные программированию, написанию качественного кода, созданию параллельных и 64-битных программ. И еще мы рассказываем интересные истории об ошибках, найденных анализатором PVS-Studio.
В результате на нашем сайте накопилось много материала. Человек, который случайно попал на наш сайт, может так и не узнать, какие интересные материалы там есть. Также, например в Twitter, к нам присоединилось много людей. Эти люди видят наши новые статьи, но не знают о старых замечательных статьях. Я решил, выбрать некоторые материалы, которые могут больше всего понравиться программистам. Прошу тем, кто уже видел эти статьи не говорить про это и не ставить отрицательные оценки. Прошу понять, что аудитория очень быстро меняется. Через год, в какой либо группе, на одного знакомого с каким-то материалом, приходится 5 с ним не знакомым. Вот отобранные ресурсы и краткое описание. О разработке 64-битных приложений Коллекция примеров 64-битных ошибок в реальных программах Статья представляет собой наиболее полную коллекцию примеров 64-битных ошибок на языках Си и Си++. Статья ориентирована на разработчиков Windows-приложений, использующих Visual C++, но будет полезна и более широкой аудитории. 64-битный конь, который умеет считать Феномен "Умного Ганса", коня мистера фон Остена, был описан в 1911 году. Умный Ганс был знаменит тем, что умел читать и решал математические задачки, выстукивая ответ передним копытом. Конечно, было много скептиков. Поэтому способности Ганса проверялись комиссией экспертов, которая установила, что конь демонстрирует их без помощи мистера фон Остена. Но как мог существовать такой — человеческий! — уровень интеллекта у простой лошади? Психолог О. Пфангст с чрезвычайной тщательностью выполнил серию экспериментов, в результате которых обнаружил, что Ганс получал едва уловимые неумышленные подсказки от тех, кто задавал ему вопросы. Например, после того как Ганса о чем-то спрашивали, люди устремляли свой взгляд на его переднее копыто, с помощью которого конь "отвечал". Но как только Ганс ударял копытом нужное число раз, спрашивающие совсем чуть-чуть поднимали свои глаза или голову в ожидании завершения его ответа. И конь, который был натренирован замечать и использовать эти почти неуловимые для наблюдателей движения, воспринимал их как сигналы к прекращению своих действий. Со стороны это всегда выглядело как правильный ответ на вопрос. Вот такой был замечательный конь, который считал и решал задачки, хотя и не умел этого делать. Цифровыми конями начала 21-ого века стали 64-битные программы, многие из которых тоже не умеют считать, хотя успешно делают вид. Рассмотрим этот феномен более подробно. Уроки разработки 64-битных приложений на языке Си/Си++ Курс посвящен созданию 64-битных приложений на языке Си/Си++ и ориентирован на разработчиков Windows-приложений, использующих среду Visual Studio 2005/2008/2010. Разработчики для других 64-битных операционных систем также узнают много интересного. В курсе будут рассмотрены все этапы, позволяющие создать новое надежное 64-битное приложение или выполнить миграцию существующего 32-битного кода на 64-битную систему. Курс состоит из 28 уроков, посвященных знакомству с 64-битными системами, вопросам сборки 64-битных приложений, методам поиска специфичных для 64-битного кода ошибок и оптимизации кода. Рассматриваются также вопросы, как оценка стоимости перехода на 64-битные системы и рациональность этого перехода. Не зная брода, не лезь в воду Часть первая Захотелось написать несколько небольших заметок о том, как программисты на Си/Си++ играют с огнём, не подозревая об этом. Первая заметка будет про попытки явно вызвать конструктор. Часть вторая В этот раз я хочу поговорить о функции printf. Все наслышаны об уязвимостях в программах, и что функции наподобие printf объявлены вне закона. Но одно дело знать, что лучше не использовать эти функции. А совсем другое - понять почему. В этой статье я опишу две классических уязвимости программ, связанных с printf. Хакером после этого вы не станете, но, возможно, по-новому взгляните на свой код. Вдруг, вы реализуете аналогичные уязвимые функции, даже не подозревая об этом. СТОП. Подожди читатель, не проходи мимо. Я знаю, что ты увидел слово printf. И уверен, что автор статьи сейчас расскажет банальную историю о том, что функция не контролирует типы передаваемых аргументов. Нет! Статья будет не про это, а именно про уязвимости. Заходи почитать. Часть третья Продолжу рассказы о том, как программисты ходят по краю, даже не подозревая об этом. Поговорим об операциях сдвига <<, >>. Принципы работы операторов сдвига очевидны и многие программисты даже не знают, что их использование согласно стандарту Си/Си++ может приводить к неопределенному или к неуточненному поведению (undefined behaviour/unspecified behavior). Ошибки Во всём виноват компилятор Многие программисты очень любят обвинять компилятор в различных ошибках. Поговорим немного об этом. 100 багов в Open Source проектах на языке Си/Си++ Эта статья демонстрирует возможности методологии статического анализа кода. Читателю предлагается примеры ста ошибок, найденных в Open-Source проектах, написанных на языке Си/Си++. Последствия использования технологии Copy-Paste при программировании на Си++ и как с этим быть У меня накопилось достаточно примеров, в которых хорошо видно, когда ошибка появилась на свет из-за копирования участка кода и его модификации. Конечно, это не новая идея, что использовать Copy-Paste при программировании плохо. Однако попробуем не отделываться рекомендацией "не копируйте код" и подойдем к этой теме более внимательно. 32 подводных камня OpenMP при программировании на Си++ С распространением многоядерных систем задача параллельного программирования становится все более и более актуальной. Данная область, однако, является новой даже для большинства опытных программистов. Существующие компиляторы и анализаторы кода позволяют находить некоторые ошибки, возникающие при разработке параллельного кода. Многие ошибки никак не диагностируются. В данной статье приводится описание ряда ошибок, приводящих к некорректному поведению параллельных программ, созданных на основе технологии OpenMP. О рекламе для программистов Изучение способов привлечения на сайт программного продукта Эта статья будет интересна тем, кто продвигает свои собственные программные продукты в интернете. Статья исключительно практическая. Она представляет собой отчёт о некоторых действиях, которые мы осуществляли в последнее время для продвижения продукта PVS-Studio. Я расскажу, что работает, что не работает и поделюсь сопутствующими мыслями. Си/Си++ Есть ли практический смысл использовать для итераторов префиксный оператор инкремента ++it, вместо постфиксного it++ Я все-таки решил разобраться, есть ли смысл при работе с итераторами писать ++iterator, а не iterator++. Мой интерес к этому вопросу возник не из любви к искусству, а из практических соображений. Мы давно хотим развивать PVS-Studio не только в направлении поиска ошибок, но и в сторону выдачи подсказок по оптимизации кода. Выдача сообщения, что лучше писать ++iterator вполне уместна в плане оптимизации. Коллекция интересных ресурсов по тематике программирования на языке Си/Си++ P. S. Также, приглашаю присоединиться в одной из следующих сетей:
--------------------
Карпов Андрей, DevRel в PVS-Studio. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Спасибо. Пожалуй, действительно "избранное".
Если можно: небольшой комментарий к
А почему там нет Хабры ? ИМХО более полезный ресурс, чем CodeProject, FaceBook и Hacker News вместе взятые. кстати, советую. Немного рекламы, зато много полезных ссылок -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Thunderbolt |
|
|||
![]() DevRel ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 7.11.2007 Где: Тула Репутация: 6 Всего: 16 |
Хабр хорош однозначно. Но есть одно большое "НО". Его аудитория - Россия, Украина. А это единичные продажи. Так что мы никогда не рассматривали Хабр как настоящую рекламную площадку. Так, поболтать и повоевать интересно. Но не более. Впрочем, это всё в прошлом. ![]() --------------------
Карпов Андрей, DevRel в PVS-Studio. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
Thunderbolt |
|
|||
![]() DevRel ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 7.11.2007 Где: Тула Репутация: 6 Всего: 16 |
Так ведь вроде я и так ссылочку вставил. Ладно, вот она - http://www.viva64.com/ru/b/0163/ А вот где она была на Хабре - http://habrahabr.ru/post/151786/ P.S. Забавное обсуждение. Везде всем чудится заговор. ![]() --------------------
Карпов Андрей, DevRel в PVS-Studio. |
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
я именно эту и просил.
почитаем-ка.. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |