Как распознать неадекватного водителя

По моим наблюдениям, водители Санкт-Петербурга делятся на опытных, неопытных и неадекватных. Сейчас я поделюсь своим скромным опытом в распознавании неадекватного водителя. Будем учиться определять такое существо по его машине и поведению на дороге.

Любимое авто и личный водитель

  • ЕЗДИТ НА ТЮНИНГОВАННОМ АВТОМОБИЛЕ. Существует особых вид тюнинга автомобиля — так называемый ара-тюнинг. Как бы и не тюнинг вовсе, а какая-то хрень. Как это выглядит каждый мог лицезреть по телевизору. Адекватность водителя машины с выхлопной трубой диаметром в 10 сантиметров и скамейкой на крыше в объяснении не нуждается
  • СЛУШАЕТ ГРОМКУЮ МУЗЫКУ. Такую, что стекла дребезжат. Особенно с открытыми окнами
  • РАССЕКАЕТ БЕЗ НОМЕРНЫХ ЗНАКОВ (даже транзитных). Тут два варианта: или человеку все пофигу и он спокойно свалит с места ДТП, или он только что купил машину
  • ГОВОРИТ ПО МОБИЛКЕ. Особо клинический случай представляет собой расслабленного идиота водителя с трубкой, зажатой между ухом и плечом, при это весь мир предстает перед ним наклоненным на 30-45 градусов
  • ПЕРЕСТРАИВАЕТСЯ ИЗ РЯДА В РЯД КАЖДЫЕ 100 МЕТРОВ. Это означает, что водитель или торопится на кладбище, или дурак. А может дурак куда-то торопится
  • НЕ ВКЛЮЧАЕТ ПОВОРОТНИКИ. Создается впечатление, что некоторым дорогим иномаркам поворотники ампутируют еще в автосалоне. В голове рисуется картина, как будущий владелец автомобиля умоляет менеджера салона не отрезать нужные на дороге поворотники, но тот остается глухим к слезам водителя
  • Адский водитель

  • НЕОПЫТНЫЙ ВОДИТЕЛЬ БЕЗ СПЕЦИАЛЬНОГО ЗНАКА. Этот персонаж особенно интересен и распознать его довольно сложно. Помните, как только вы вешаете знак «Неопытный водитель», ваши дебильные выходки за рулем, которые вызывают злобу и ненависть окружающих, автоматически превращаются в робкие попытки юного водителя справится с автомобилем, которые в свою очередь могут вызвать только умиление и улыбку. :) Удивительно, не правда ли?

P.S. Вышенаписанное является черновиком. Я буду дополнять эту заметку по мере поступления новых данных. :)

CMake + precompiled headers + MSVC. Окончательный вариант

Как неожиданно выяснилось, предыдущие варианты (раз, два, три) оказались неправильными. Публикую окончательный правильный вариант использование precompiled headers при компиляции nmake или в Visual Studio 2008:

CMakeLists.txt

macro( use_precompiled_header SRC_LIST_VAR HDR_FILE SRC_FILE )
 
    get_filename_component( PCH_HEADER ${HDR_FILE} NAME )
    get_filename_component( PCH_BINARY ${HDR_FILE} NAME_WE )
 
    set( PCH_BINARY "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${PCH_BINARY}.pch" )
 
    if (MSVC)
        set( SRC_LIST ${${SRC_LIST_VAR}} )
 
        set_source_files_properties( ${SRC_LIST} PROPERTIES
            COMPILE_FLAGS "/Yu${PCH_HEADER} /Fp${PCH_BINARY}"
            OBJECT_DEPENDS "${PCH_BINARY}" )
 
        set_source_files_properties( ${SRC_FILE} PROPERTIES
            COMPILE_FLAGS "/Yc${PCH_HEADER} /Fp${PCH_BINARY}"
            OBJECT_OUTPUTS "${PCH_BINARY}"
            OBJECT_DEPENDS "" )
    endif(MSVC)
endmacro( use_precompiled_header )

Особенное внимание обратите на использование:

file( GLOB_RECURSE CORE_SRC *.cpp )
use_precompiled_header( CORE_SRC precompiled.h precompiled.cpp )

CORE_SRC — это НАЗВАНИЕ переменной, а не сама переменная.

P.S. С версии CMake 3.16.0 доступна команда target_precompiled_headers(), которая позволяет без лишних усилий работать с precompiled headers.

Используем OgreBullet в своем проекте с помощью CMake

В нашей системе сборки все сторонние библиотеки компилируются вместе с проектом, поэтому стандартное FIND_PACKAGE нам не подходит. Значит, CMakeLists.txt из сборки OgreBullet тоже идет лесом. Поэтому приходится извращаться на свой лад.

CMakeLists.txt

# Название проекта
project( OgreBullet )
 
# Разделяем исходники для двух precompiled headers
file( GLOB_RECURSE OGRE_BULLET_COLLISIONS Collisions/*.cpp )
file( GLOB_RECURSE OGRE_BULLET_DYNAMICS Dynamics/*.cpp )
 
# Папки для поиска #include
include_directories(
    ${GLOBAL_INCLUDE_DIR}/Ogre
    ${GLOBAL_INCLUDE_DIR}/OgreBullet/Collisions
    ${GLOBAL_INCLUDE_DIR}/OgreBullet/Dynamics
    ${GLOBAL_LIB_DIR}/Bullet
    ${GLOBAL_LIB_DIR}/Bullet/BulletConvexDecomposition
    ${GLOBAL_LIB_DIR}/Bullet )
 
# Определяем макрос для использования precompiled headers
macro(use_precompiled_header SRC_LIST HDR_FILE SRC_FILE)
    # Выделяем имя заголовка без пути
    get_filename_component(PCH_HEADER ${HDR_FILE} NAME)
    # Выделям имя заголовка без расширения и пути
    get_filename_component(PCH_BINARY ${HDR_FILE} NAME_WE)
    # Полный путь к созданному pch
    set(PCH_BINARY "${CMAKE_CURRENT_BINARY_DIR}/${PCH_BINARY}.pch")
 
    if (MSVC)
        # Для precompiled.cpp создаем pch, указывая файл (OBJECT_OUTPUTS), который создается в результате комманды 
        set_source_files_properties( ${SRC_FILE} PROPERTIES
            COMPILE_FLAGS "/Yc${PCH_HEADER} /Fp${PCH_BINARY}"
            OBJECT_OUTPUTS "${PCH_BINARY}" )
        # Для каждого исходника в списке, задаем зависимость от precompiled.pch и указываем использовать его параметром "/Yu"
        foreach( SOURCE ${SRC_LIST} )
            set_source_files_properties( ${SOURCE} PROPERTIES 
                COMPILE_FLAGS "/Yu${PCH_HEADER}" 
                OBJECT_DEPENDS "${PCH_BINARY}" )
        endforeach( SOURCE ${SRC_LIST} )
 
    endif(MSVC)
 
endmacro(use_precompiled_header)
 
# Создаем precompiled header для Collisions
use_precompiled_header( OGRE_BULLET_COLLISIONS
    "${GLOBAL_INCLUDE_DIR}/OgreBullet/Collisions/OgreBulletCollisions.h" Collisions/OgreBulletCollisionsPrecompiled.cpp )
 
# Создаем precompiled header для Dynamics
use_precompiled_header( OGRE_BULLET_DYNAMICS
    "${GLOBAL_INCLUDE_DIR}/OgreBullet/Dynamics/OgreBulletDynamics.h" Dynamics/OgreBulletDynamicsPrecompiled.cpp )
 
# Объединим два списка файлов для удобства
set( OGRE_BULLET_SRC
    "${OGRE_BULLET_COLLISIONS}"
    "${OGRE_BULLET_DYNAMICS}" )
 
# Добавляем define для использования precompiled headers библиотекой OgreBullet
add_definitions( -D_PRECOMP )
# Profit!
add_library( ogre_bullet STATIC ${OGRE_BULLET_SRC} )

UPDATE: Окончательный вариант precompiled headers смотрим здесь.

Советы неопытному водителю

Написать эту заметку меня побудило поведение друга, который купил себе машину, обладая нулевым стажем и гипертрофированным самомнением. Совершенно нормальным у него считается погудеть заснувшему спереди водителю, а когда тот начнет двигаться — заглохнуть самому и, с красным от смущения лицом, попытаться завести свое ведро.

Немного о себе: права получил в 2002 году, с тех пор периодически ездил на отцовской пятёрке BMW. Спустя некоторое время, я купил себе Nissan Note и с тех пор уже три с половиной года езжу на ней. В основном с работы, на работу, на дачу и просто так развлечения ради. Иногда приходилось выезжать в другие города. Особенно запомнилось новогоднее посещение Пскова, куда я ехал с температурой в 39 градусов и опытом вождения пару месяцев, затем посещение Ярославля после долгой затяжной депрессии.

Для начала, хочу рассказать о типах неопытных водителей. Их на мой взгляд четыре.

  • опытный пассажир: продолжительное время катается рядом с водителем на пассажирском сиденье, знает город и (как ему кажется) является опытным водителем в теории, весьма самоуверенный тип за рулём
  • водитель без прав: до получения прав очень часто ездил за рулем автомобиля (по даче, нелегально по городу, по деревне и так далее)
  • чайник: ни разу до получения прав не ездил за рулем автомобиля, очень редко бывал пассажиром в такси, в основном предпочитает общественный транспорт
  • мажор: совмещает в себе «опытного пассажира» и «водителя без прав», ездит, как правило, на дорогой иномарке с блатными номерами, не глохнет на перекрестках только из-за полностью компьютеризированной машины, не так часто врезается за счет надежности и безопасности авто, скорее всего имеет вторую машину попроще, чтобы ездить на «тайные встречи» (для тех, кто в теме)

Куда ехать? Я водитель

Итак, приступим к советам.

  • на первых порах повесьте знак «Начинающий водитель». Спрячьте куда-нибудь свое чувство собственной важности — на дороге это верный путь к аварии и смело вешайте этот знак. Не обязательно обклеивать всю машину, как делают некоторые. Достаточно одного знака на заднем стекле
  • НИКОГДА не выходите из себя за рулем. Терпение и еще раз терпение. Внутренне вы должны быть АБСОЛЮТНО спокойны. Ругаться разрешено и даже приветствуется. Гудеть и моргать фарами в бешенстве, размахивать руками или вообще выбегать из машины с перекошенным от злости лицом категорически ЗАПРЕЩЕНО
  • соблюдайте БОКОВУЮ дистанцию. Если вы проезжаете мимо припаркованной машины, будьте готовы к тому, что в ней в любой момент может открыться дверь слева или справа, по закону подлости в сторону вашего автомобиля
  • ЗАБУДЬТЕ о приметах на дороге. Не будьте идиотом, ВКЛЮЧИТЕ мозги
  • если вас подрезали или назревает авария, в первую очередь необходимо предотвратить аварию с помощью педалей и руля, а уж затем оскорбленно жать в клаксон. Пока другой будет гудеть, исходя соплями от бешенства, у вас есть шанс предотвратить аварию
  • соблюдайте достаточно большую дистанцию с машиной, которой управляет неадекватный водитель
  • включайте указатели поворотов как минимум за 100 метров до поворота и за три секунды до перестроения
  • почаще крутите головой вправо и влево, не доверяйте зеркалам бокового вида, помните о мёртвых зонах
  • НИКОГДА не мстите водителю машины, которая вас подрезала или обидела каким-то иным образом. Это очень опасно и многократно увеличивает вероятность аварии
  • ВЫКЛЮЧИТЕ МУЗЫКУ в машине. Пока у вас недостаточно опыта, необходимо слушать как работает двигатель. Это поможет вам не заглохнуть, когда вы стартуете
  • ПОЧАЩЕ выезжайте с пассажирами. Оптимальный вариант: с друзьями куда-нибудь в черте города. Что-нибудь отвезти, кого-нибудь забрать и все в таком духе.
  • НЕ ОТВЛЕКАЙТЕСЬ за рулем. Не надо курить за рулем или разговаривать по телефону. Если ведете беседу с пассажиром, постарайтесь не задумываться над ответом. Размышления за рулем на сложную тему отвлекает ваше внимание от дороги.

И напоследок запомните раз и навсегда: водитель ГЛАВНЫЙ в машине, он как капитан корабля, который имеет право выкинуть пассажира за борт, если тот угрожает безопасности корабля. Главный в машине ВСЕГДА водитель, даже если хозяин машины едет рядом.

Будешь мне указывать, вообще пешком пойдёшь!

  • Если вам не нравится музыка, которую включил пассажир — выключите ее. Протестующие могут идти пешком
  • Если в машине громко разговаривают и вас это категорически не устраивает, заткните ненужные разговоры
  • Не стесняйтесь остановиться и высадить пассажира, который своим поведением угрожает безопасности вождения, или откажитесь ехать дальше, если высаживаемый пассажир является хозяином машины
  • В первую очередь вас должна волновать безопасность пассажиров, а потом уже груза. Не бойтесь поломать рассаду помидоров на заднем сиденье неосторожным рывком руля, если это поможет избежать аварии. Или сломать свадебный торт за тридцать килорублей в попытке отклонится от встречной машины

Возможно, советы из этой заметки некоторым покажутся смешными и глупыми. Но соблюдая эти нехитрые правила, я был в легкой аварии в 2015 году и не собираюсь в них участвовать в дальнейшем, потому что на моей машине следующая авария точно будет последней.

Также рекомендую прочитать про особенности аккуратного вождения.

Блог Евгения Жирнова