пятница, 16 апреля 2010 г.

Как перезагрузить компьютер по сети

Есть простое и удобное средство для удаленной перезагрузки ПК, когда физический доступ к нему получить невозможно: shutdown

Пример вызова:

shutdown /r /m \\comp_name

После этой команды произойдет перезагрузка компьютера с имененм comp_name, если, конечно, у вас есть права на выполнение этой операции

Ключи могут быть разные, самые полезные такие:
/r - перезагрузка
/s - выключение
/f - принудительное завершение (требуется, когда ПК заблокирован)

пятница, 2 апреля 2010 г.

Синий экран смерти

Оригинал тут: http://forum2.biscom.zp.ua/showthread.php?p=836432
Еще много интересного: http://rfteam.110mb.com/win/8.php

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


Терминология и все остальное.
Синий экран смерти (англ. Blue Screen of Death, BSoD) – так его прозвали в народе – сообщает пользователю о во непоправимой системной ошибке во всех версиях Windows. Чаще всего следствие появления синего экрана смерти – это попытка выполнения драйвером недопустимой операции (подробнее о драйверах тут). Что значит непоправимая ошибка? Это значит, что операционная система не может никак решить эту проблему и ей остается только перезагрузка компьютера с потерей всех несохраненных изменений. Последнее, что в момент ошибки она(система) успевает сделать – это заблокировать всё возможное, создать дамп (о дампах ниже по тексту) и сообщить Вам код ошибки, чтобы Вы самостоятельно устранили её причину. Правда далеко не всегда самостоятельно удается устранить проблему, а посему система создаёт запись в системном журнале с параметрами возникшей ошибки и путем к этому самому, так называемому, дамп-файлу, который может быть использован разработчиками программ и драйверов для более детального определения причин ошибки и их устранения.

По сути BSoD является этаким предохранителем, ведь, если бы его не было, то вполне вероятно начали бы ломаться(поморщился от не сис.админского термина) всякие внутренние компоненты Вашего компьютера.


Как выглядит и что пишет.
Всё до Technical Information описывает почему это могло случиться, что это вообще за экран и какие действия надо произвести, чтобы его устранить. Написано там всегда одно и то же(поставьте\уберите новые драйвера, посмотрите не конфликтует ли они, отключите новые штуки, уберите разгон и тп). А вот Technical Information содержит следующее:

- код ошибки и его символьное имя (например 0×0000001E, KMODE_EXCEPTION_NOT_HANDLED)

- 4 параметра, поясняющие ошибку, предназначенные для отладочного ПО (значение параметров зависит от кода ошибки)

- адрес места ошибки (если его возможно указать)

- название драйвера, в котором произошла ошибка (если его возможно указать)

С помощью этой самой информации можно бороться BSoD, а точнее со сбоями системы, драйверов и программ.
Кстати, что интересно есть возможность ручного вызова синего экрана смерти по двойному нажатию клавиши SCROLL LOCK при удерживании клавиши CTRL (при условии, что это функция включена в настройках системы). “Зачем надо принудительно вызывать эту штуку?” – спросите Вы. А того, чтобы получить дамп памяти компьютера в заданный момент, а именно при разрешении текущих проблем работы операционной системы.


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

Пуск - Настройка - Панель управления – Система - Дополнительно - Загрузка и восстановление – Параметры - Отказ системы.
Тут снимите галочку “Выполнить автоматическую перезагрузку” и нажмите OK.


Причины возникновения BSoD.
Ниже перечислены наиболее частые причины появления злого синего экрана:

- конфликт драйверов
- некорректные драйвера
- несовместимые с данной ОС драйвера
- сбои драйверов
- вирусы (редко)
- несовместимые друг с другом устройства (он же конфликт устройств)
- сбои устройств (зачастую из строя выходит оперативная память или жесткие диски)
- конфликт приложений (как правило BSoD вызывают эмуляторы или антивирусные приложения установленные вместе)
- перегрев комплектующих (и как следствие сбои)

Комментарии: зачастую BSoD свидетельствует о серьезных проблемах с комплектующими или драйверами. Откладывать выявление причин возникновения BSoD на потом не есть лучший выбор – рискуете оказаться перед не включающимся компьютером у которого вышла из строя какая-нибудь железяка.


Наиболее распространенные BSoD.

Небольшое описание наиболее распространенных типов синих экранов смерти:

KMODE_EXCEPTION_NOT_HANDLED — процесс режима ядра попытался выполнить недопустимую или неизвестную процессорную инструкцию. Может быть связан с несовместимостью «железа», неисправностью оборудования, ошибками в драйвере или системной службе.

NTFS_FILE_SYSTEM — сбой при выполнении кода драйвера файловой системы ntfs.sys. Причиной может являться нарушение целостности данных на диске (сбойный кластер) или в памяти, повреждение драйверов IDE или SCSI.

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

IRQL_NOT_LESS_OR_EQUAL — процесс режима ядра попытался обратиться к области памяти, используя недопустимо высокий для него уровень IRQL (Interrupt Request Level). Может быть вызван ошибками в драйвере, системной службе, BIOS или несовместимым драйвером, службой, программным обеспечением (например — антивирусом).

PAGE_FAULT_IN_NONPAGED_AREA — запрашиваемые данные отсутствуют в памяти (например, система ищет нужные данные в файле подкачки, но не находит их). Обычно связан со сбоем оборудования (дефектная память), нарушением файловой системы, ошибкой системной службы или антивируса.

KERNEL_STACK_INPAGE_ERROR — не удаётся прочитать из файла подкачки в физическую память запрашиваемую страницу памяти. Причины — дефектный сектор файла виртуальной памяти, сбой контроллера жёстких дисков, недостаточно места на диске, неправильное подключение жёсткого диска, конфликт прерываний, дефект ОЗУ, вирус.

MISMATCHED_HAL — уровень аппаратных абстракций (HAL) и ядро системы не соответствуют типу компьютера. Чаще всего связан с ситуацией, когда в изначально однопроцессорную систему устанавливают второй процессор, забывая вручную обновить HAL и ntoskrnl. Может также быть вызван несовпадением версий hal.dll и ntoskrnl.exe.

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

INACCESSIBLE_BOOT_DEVICE — в процессе загрузки ОС не смогла получить доступ к системному разделу. Причин этого распространённого сбоя может быть очень много: дефектный загрузочный диск или дисковый контроллер; несовместимость оборудования; загрузочный вирус; ошибка в файловой системе, например — в таблице разделов Partition Table; повреждение или отсутствие необходимого при загрузке файла, например — NTLDR; отсутствие драйвера контроллера жёстких дисков или несоответствие текущего драйвера установленному оборудованию; включённый в BIOS режим DMA; включённый в CMOS Setup режим смены букв дисководов DRIVE SWAPPING; конфликт распределения ресурсов между дисковым контроллером и другим устройством; повреждение данных о загружаемых драйверах в системном реестре; установка системы в раздел за пределами первых 1024 цилиндров жёсткого диска; ошибка в файле boot.ini.

UNEXPECTED_KERNEL_MODE_TRAP — возникновение неподдерживаемой ядром ловушки (trap) или фатальная ошибка (типа деления на ноль). Неисправность оборудования или сбой программного обеспечения.

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

STATUS_IMAGE_CHECKSUM_MISMATCH — повреждён или утерян файл драйвера или системной библиотеки. Может быть вызван сбоем файловой системы или случайным удалением системного файла.

Это так, сказать, горячая дюжина.


Дампы.

Как я уже сказал в случае возникновения синего экрана смерти система создает некий дамп-файл. Дамп хранит в себе информацию о том что же произошло и кто\что вызвало сбой. Чуть позже будет статья о том как открывать и анализировать дампы, а пока я просто расскажу о том где они обитают.

Для начала надо убедиться, что создание дампов не отключено в системе. Для этого делаем следующее:

Пуск - Настройка - Панель управления – Система - Дополнительно - Загрузка и восстановление – Параметры - Отказ системы.

Там проверяем выставлены ли настройки в графе “Запись отладочной информации” следующим образом:



Если нет, то, само собой, выставляем.
Дампы хранятся по пути, который указан в этих самых настройках. Путь вообщем-то можно изменить как Вам удобно.
%SystemRoot% – это C:\Windows\, где C:\ – диск куда установлена операционная система.

Все мини-дампы имеют формат .dmp и обитают строго в папке, которая была указана в настройках на момент возникновения синего экрана смерти.


0x00000001: APC_INDEX_MISMATCH
Это внутренняя ошибка ядра (kernel). Ошибка может возникнуть из-за несовпадения KeEnterCricticalRegion и KeLeaveCriticalRegion в файловой системе.

0x00000002: DEVICE_QUEUE_NOT_BUSY
0x00000003: INVALID_AFFINITY_SET
0x00000004: INVALID_DATA_ACCESS_TRAP

0x00000005: INVALID_PROCESS_ATTACH_ATTEMPT
Стоп на Win XP SP2 или Server 2003ы


0x00000006: INVALID_PROCESS_DETACH_ATTEMPT
0x00000007: INVALID_SOFTWARE_INTERRUPT
0x00000008: IRQL_NOT_DISPATCH_LEVEL
0x00000009: IRQL_NOT_GREATER_OR_EQUAL

0x0000000A: IRQL_NOT_LESS_OR_EQUAL
Была сделана попытка затронуть виртуальную память на внутреннем процессе IRQ уровня, который слишком высок. Если kernel debugger доступен, вы можете отследить, где именно система запнулась.
Наиболее частая причина возникновения - драйвер устройства использует неверный адрес.
Параметры:
1 - адрес, по которому выполнено ошибочное обращение
2 - IRQL, который использовалcя для обращения к памяти
3 - тип доступа к памяти: 0 = операция чтения, 1 = операция записи
4 - адрес инструкции, которая затребовала доступ к памяти по адресу
Прим: Имейте ввиду, что эта ошибка возникает в 99% из-за "кривых" драйверов. Некоторые из них в Windows XP вы можете обнаружить используя утилиту verifier.exe: Start (Пуск) -> Run (Выполнить) -> verifier.exe
Больше информации ->


0x0000000B: NO_EXCEPTION_HANDLING_SUPPORT
0x0000000C: MAXIMUM_WAIT_OBJECTS_EXCEEDED

0x0000000D: MUTEX_LEVEL_NUMBER_VIOLATION
Попытайтесь установить взаимоисключения используя NTOSEXEXLEVELS.H файл заголовков.
Вы должны найти точки взаимодействия и определить, какие из них пытаются получить доступ к этому уровню в неверной последовательности.
Параметры:
1 - настоящая нить уровня взаимодействия
2 - уровень взаимодействия пытающийся получить доступ


0x0000000E: NO_USER_MODE_CONTEXT
0x0000000F: SPIN_LOCK_ALREADY_OWNED
0x00000010: 0SPIN_LOCK_NOT_OWNED
0x00000011: THREAD_NOT_MUTEX_OWNER

0x00000012: TRAP_CAUSE_UNKNOWN
В обще, эта ошибка означает, что причина её не известна. В этом случае, для установления причины попытайтесь заметить при каких обстаятельствах она проихошла: что вы в это время делали или пытались сделать, какие изменения в системе произошли и т.д.


0x00000013: EMPTY_THREAD_REAPER_LIST
0x00000014: CREATE_DELETE_LOCK_NOT_LOCKED
0x00000015: LAST_CHANCE_CALLED_FROM_KMODE
0x00000016: CID_HANDLE_CREATION
0x00000017: CID_HANDLE_DELETION
0x00000018: REFERENCE_BY_POINTER
0x00000019: BAD_POOL_HEADER
0x0000001A: MEMORY_MANAGEMENT
0x0000001B: PFN_SHARE_COUNT
0x0000001C: PFN_REFERENCE_COUNT
0x0000001D: NO_SPIN_LOCK_AVAILABLE

0x0000001E: KMODE_EXCEPTION_NOT_HANDLED
Это очень часто встречающаяся ошибка. Обычно исключённый адрес указывает на драйвер или функцию, которая вызвала стоп-экран. Всегда обращайте внимание не только на указанный драйвер, но и на сам адрес или имидж, содержащий эту ошибку. Обычно это код исключения 0x80000003. Эта ошибка означает, что точка прерывания или суждение было достигнуто при обращении к памяти, но система загрузилась с /NODEBUG ключа. Это ошибка не должна появляться слишком часто. Если ошибка появляется постоянно, убедитесь, что отладчик (debugger) подключён и система загружается с /DEBUG switch.
На неИнтеловских системах, если адресс исключения 0XBFC0304, ошибка появляется вследствие кеширования процессора. Если ошибка будет появляться снова, свяжитесь с производителями.
Как правило, требуется анализ второго параметра этого сообщения, который указывает на адрес драйвера/функции, которая была причиной проблемы.
Параметры:
1 - код исключительной ситуации
2 - адрес, при обработке которого произошел сбой
3 - Parameter 0 of the exception
4 - Parameter 1 of the exception
Больше информации ->

0x0000001F: SHARED_RESOURCE_CONV_ERROR

0x00000020: KERNEL_APC_PENDING_DURING_EXIT
Название ошибки указывает на повреждённый/отключённый APC счётчик. Если счётчик показывает значение не равное нулю, то он и есть источник проблемы. Отрицательное значение указывает на то, что файловая система вызывала FsRtlEnterFileSystem большее количество раз чем FsRtlExitFileSystem. Положительное значение указывает наоборот FsRtlExitFileSystem было вызвано большее количество раз чем FsRtlEnterFileSystem. Если у вас такая ситуация, проверьте все файловые системы установленные на машине. Сторонние перенаправители более всего подозреваются в сбое, так как они не были так тщательно протестированы, как NTFS, FAT, HPFS и RDR.
Текущий IRQL должен быть равен 0. Если нет, то определённый порядок аннулирования драйверов может быть причиной возникновения ошибки, возвращаясь на высоком уровне IRQ. Всегда пытайтесь заметить, что вы делали или какие приложения закрывали, какие драйвера были установлены на момент возникновения синего экрана. Этот симптом указывает на серьёзную проблему в драйверах третьей стороны.
Parameters:
1 - адрес APC, по которому висел (был в ожидании) на момент выхода.
2 - нить APC disable count
3 - текущий IRQ уровень


0x00000021: QUOTA_UNDERFLOW
0x00000022: FILE_SYSTEM

0x00000023: FAT_FILE_SYSTEM
Произошла ошибка во время записи или чтения с системного диска на фаловой системе FAT16 или FAT32. Возможна проблема в самом диске или с Interrupt Request Packet (IRP) пакетом.
Так же причиной может быть большая фрагментация диска, проблема в антивирусном програмном обеспечение или в ПО слежения за дисками (drive monitoring).
Больше информации ->


0x00000024: NTFS_FILE_SYSTEM
Проблема с драйвером записи и чтения файловой системы NTFS ( NTFS.SYS ). Возможна проблема в самом диске или с Interrupt Request Packet (IRP) пакетом.
Так же причиной может быть большая фрагментация диска, проблема в антивирусном програмном обеспечение или в ПО слежения за дисками (drive monitoring).
Больше информации ->


0x00000025: NPFS_FILE_SYSTEM
0x00000026: CDFS_FILE_SYSTEM
0x00000027: RDR_FILE_SYSTEM
0x00000028: CORRUPT_ACCESS_TOKEN
0x00000029: SECURITY_SYSTEM

0x0000002A: INCONSISTENT_IRP
IRP неожиданно был обнаружен на несоответствующем состоянии; это когда поле или несколько полей были несовместимы с сохранившемся состоянием IRP. Например, IRP, который был закончен указывался, как всё ещё ждущий выполнения команд драйвера какого-либо устройства.
Параметры:
1 - адрес на котором IRP был найден в несоответствующем состоянии

0x0000002B: PANIC_STACK_SWITCH
Эта ошибка указывает а то, что область стека ядра переполнена. Это может возникнуть, когда драйвер ядра использует слишком много места в области стека. Это так же может случиться, если серьёзная ошибка в самом ядре.


0x0000002C: PORT_DRIVER_INTERNAL
0x0000002D: SCSI_DISK_DRIVER_INTERNAL

0x0000002E DATA_BUS_ERROR
Этот стоп чаще всего вызывается ошибкой в памяти системы. Так же это может случиться, когда драйвер обращается к 0x8XXXXXXX адресу памяти, который не существует.
Параметры:
1 - адрес виртуальной памяти, который стал причиной ошибки
2 - физический адрес причины ошибки
3 - регистр статуса процессора (PSR)
4 - регистр инструкции ошибки (FIR)


0x0000002F: INSTRUCTION_BUS_ERROR
0x00000030: SET_OF_INVALID_CONTEXT

0x00000031: PHASE0_INITIALIZATION_FAILED
Инициализация системы не прошла на ранней стадии. Нужно более детально установить ошибку, так как этот код вам не говорит практический ни о чём.


0x00000032: PHASE1_INITIALIZATION_FAILED
Параметры:
1 - код статуса системы, который описывает почему система решила, что инициализация не прошла
2 - указывает место внутри INIT.C, где ошибка инициализации фазы 1 произошла


0x00000033: UNEXPECTED_INITIALIZATION_CALL
0x00000034: CACHE_MANAGER

0x00000035: NO_MORE_IRP_STACK_LOCATIONS
Драйвер высшего уровня пытался вызвать драйвер низшего уровня через IoCallDriver() интерфейс, но в запасе не было свободного места в области стека, поэтому драйвер низшего уровня не сможет достичь нужных параметров, так как для него вообще нет никаких параметров. Это гибельная ситуация, так как драйвер высшего уровня считает, что заполнил параметры для драйвера низшего уровня (что-то он должен был сделать, чтобы вызвать драйвер низшего уровня). Тем не менее, так как для последнего драйвера нет свободного места в области стека, составитель аннулировал конец пакета. Это означает, что, скорее всего, какая-то другая память была повреждена.
Параметры:
1 - адрес IRP


0x00000036: DEVICE_REFERENCE_COUNT_NOT_ZERO
Драйвер устройства пытался удалить из системы одно из объектов его устройства, но счётчик обращений этого объекта не был равен 0, означающий что для этого объекта всё ещё были невыполненные задачи (счётчик указывает номер причин, почему данный объект на может быть удалён). Это ошибка вызова драйвера.
Параметры:
1 - адрес объекта


0x00000037: FLOPPY_INTERNAL_ERROR
0x00000038: SERIAL_DRIVER_INTERNAL
0x00000039: SYSTEM_EXIT_OWNED_MUTEX
0x0000003A: SYSTEM_UNWIND_PREVIOUS_USER
0x0000003B: SYSTEM_SERVICE_EXCEPTION
0x0000003C: INTERRUPT_UNWIND_ATTEMPTED
0x0000003D: INTERRUPT_EXCEPTION_NOT_HANDLED

0x0000003E: MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED
Мультипроцессорная система не симметрична по отношению друг к другу. Чтобы быть симметричными, процессоры должны быть одного типа и уровня. Например, попытка использовать процессор уровня Pentium и 80486 вызовет ошибку. Кроме того, на х86 системах, возможность вычислений дробей должны быть на обоих процессорах или ни на одном.


0x0000003F: NO_MORE_SYSTEM_PTES
Не хватает РТЕ (page file entries). Обычно причиной является драйвер, который плохо вычищает файл подкачки (swap). Если отладчик ядра (kernel debugger) доступен проследите, где система запнулась и введите следующую команду:
!sysptes 3


0x00000040: TARGET_MDL_TOO_SMALL
Драйвер вызвал функцию IoBuildPartialMdl() и послал ей MDL, чтобы выявить часть источника MDL, но цель MDL не достаточно большая, чтобы отобразить пределы требуемых адресов. Это ошибка драйвера. Источник и цель MDL, так же как длинна линии адресов определения являются аргументами IoBuildPartialMdl() функции:
IoBuildPartialMdl( IN PMDL SourceMdl,
IN OUT PMDL TargetMdl,
IN PVOID VirtualAddress,
IN ULONG Length )


0x00000041: MUST_SUCCEED_POOL_EMPTY
Если отладчик ядра (kernel debugger) доступен, команда Виртуальной Машины (VM) показывает различные величины:
Параметры:
1 - величина запроса, который не может быть удовлетворён
2 - номер страниц, которые были использованы из nonpaged pool.
3 - номер запрашиваемых страниц из nonpaged pool.
4 - номер доступных страниц


0x00000042: ATDISK_DRIVER_INTERNAL
0x00000043: NO_SUCH_PARTITION

0x00000044: MULTIPLE_IRP_COMPLETE_REQUESTS
Драйвер запросил завершение IRP [IoCompleteRequest()], но пакет был уже завершён. Эту ошибку сложно выявить. Самый простой случай - драйвер пытается завершить одну и ту же операцию дважды, но этот случай бывает очень редко. Так де бывает, что два различных драйвера пытаются завладеть пакетом и завершить его. Первый как правило срабатывает, а второй нет. Отследить, какой именно драйвер вызвал сбой, трудно, так как следы первого драйвера были переписаны вторым. Тем не менее, конфликт может быть выявлен, рассматривая DeviceObject поля, в каждом местоположении стэка.
Параметры:
1 - адрес IRP


0x00000045: INSUFFICIENT_SYSTEM_MAP_REGS
0x00000046: DEREF_UNKNOWN_LOGON_SESSION
0x00000047: REF_UNKNOWN_LOGON_SESSION

0x00000048: CANCEL_STATE_IN_COMPLETED_IRP
Это ошибка указывает, что I/O Request Packet (IRP), который должен быть завершён, имеет определенный порядок отмены, а это означает, что пакет в таком положении, что может быть отменен никаким другим способом. Хотя сам пакет уже не относится драйверу, устанавливающему порядок завершения, так как он уже в стадии завершения.

0x00000049: PAGE_FAULT_WITH_INTERRUPTS_OFF
Означает именно то, что пишет: ошибка страницы памяти с выключенным прерыванием. Рассматривайте эту ошибку, так же как 0x0A.


0x0000004A: IRQL_GT_ZERO_AT_SYSTEM_SERVICE
0x0000004B: STREAMS_INTERNAL_ERROR

0x0000004C: FATAL_UNHANDLED_HARD_ERROR
Если ошибка появиться во время загрузки NT, загрузка прервётся синим экраном.
Наиболее частые причины:
x218 - необходимая библиотека реестра не может быть загружена. Этот файл может отсутствовать или быть повреждённым. Чтобы решить проблему, вам понадобиться спасательная загрузочная дискета.
Драйвер может повреждить ключ реестра во время загрузки в память, или память, в которую происходила загрузка этого ключа, может быть не действительной. Особенно AST EISA машины с 16М и выше памятью должны иметь доступ к памяти выше 16М, т.е. в утилите конфигурации EISA этот параметр должен быть ENABLED (разрешён). Иначе файл, который загрузится в ту память, при чтении покажет - 0xffffffff.
x21A - либо Winlogon либо CSRSS (Windows) внезапно отказали. Выходящий код может сказать больше. Обычно это - c0000005, что говорит о том, что неподдерживаемое исключение вызвало сбой в том или ином процессе. Здесь практически ничего нельзя сделать.
x221 - означает, что драйвер повреждён или системная библиотека была распознана, как повреждённая. NT делает всё, чтобы проверять целостность важных системных файлов. Синий экран показывает имя повреждённого файла. Если такое случилось, загрузитесь в любую другую систему или, если таковых нет, переустановите/отремонтируйте систему... Убедитесь, что версия файла, который был повреждён, совпадает с версией файла в дистрибутиве NT и если так, то просто замените его с диска. Постоянные ошибки с разными именами файлов означают проблемы с железом в I/O пути драйвера.


0x0000004D: NO_PAGES_AVAILABLE
Не хватает свободного места, чтобы закончить операцию. Если отладчик (kernel debugger) доступен, печатайте следующие команды:
!process 0 7
!vm
dd mmpagingfiles
dd @$p
Параметры:
1 - количество использованных страниц
2 - кол-во физических страниц на машине
3 - Extended commit value in pages
4 - Total commit value in pages


0x00000051: REGISTRY_ERROR
Что-то случилось с реестром. Если отладчик (kernel debugger) доступен, отследите ошибку. Если он вам покажет, что вы в ветке системы (CmpWorker будет присутствовать в перечне), введите следующие команды:
dd CmpRegistryMutex+18 L1
!thread
Это выдаст вам ветку и место ошибки в реестре.
Эта ошибка так же может означать, что реестр допустил ошибку I/O, когда пытался прочитать один из его библиотек, отсюда следует, что ошибка могла быть вызвана проблемой с оборудованием или что сама система повреждена. Это так же может означать, что ошибка вызвана операцией обновления, которую использует только система безопасности и это только когда ресурсы на исходе. Если такая ошибка появилась, проверьте, является ли машина PDC или BDC и сколько аккаунтов в базе данных SAM (Менеджер Безопасности Аккаунтов), может ли это быть цель echo и не заполнены ли соответствующие библиотеки почти до конца.
Параметры:
1. значение 1 (указывает, где появилась ошибка)
2. значение 2 (указывает, где появилась ошибка)
3. может указывать на библиотеку
4. может быть возвратным кодом HvCheckHive`а, если какая-либо библиотека повреждена


0x00000052: MAILSLOT_FILE_SYSTEM
0x00000053: NO_BOOT_DEVICE
0x00000054: LM_SERVER_INTERNAL_ERROR
0x00000055: DATA_COHERENCY_EXCEPTION
0x00000056: INSTRUCTION_COHERENCY_EXCEPTION
0x00000057: XNS_INTERNAL_ERROR

0x00000058: FTDISK_INTERNAL_ERROR
Система загрузилась с восстановленной первичной партиции, поэтому библиотеки говорят, что зеркало в порядке, но на самом деле это не так. Настоящие образы библиотек оттенены. Вам нужно удостовериться, что загрузка происходит с верной партиции.


0x00000059: PINBALL_FILE_SYSTEM
0x0000005A: CRITICAL_SERVICE_FAILED
0x0000005B: SET_ENV_VAR_FAILED
0x0000005C: HAL_INITIALIZATION_FAILED
0x0000005D: HEAP_INITIALIZATION_FAILED
0x0000005E: OBJECT_INITIALIZATION_FAILED
0x0000005F: SECURITY_INITIALIZATION_FAILED
0x00000060: PROCESS_INITIALIZATION_FAILED
0x00000061: HAL1_INITIALIZATION_FAILED
0x00000062: OBJECT1_INITIALIZATION_FAILED
0x00000063: SECURITY1_INITIALIZATION_FAILED
0x00000064: SYMBOLIC_INITIALIZATION_FAILED
0x00000065: MEMORY1_INITIALIZATION_FAILED
0x00000066: CACHE_INITIALIZATION_FAILED

0x00000067: CONFIG_INITIALIZATION_FAILED
Это означает, что реестр не может создать место, необходимое для содержания файлов реестра. Это ошибка не должна никогда появляться, так как процесс создания такого места происходит на ранней стадии загрузки системы и поэтому места для создания бассейна должно быть достаточно.
Параметры:
1. 5
2. указывает на NTOSCONFIGCMSYSINI, который потерпел неудачу.


0x00000068: FILE_INITIALIZATION_FAILED

0x00000069: IO1_INITIALIZATION_FAILED
Инициализация I/O системы не удалась по каким-либо причинам. Больше, практически, никакой информации нет. Такое могло случиться, если установка приняла не правильное решение по поводу инсталляции системы, или пользователь переконфигурировал систему. Или пытается установить образ одной системы на совершенно другую.


0x0000006A: LPC_INITIALIZATION_FAILED

0x0000006B: PROCESS1_INITIALIZATION_FAILED
Параметры:
1. указывает на код статуса, который решил, что инициализация NT не прошла успешно.
2. указывает на место в NTOSPSPSINIT.C, где ошибка была обнаружена.

0x0000006C: REFMON_INITIALIZATION_FAILED
0x0000006D: SESSION1_INITIALIZATION_FAILED
0x0000006E: SESSION2_INITIALIZATION_FAILED
0x0000006F: SESSION3_INITIALIZATION_FAILED
0x00000070: SESSION4_INITIALIZATION_FAILED

0x00000071: SESSION5_INITIALIZATION_FAILED
Это коды кодов (SESSION1 - SESSION5) указывают место в NTOSINITINIT.C, где была допущена ошибка.
Параметры:
1. указывает код статуса, который решил, что инициализация NT не прошла успешно.
Больше информации ->


0x00000072: ASSIGN_DRIVE_LETTERS_FAILED

0x00000073: CONFIG_LIST_FAILED
Указывает, что одна из системных библиотек повреждена или не читаема. Эта библиотека может быть или SOFTWARE, или SECURITY, или SAM (Менеджера Безопасности Аккаунтов).
Параметры:
1. 5
2. 2
3. список библиотек
4. указывает строку (UNICODE_STRING), содержащую имя библиотеки


0x00000074: BAD_SYSTEM_CONFIG_INFO
Эта ошибка может показывать то, что библиотека SYSTEM, загружаемая OSLOADER/NTLDR, повреждена. Тем не менее, это практически невозможно, так как OSLOADER всегда проверяет библиотеки после загрузки и убеждается, что они не повреждены.
Эта ошибка так же может означать, что некоторые требуемые ключи реестра и их параметры отсутствуют. Загрузка в LastKnownGood (Последней хорошей конфигурации) может решить проблему, или вам придётся переустанавливать систему, или воспользуйтесь Emergency Repair Disk.


0x00000075: CANNOT_WRITE_CONFIGURATION
Эта ошибка может появиться, если файлы SYSTEM библиотеки (SYSTEM и SYSTEM.ALT) не могут разместить дополнительную информацию, записанную в библиотеки реестра, между инициализациями реестра и первой фазы (когда файловые системы доступны). Эта ошибка обычно означает, что на диске недостаточно свободного места, так же это может произойти при попытке сохранить реестр на устройстве "только чтение".


0x00000076: PROCESS_HAS_LOCKED_PAGES
эта ошибка может возникнуть по причине драйвера, который не полностью вычищен из памяти после I/O операции.
Параметры:
1. адрес процесса
2. число замкнутых страниц
3. число частных страниц
4. 0


0x00000077: KERNEL_STACK_INPAGE_ERROR
Запрошенная страница памяти ядра не может быть прочитана. Причина ошибки может быть в плохом блоке файла виртуальной памяти или ошибки контролера диска (очень редко, когда причиной может быть нехватка ресурсов, а конкретней, резерв nonpaged pool (незанятого дискового пространства) со статусом c0000009a [STATUS_INSUFFICIENT_RESOURCES]).
Если первый и второй параметры кода ошибки равны 0, означает, что место ошибки в ядре не было найдено. Значит, эта ошибка вызвана плохим оборудованием.
I/O статус c000009c (STATUS_DEVICE_DATA_ERROR) или C000016AL (STATUS_DISK_OPERATION_FAILED) обычно означает, что информация не может быть прочитана из-за плохого блока в памяти. После перезагрузки автоматическая проверка диска попытается определить адрес плохого блока на диске. Если статус будет C0000185
(STATUS_IO_DEVICE_ERROR) и виртуальная память находиться на SCSI диске, то должно быть проверено подключение дисков и их срок годности.
Параметры:
1. 0
2. 0
3. значение PTE на момент ошибки
4. адрес ошибки ядра
1. код статуса
2. I/O код статуса
3. номер страницы виртуальной памяти
4. дополнительное место в файл виртуалки
Больше информации ->
0x00000078: PHASE0_EXCEPTION


0x00000079: MISMATCHED_HAL
Уровень проверки HAL и тип конфигурации HAL не подходят ядру системы или типу машины. Такая ошибка, скорее всего, вызвана тем, что пользователь вручную обновил либо NTOSKRNL.EXE либо HAL.DLL. На машине мультипроцессорный HAL (MP) и унипроцессорное ядро (UP) или наоборот.
Параметры:
1. тип несовпадения (1, 2 или 3):
1. несовпадение уровней выпуска PRCB (несовпадение дат). Если дело в этом, то параметры 2 и 3:

2 - наибольший уровень у NTOSKRNL.EXE
3 - наибольший уровень у HAL.DLL

2. несовпадение версий, в этом случае параметры 2 и 3:

2 - версия NTOSKRNL.EXE
3 - версия HAL.DLL
версии:0 - 1 - 2 -

3. Micro Channel Architecture (MCA) компьютерам требуется специфический MCA HAL, в этом случае параметры 2 и 3:

2 - тип машины, определённый NTDETECT.COM
значение 2 означает, что этот HAL сделан для MCA
3 - тип машин, которые этот HAL поддерживает


0x0000007A: KERNEL_DATA_INPAGE_ERROR
Не может быть прочитана запрашиваемая ядром страница памяти. Ошибка вызвана плохим блоком в памяти или ошибкой контроллера диска. См. так же 0x00000077: KERNEL_STACK_INPAGE_ERROR.
Параметры:
1. тип лока который повис
2. статус ошибки (обычно I/O код статуса)
3. текущий процесс (виртуальный адрес для лока типа 3 или PTE)
4. адрес виртуальной памяти, который не может войти в файл подкачки.
Больше информации ->

0x0000007B: INACCESSIBLE_BOOT_DEVICE
В процессе инсталляции I/O системы, драйвер загрузочного устройства, возможно, не смог инициализировать устройство, с которого система пыталась загрузиться, или файловая система, которая должна была прочитать это устройство, либо не смогла инициализироваться, либо просто не распознала информацию на устройстве, как структуру файловой системы. В случае составителя, первый аргумент - это адрес уникодовой структуры информации, которая является ARC именем устройства, с которого была попытка загрузиться. Во втором случае, первый аргумент - это адрес объекта устройства, которое не может быть смонтировано.
Если эта ошибка возникла при начальной инсталляции системы, то она может означать, что система была установлена на диск или SCSI контроллер, которые ей не поддерживаются. Имейте в виду, что некоторые контроллеры поддерживаются только драйверами из виндовских библиотек (WDL), которые должны быть установлены выборочной установкой.
Эта ошибка так же может произойти после установки нового SCSI адаптера или контроллера или после изменений системной партиции. В этом случае, на x86 системах, нужно отредактировать BOOT.INI; на ARC системах, нужно запустить Setup. Для большей информации, как должен быть изменён BOOT.INI, смотрите Windows NT Advanced Server "Administrator`s Guide".
Если аргумент указывает на ARC имя строки (string), формат первых двух (это только в этом случае) длинных слов будет:
USHORT Length;
USHORT MaximumLength;
PVOID Buffer;
Например, если первое длинное слово содержит что-то типа 00800020, где 20 длина Уникодового стринга (Unicode string), и следующее длинное слово будет содержать адрес буфера.
Если аргумент указывает на объект устройства, формат первого слова будет:USHORT Type;
Значит, первое слово содержит 0003, где Type код всегда будет 0003.
Примечание:
Вы сразу сможете опознать, указывает ли аргумент на ARC имя или на объект устройства, так как Уникодовая строка (Unicode string) никогда не содержит нечётное число байтов, а объект устройства всегда будет содержать тип кода - 3.
Параметры:
1. указатель на объект устройства или Уникодовая строка (Unicode string), или ARC имя.
Больше информации ->


0x0000007C: BUGCODE_PSS_MESSAGE

0x0000007D: INSTALL_MORE_MEMORY
Не хватает памяти, чтобы загрузить Windows NT (необходимо 5 MB).
Параметры:
1. номер найденных физических страниц
2. нижняя физическая страница
3. высшая физическая страница
4. 0


0x4000007E: WINDOWS_NT_BANNER

0x0000007F: UNEXPECTED_KERNEL_MODE_TRAP
Эта ошибка означает, что произошло непредвиденное прерывание в режиме ядра, или вид прерывания, которое ядро не допускает, или захват (a bound trap), или вид прерывания, которое влечёт за собой немедленную смерть (двойная ошибка(double fault)). Первое число в интервалах кода стопа - число прерывания (8 = double fault). Чтобы узнать больше, что это за прерывание, обратитесь к мануалу Intel x86 семьи.
В общем, баг появляется, когда процессор допускает ошибку, с которой ядро не может справиться. Чаще всего возникает из-за плохого RAM, так же из-за разгона процессора.
Попробуйте отменить в BIOS - sync negotiation (синхронная передача данных).
Больше информации ->


0x00000080: NMI_HARDWARE_FAILURE
HAL должен сообщить всю конкретную информацию и предложить пользователю обратиться к его поставщику оборудования за тех.поддержкой.


0x00000081: SPIN_LOCK_INIT_FAILURE

0x00000085: SETUP_FAILURE
(Примечание: текстовая форма setup`a больше не использует проверку багов (bugcheck), чтобы выйти из серьёзных ошибок. Поэтому вы никогда не столкнётесь с 0x85. Все проверки багов были заменены на более дружелюбные и (где возможно) более информативные сообщения об ошибках. Тем не менее, некоторые составители ошибок просто были заменены нашими bugcheck экранами, и код для этих состояний ошибок такой же, как и был. Они приведены ниже.)
1-
0: OEM HAL шрифт - недействительный формат файла *.fon, поэтому установка не смогла отобразить текст. Это означает, что vgaxxx.fon на CD или флоппи повреждён.
1: Не смогло инициализироваться видео. Эта ошибка имеет собственный экран и пользователю предоставляется только 2 варианта.
Это означает, что файл vga.sys (или другой драйвер, в зависимости от машины) повреждён, или то, что данное оборудование не поддерживается.
2 - что дало сбой:
0: NtCreateFile of devicevideo0
1: IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES
2: IOCTL_VIDEO_QUERY_AVAIL_MODES
3: Желаемый режим видео не поддерживается. Это означает внутреннюю ошибку установки.
4: IOCTL_VIDEO_SET_CURRENT_MODE (невозможно установить режим видео)
5: IOCTL_VIDEO_MAP_VIDEO_MEMORY
6: IOCTL_VIDEO_LOAD_AND_SET_FONT 3 - код статуса NT API вызова
2: Нехватка памяти. Теперь эта ошибка использует более дружественный экран, в зависимости от того, как далеко зашла установка.
3: Клавиатура не была инициализирована. Теперь используются 2 разных экрана в зависимости от ошибок, которые тут могли появиться. Это может означать, что диск, содержащий драйвера для клавиатуры (i8042prt.sys или kbdclass.sys) повреждён или машина имеет клавиатуру, которая не поддерживается.
Так же это может означать, что dll раскладки клавиатуры не может быть загружен.
2 - что дало сбой:
0: NtCreateFile of deviceKeyboardClass0 .
"Установка не обнаружила клавиатуру, подключённую к вашему компьютеру."
1: Unable to load keyboard layout dll.
"Установка не может загрузить dll раскладки клавиатуры ."
Это значит, что на флоппи или CD нет файла (kbdus.dll для us или других dll).
4: Установка не смогла выяснить путь устройства, с которого началась установка. Это внутренняя ошибка установки.
5: Не прошла проверка на работоспособность партиций. Это означает баг в драйвере диска. Параметры имеют значения только для группы установки.


0x0000008B: MBR_CHECKSUM_MISMATCH
Эта ошибка возникает в процессе загрузки, когда контрольная сумма MBR, которую посчитала система, не совпадает с контрольной суммой загрузчика. Обычно это означает вирус. Некоторые вирусы не могут быть определены/найдены. Загрузитесь с дискеты с вирус-сканером (убедитесь, что дискета защищена от записи!)
KerBugCheckEx
параметры:
1 - Disk Signature from MBR.
2 - MBR checksum calculated by osloader.
3 - MBR checksum calculated by system.


0x0000008E
Применяется к следующим системам:

1. Microsoft Windows XP Professional
2. Microsoft Windows XP Home Edition
3. Microsoft Windows XP Professional SP1
4. Microsoft Windows XP Home Edition SP1

Больше информации ->



Следующие стопы добавлены в Windows NT версии 3.51 и 4.x:
---------------------------------------------------------------------------------------

0x0000008F: PP0_INITIALIZATION_FAILED
Это сообщение появляется, если инициализация фазы 0 менеджера Plug and Play не прошла на стадии инициализации ядра (kernel-mode Plug and Play Manager failed). Вообще-то нет ничего такого, что бы могло вызвать эту ошибку.


0x00000090: PP1_INITIALIZATION_FAILED
Это сообщение появляется, если инициализация фазы 1 менеджера Plug and Play не прошла на стадии инициализации ядра (kernel-mode Plug and Play Manager failed). Вот здесь происходят практический все инициализации, включая конфигурацию среды (реестр и т.д.) драйверов для вызова I/O впоследствии.


Следующие стопы добавлены в Windows NT версии 4.x:
---------------------------------------------------------------------------------------

0x00000092: UP_DRIVER_ON_MP_SYSTEM
Этот баг появляется только когда UNIPROCESSOR драйвер загружается на систему, в которой больше чем один активный процессор.
KeBugCheckEx
параметры:
1 - адрес базы драйвера.


0x00000093: INVALID_KERNEL_HANDLE
Эта ошибка появляется, когда код ядра (kernel code), такой, как сервер, перенаправитель (redirector), другие драйвера и так далее пытаются закрыть не действительный указатель.
Параметры:
1 - указатель, с которым NtClose был вызван.
2 - 0 означает, что был закрыт защищённый указатель.
1 значит, был закрыт неверный указатель.


0x00000094: KERNEL_STACK_LOCKED_AT_EXIT
Это сообщение появляется, когда нить существует, в то время как её стэк ядра отмечен, как не swapable.


0x00000096: INVALID_WORK_QUEUE_ITEM
Это сообщение появляется, когда KeRemoveQueue удаляет очередь данных, а flink или blink поле равно 0. Это практический всегда вызывается неправильным применением кода работающей нити текущего объекта, но неправильное применение любой очереди может привести к этому. Правило - ввод данных в очередь может быть произведено только однажды. Когда предмет удаляется из очереди, его flink поле равно 0. Этот баг возникает, когда происходит попытка удалить данные, flink или blink поля которых равны 0. Для того, чтобы разрешить этот баг, вам необходимо выяснить очередь, на которую он ссылается. Если эта очередь одна из ЕХ работающих очередей (ExWorkerQueue), тогда объект, который удаляется - WORK_QUEUE_ITEM. Этот баг подразумевает, что это и есть причина. Параметры бага помогают выявить драйвер, который неправильно использует очередь.


0x00000097: BOUND_IMAGE_UNSUPPORTED
MmLoadSystemImage была вызвана, чтобы загрузить bound image. Это не поддерживается ядром. Убедитесь, что bind.exe не был запушен для картинки.KeBugCheckEx
параметры:
1 - Адрес данных в очереди, flink/blink поле которых ноль.
2 - Адрес на ссылающуюся очередь. Обычно это одна из ExWorkerQueues очередей.
3 - Начальный адресс ExWorkerQueue массива. Это поможет выявить, если очередь в вопросе одна из ExWorkerQueue очередей и если так, то офсет из этого параметра выявит очередь.
4 - Если это ExWorkerQueue очередь (как это бывает обычно), это адрес работающей рутины, которая бы вызывалась, если работающий элемент был бы действительным. Это может быть использовано, чтобы выявить драйвер, который неправильно использует рабочую очередь.


0x00000098: END_OF_NT_EVALUATION_PERIOD
Ваша NT система - триал с ограниченной датой, которая подошла к концу. KeBugCheckEx
параметры:
1 - Низкий 32-дитный запрос вашей даты инсталляции.
2 - Высокий 32-дитный запрос вашей даты инсталляции.
3 - Триал период в минутах.


0x00000099: INVALID_REGION_OR_SEGMENT
ExInitializeRegion или ExInterlockedExtendRegion были вызваны с неправильным набором параметров.


0x0000009A SYSTEM_LICENSE_VIOLATION
Нарушился испытательный срок лицензии софта. Это может быть или из-за попытки изменить тип продукта офлайновой системы, или попытки изменить срок триального периода НТ.


0x0000009B: UDFS_FILE_SYSTEM
Смотрите комментарии FAT_FILE_SYSTEM


0x0000009C: MACHINE_CHECK_EXCEPTION
Фатальная ошибка Machine Check Exception (проверка машины).KeBugCheckEx
параметры:
Если процессор имеет ТОЛЬКО MCE функции доступными (например: Intel Pentium), то параметры будут:

1 - Low 32 bits of P5_MC_TYPE MSR
2 -
3 - High 32 bits of P5_MC_ADDR MSR
4 - Low 32 bits of P5_MC_ADDR MSR

Если процессор имеет так же MCA функции доступными (например: Intel Pentium Pro), то параметры будут:1 - Bank number

2 - Address field of MCi_ADDR MSR for the MCA bank that had the error
3 - High 32 bits of MCi_STATUS MSR for the MCA bank that had the error
4 - Low 32 bits of MCi_STATUS MSR for the MCA bank that had the error

Больше информации ->



Следующие СТОПы появились только в Windows XP 2000 (за исключением трёхзначных)
-----------------------------------------------------

0x0000009F: DRIVER_POWER_STATE_FAILURE
Драйвер находиться в несовместимом или неустоичивом состоянии электропитания.В большинстве случаев происходит во время выключения компьютера или выхода из ждущего режима (standby) или сна (hibernate).
Больше информации ->


0x000000A0: INTERNAL_POWER_ERROR
0x000000A1: PCI_BUS_DRIVER_INTERNAL
0x000000A2: MEMORY_IMAGE_CURRUPT
0x000000A3: ACPI_DRIVER_INTERNAL
0x000000A4: CNSS_FILE_SYSTEM_FILTER

0x000000A5: ACPI_BIOS_ERROR
Причина этой ошибки всегда ACPI BIOS. Эта проблема не может быть решена ОС.


0x000000A7: BAD_EXHANDLE
0x000000AB: SESSION_HAS_VALID_POOL_ON_EXIT
0x000000AC: HAL_MEMORY_ALLOCATION

0x000000B4: VIDEO_DRIVER_INIT_FAILURE
Windows не смог перейти в графический режим, потому что ни один видео драйвер не был загружен. Обычно проблема с драйвером или какой-то конфликт видео оборудования с другим оборудованием. Загрузитесь в Safe Mode и посмотрите, если это решит проблему. Если так, то обновите драйвера видео оборудования или откатите на рабочую версию.


0x000000B8: ATTEMPTED_SWITCH_FROM_DPC
0x000000B9: CHIPSET_DETECTED_ERROR
0x000000BA: SESSION_HAS_VALID_VIEWS_ON_EXIT
0x000000BB: NETWORK_BOOT_INITIALIZATION_FAILED
0x000000BC: NETWORK_BOOT_DUPLICATE_ADDRESS

0x000000BE: ATTEMPTED_WRITE_TO_READONLY_MEMORY
Драйвер попытался записать в read-only память. Обычно возникает после установки неисправного драйвера оборудования, системного сервиса, BIOS`a. Если имя драйвера указано в ошибке, попытайтесь исправть проблему отключением, удалением или откаткой драйверов.
Больше информации ->


0x000000BF: MUTEX_ALREADY_OWNED

0x000000C1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
Драйвер пытался записать в недозволенную область памяти. Обновите драйвер.
Больше информации ->


0x000000C2: BAD_POOL_CALLER
Процесс ядра или драйвер попытались неверно произвести операцию с памятью. Обычно причиной являются неисправные драйвера или софт.


0x000000C4: DRIVER_VERIFIER_DETECTED_VIOLATION
Это общий стоп для фатальных ошибок выявленых Driver Verifier (инструмент проверки драйверов). Переметры переданны KeBugCheckEx и отображены на синем экране.


0x000000C5: DRIVER_CORRUPTED_EXPOOL
Почти всегда причиной является неисправный драйвер. Если вы только что установили новое программное обеспечение, потом проверьте обновление драйвером на сайте производителя.
Больше информации ->


0x000000C6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
Драйвер пытался получить доступ к освобождённой памяти.


0x000000C7: TIMER_OR_DPC_INVALID
Указывает, что таймер ядра или DPC был обнаружен в памяти, где его не должно было быть. Такая ситуация обычно возникает, когда драйвер не отменил таймер или the Delayed Procedure Call (DPC) перед тем как освободить память занятую таймером или DPC.


0x000000C8: IRQL_UNEXPECTED_VALUE

0x000000C9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
Нарушение инструмента проверки драйверов.


0x000000CA: PNP_DETECTED_FATAL_ERROR

0x000000CB: DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS
Этот относиться к стопу 0x76. Он может появится вместо 0x76. Означает, что драйвер или система ввода/вывода не освободили IRQ. Имя драйвера может быть указано на синем экране.


0x000000CC: PAGE_FAULT_IN_FREED_SPECIAL_POOL
0x000000CD: PAGE_FAULT_BEYOND_END_OF_ALLOCATION

0x000000CE: DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATI ONS
Драйвер не отменил операцию оживания до выхода. Обычная причина - плохой драйвер или сервис.


0x000000CF: TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFER ENCE
0x000000D0: DRIVER_CORRUPTED_MMPOOL

0x000000D1: DRIVER_IRQL_NOT_LESS_OR_EQUAL
Была сделана попытка затронуть виртуальную память на внутреннем процессе IRQ уровня, который слишком высок.
Причиной могут быть:
неисправный драйвер
неисправный RAM
повреждённый файл виртуальной памяти.
Больше информации ->


0x000000D2: BUGCODE_ID_DRIVER
0x000000D3: DRIVER_PORTION_MUST_BE_NONPAGED
0x000000D4: SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_ UNLOAD
0x000000D5: DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL
0x000000D6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
0x000000D7: DRIVER_UNMAPPING_INVALID_VIEW

0x000000D8: DRIVER_USED_EXCESSIVE_PTES
Обычно возникает при нехватаетке Page Table Entries (PTEs), когда драйвер требует слишком много системной памяти.


0x000000D9: MUTEX_ALREADY_OWNED
0x000000DA: SYSTEM_PTE_MISUSE
0x000000DB: DRIVER_CORRUPTED_SYSPTES
0x000000DC: DRIVER_INVALID_STACK_ACCESS
0x000000DE: POOL_CORRUPTION_IN_FILE_AREA
0x000000DF: IMPERSONATING_WORKER_THREAD
0x000000E0: ACPI_BIOS_FATAL_ERROR
0x000000E1: WORKER_THREAD_RETURNED_AT_BAD_IRQL
0x000000E2: MANUALLY_INITIATED_CRASH

0x000000E3: RESOURCE_NOT_OWNED
Ошибка вызвана сбоем файловой системы.
Больше информации ->


0x000000E4: WORKER_INVALID
0x000000E6: DRIVER_VERIFIER_DMA_VIOLATION
0x000000E7: INVALID_FLOATING_POINT_STATE
0x000000E8: INVALID_CANCEL_OF_FILE_OPEN
0x000000E9: ACTIVE_EX_WORKER_THREAD_TERMINATION

0x000000EA: THREAD_STUCK_IN_DEVICE_DRIVER
Проблема в драйвером оборудования явилась причиной зависания системы. Обычно драйвер дисплея ожидает, когда оборудование перейдёт в спящий режим. Проблемы могут быть с видео адаптером или его драйвером.


0x000000EB: DIRTY_MAPPED_PAGES_CONGESTION
0x000000EC: SESSION_HAS_VALID_SPECIAL_POOL_ON_EXIT

0x000000ED: UNMOUNTABLE_BOOT_VOLUME
I/O система ядра пыталась смонтировать устройство для загрузки системы, а оно отказалось работать. Такая ошибка может возникнуть во время обновления до Windows XP на систему, где используется высокопроизводительные ATA диски или контроллеры, а подсоединены они низкопропускным кабелем. В некоторых случаях, после перезагрузки, система может продолжать работать без видимых сбоев.
Больше информации ->


0x000000EF: CRITICAL_PROCESS_DIED
0x000000F1: SCSI_VERIFIER_DETECTED_VIOLATION

0x000000F2: HARDWARE_INTERRUPT_STORM
Обычно возникает из-за неисправного драйвера.


0x000000F3: DISORDERLY_SHUTDOWN
Выключение Windows не произошло из-за нехватки памяти. Проверьте свободное место на диске и наличие зависших программ.


0x000000F4: CRITICAL_OBJECT_TERMINATION
0x000000F6: PCI_VERIFIER_DETECTED_VIOLATION
0x000000F7: DRIVER_OVERRAN_STACK_BUFFER
0x000000F8: RAMDISK_BOOT_INITIALIZATION_FAILED
0x000000F9: DRIVER_RETURNED_STATUS_REPARSE_FOR_VOLUME_OPEN

0x1000007E: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M
Ошибка такая же как 0x7E.


0x1000007F: UNEXPECTED_KERNEL_MODE_TRAP_M

0x1000008E: KERNEL_MODE_EXCEPTION_NOT_HANDLED_M
Ошибка такая же как 0x8E.


0x100000EA: THREAD_STUCK_IN_DEVICE_DRIVER_M

0xC000009A: STATUS_INSUFFICIENT_RESOURCES
Не хватка памяти.


0xC0000135: UNABLE TO LOCATE DLL
Windows попытался загрузить какую-то библиотеку, но возникла ошибка. Эта ошибка могла быть вызвана повреждённым, пропавшим файлом или повреждённым реестром.


0xC0000142: Неуспешная инициализация DLL
Обычно возникает, когда программа не может успешно инициализироваться.


0xC0000218: UNKNOWN_HARD_ERROR
Необходимая библиотека реестра не может быть загружена. Файл может отсутствовать или быть повреждённым. Повреждение могдо быть вызвано неисправным жёстким диском или другим оборудованием. Драйвер мог повредить реестр во время его загрузки, или повреждена память, куда загружался реестр.


0xC000021A: STATUS_SYSTEM_PROCESS_TERMINATED
Такое случается, когда Windows переходит в режим ядра, а пользовательский режим, такой как Winlogon или Client Server Runtime Subsystem (CSRSS) чем-то скомпрометированы и безопасность не может быть гарантирована. Так как Win XP не может работать без Winlogon или CSRSS. Эти ситуации, когда пользовательские подсистемы могут предотвратить или стать причиной не работы самой системы.
Эта же ошибка может появиться когда администратор изменил права доступа и SYSTEM аккаунт не может больше использовать системные файлы и директории.


0xC0000221: STATUS_IMAGE_CHECKSUM_MISMATCH
Указывает на проблемы драйверов, системных файлов, неисправность дисков (такие как - испорченная виртуальная память) или неисправная память оборудования.


0xC0000244
A "Stop 0xc0000244" Error Occurs When You Audit Policy Changes If CrashOnAuditFail Is Turned On {KB 323475} Win XP


0xC000026C
Обычно указывает на проблему драйверов.
Не возможно загрузить драйвер {KB 160495} Win NT, Win 2000, Win XP


0xDEADDEAD: MANUALLY_INITIATED_CRASH1
"It`s dead, Jim!" - "Он мёртв, Джим" =)

Короткие анекдоты

xxx: я понял, почему у Фродо и всех остальных такой гемор с кольцом получился...
ххх: когда все на совете кричали "я пойду, я пойду", Элронд с идиотской улыбкой хлопал по плечам и радовался, а должен был сказать: "Ну как вы, идиоты, танк, два мили-дамагера, хантер, маг и четыре баласта в серьезный рейд без хила собрались?"

xxx: у кого есть может толковые книги по теории графов? может кто чего посоветует
yyy: я знаю только графа монте-кристо. теория у него была простая - съебаца и отомстить )

Kotyabra: Как все в природе мудро устроено! Заметили? Ведь дырочки на шкурке у кошки именно там, где у кошки глазки!
Torin: Если б кошку писали программисты, глаза были бы на жопе, под кожей, а для передачи изображения использовалась бы система зеркал!

Когда я пишу "г-н Такой-то", то сокращение "г-н" примерно в половине случаев означает "господин". (с)Евгений Шестаков

Солнце. Весна. Ну а я - на работе.
Путь самурая к зарплате нелёгок.
Хочется выпить.

Мальчик-вундеркинд спился в третьем классе.

ххх: Извини, я злая сейчас из-за него
yyy: Попробуй под японский чай, сидя на кресле, под релаксирующий шум прибоя из колонок компа, почитать книгу о чем нибудь вечном)
ххх: Проще уебать лопатой

ххх: ну не пипец ли - он вторую неделю не звонит.
ууу: не, пипец - это когда знакомишь маму с парнем - 6 месяцев вместе - а она говорит, что это стриптизер с их корпоратива на 8марта
ххх: дима? ну да, ты не знала?
ууу: пипец...

1: ты уже придумал, как ты будешь делать предложение?
2: Я думаю, нужно придумать что-нибудь оригинальное
1: Предварительно покажи ей фильм "Бангкок Хилтон", чтобы запомнила, что в тайланде за наркотики смертная казнь.
Купи путевку в тайланд, собери мешок травы, положи его под кровать в гостинице. С утра пойди к местным ментам, дай им 50 паксов. Они ее повяжут в гостинице, притащат в отделение, будут битый час светить лампой в глаза и что-то лопотать по ихнему.
В конце скажут на ломаном английском, что отпустят, если она подпишет бумагу.
А на бумаге будет "ЮЛЯ Я ТЕБЯ ЛЮБЛЮ, ВЫХОДИ ЗА МЕНЯ!". И появляешься ты с цветами!

И анекдот:
Из самолета по трапу сходит мужик, придерживает брюки руками и орет:
- Идиоты! Задолбали! То застегните ремни, то отстегните…

Молодая мама продавцу:
- Не кажется ли вам, что игрушка слишком сложна для малыша?
- Нет, она как раз рассчитана на то, чтобы приучить ребенка к современной жизни. Как бы малыш ни пытался ее сложить, у него все равно ничего не получится.

Пять лет трудился мелким предпринимателем. Пахал как трактор. На мне неплохо заработали: пожарники, санэпидем станция, менты, районные чиновники и чиновники из мэрии, налоговики и даже таможенник. Один я, почему-то, ни х*я не заработал.

Гений Леонардо Да Винчи был настолько велик, что он не только придумал вертолет и парашют, но ещё явился во сне Менделееву, переодетый таблицей.

х на работе писец
х с дипломом писец
х с военкоматом писец
х с девушкой писец
х с машиной писец
х ровненько так идет )

Спят усталые админы,мышки спят … Флешки и клавиатуры ждут ребят… Windows тоже спать ложится, Чтобы ночью нам присниться, Аську закрывааай… Ба-ю-бай. Все нормальные контакты спят давно… Вирус лазает по папкам, всё равно… Скоро он ложится тоже, ну а мы ему поможем - Базы обновляй, ба-ю-бай…

вторник, 30 марта 2010 г.

Использование определенных цветов проводов для фазы, нуля, земли. Отрывок из ПУЭ.

... Электропроводка должна соответствовать условиям окружающей среды, назначению и ценности сооружений, их конструкции и архитектурным особенностям. Электропроводка должна обеспечивать возможность легкого распознания по всей длине проводников по цветам:

голубого цвета - для обозначения нулевого рабочего или среднего проводника электрической сети;

двухцветной комбинации зелено-желтого цвета - для обозначения защитного или нулевого защитного проводника;

двухцветной комбинации зелено-желтого цвета по всей длине с голубыми метками на концах линии, которые наносятся при монтаже - для обозначения совмещенного нулевого рабочего и нулевого защитного проводника;

черного, коричневого, красного, фиолетового, серого, розового, белого, оранжевого, бирюзового цвета - для обозначения фазного проводника. ...

Много познавательного здесь - http://www.forum220.ru/

четверг, 25 марта 2010 г.

Как обойти URL-фильтры с помощью математики

(С) http://habrahabr.ru/blogs/infosecurity/88796

Может быть для кого-то станет открытием, но современные браузеры могут воспринимать URL не только в десятичной системе, но также в 8-ричной и 16-ричной, и даже единым 32-битным числом. То есть URL типа 66.102.13.19 можно представить несколькими разными способами

0x42.0x66.0x0d.0x63
0x42660d63
1113984355
00000102.00000146.00000015.00000143

Щёлкаете по любому из вариантов — и попадаете на google.com.

Эта техника была известна давно, но сейчас про неё как будто забыли. Хуже всего, что про неё забыли некоторые производители антивирусного ПО, который фильтрует почтовый трафик на предмет опасных ссылок. Они блокируют ссылку в нормальном виде, но пропускают 8-, 16- или 32-ричный IP-адрес.

Результат налицо: уже замечен банковский троян, в котором реанимированы эти старые математические трюки.

Кстати, чем не идея для киберсквоттеров. Можно найти кучу красивых м свободных адресов в 32-битном разряде, например.

понедельник, 22 марта 2010 г.

И девичья фамилия

(C) http://uncle-doc.livejournal.com

Наткнулся в сюжетах дня на интересное обсуждение - какую фамилию должен носить ребенок. Там высказываются в том духе, что нефиг мужиков баловать, даешь равенство во всём, а ребенку - именно из соображений равенства - двойную фамилию. Про равенство во всём поговорим, когда для женщин введут обязательную службу в армии, как в Израиле, например. А че? Равнять, так равнять.

А насчет двойной фамилии - вообще дурдом. Ну ок. Предположим, дали. Иванов-Сапкявичус, например. Он вырос и женился на девушке с фамилией, например, Магомедханова-Георгобиани. Их ребенку давать четверную фамилию? Или сокращать до двойной? А как определить - кого отрезать? ;) Абыдна будет, да... Страшно представить, что получится поколений через десять такого скрещивания. А если еще подождать, то всё население России будет носить одну фамилию, просто ее составляющие будут расположены в разном порядке. Зато заканчиваться она будет одинаково у всех - оглы ;)

Существуют определенные традиции. Например, традиция отчества. Давайте его тогда нафик отменим, долой эти пережитки мужского шовинизма! Шо за мода вапще... Предлагаю заменять его на матьчество и законодательно ввести норму, когда альтернативно одаренная мать может не только дать ребенку свою фамилию, а не фамилию отца (он-то тут вообще ни при чем, не вынашивал, ни рожал, гнездоваться мешает, паразит) и не отчество (слишком много чести), а матьчество. Были же Ольговичи*! Вот и пусть будет, например, Сергей Светланович. Или Зоя Анновна. Или Габиль Гюльчатаевич (ага, сам ржу).

Вот заняться людям нечем. Если они в этом вопросе договориться не могут, то в чем тогда смогут? Ну не в Испании мы живем, и не на Востоке. Там свои традиции. У нас - свои. Зачем мучить ребенка? Зачем через него реализовывать мелкие амбиции и проявлять принципиальность совершенно не в тех вещах, которых следовало бы. Я понимаю, когда исходят из соображений благозвучности. Хотя и не очень звучащие фамилии люди носят с гордостью, и знаю немало случаев, когда женщины меняли свои очень красивые фамилии на мужнину. Обмен этот выглядел примерно как махнуть Brabus на ушастый Запорожец. Тем не менее, они были действительно счастливы и делали это совершенно искренне. Не поверите - из-за любви.

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

среда, 17 марта 2010 г.

Про количество

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

При этом производительность труда объективно растёт: техника стала лучше, инструменты разработки эффективней, больше стало стабильных библиотек, самое главное — опыта стало больше у тех, кто 5-10 лет назад был студентом. Поэтому большие команды нужны всё меньше и меньше.

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

(С) http://yakov-sirotkin.livejournal.com

Почему грустит HR

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

Увы, работает это плохо: потенциальному новому сотруднику глубоко наплевать, сколько дадут за его голову, разве что какие-то негативные ассоциации могут возникнуть. Зато информация о любой компании легко доступна хотя бы через поиск по блогам и социальные сети. Если сотрудники вашей компании любят рассказывать, как хорошо выпить пиво «Балтика» после 16-часового аврала, то можете не пытаться никого убеждать, что у вас отлаженные процессы и растущая зарплата.

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

(С) http://yakov-sirotkin.livejournal.com

Рефакторинг: конфликт интересов

Предположим, вы пришли на новое место работать над уже существующим проектом. Если вам дали хорошую зарплату, то, скорее всего, проект совсем не простой. И вот, вы начинаете его тянуть: раскапываете завалы, преодолеваете инерцию, берёте на себя ответственность и засиживаетесь допоздна. И примерно через год оказывается, что продукт более-менее стабилен, серьёзных багов нет вообще, фичи планомерно добавляются. Заметит ли руководство, что это благодаря вашему труду оно теперь может спать спокойно? Может быть. Оценит ли по достоинству ваш вклад? А зачем, особенно если вы недавно нашли толкового студента для повышения стабильности разработки? Скорее всего, чуть-чуть оценит, но вам всё равно придётся искать другую работу.

Есть другой вариант: идти в большую-большую контору на средненькую зарплату, чтобы первые пару месяцев — только тренинги. Добросовестно сидеть в офисе с утра до вечера, ни с кем ни о чём не спорить, ничего не менять. Ответственность на себя не брать, всё делать по образцу, вплоть до циничного копипаста больших кусков кода. Аккуратно одеваться, получать сертификаты (все подряд), учиться вежливо разговаривать с уважаемыми людьми. Если повезёт, то так можно продержаться много лет и даже выйти в небольшие начальники.

В конечном счёте, дорогу каждый себе выбирает сам: кто-то пытается стать self-made man, кто-то просто ищет тёплое место.

(С) http://yakov-sirotkin.livejournal.com

Три проблемы больших компаний

В первую очередь большие компании страдают от того, что могут позволить себе большие обречённые проекты. Такие проекты неминуемо ведут к растрате денег и часто бьют по людям: работает человек, пытается сделать что-нибудь полезное изо всех сил а потом бац! и офис закрывают.

Для обречённых проектов хорошо подходят менеджеры-зомби, которые не думают о проблемах. Такие менеджеры занимаются перекладыванием задач между сотрудниками и трансляцией приказов, не задают вопросы длиной больше пяти слов, дают руководящие указания не более трёх слов. Результатом работы зомби является отчёт, склеенный из отчётов подчинённых.

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

(С) http://yakov-sirotkin.livejournal.com

О денежной мотивации

Весна, 2008 год, всеобщая эйфория, Вася и Петя работают в одной компании, получают по 80 тысяч. Внезапно Петя (детей нет, квартира есть) уходит на зарплату в 100 тысяч. Это типичный случай, когда человек уходит ради денег, его легко отпускают. Васе нравится его работа, он верит в светлое будущее компании, поэтому Вася продолжает спокойно трудится для всеобщего блага.

Зима, 2009 год. Вася (дети, ипотека) обнаруживает, что зарплата у него высокая только по сравнению со свежеуволенными коллегами, но не с окружающими ценами. Поэтому теперь у Васи будет жёсткий бюджет и, как и полагается в кризис, Вася будет думать, как ему жить дальше и какие качественные шаги нужно сделать.

Руководство, в эйфории от большого количества входящих резюме, может попросить Васю работать больше за те же деньги. Скажет ли Вася «я буду работать ещё упорней»? Очень вряд ли, потому что работать с мотивацией типа «чтобы не уволили» гораздо тяжелее, чем с мотивацией на рост. Да и исторические данные свидетельствуют, что маниакальное вкалывание на работе гораздо чаще ведёт к подорванному здоровью, чем к большим деньгам.

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

(С) http://yakov-sirotkin.livejournal.com

Про снижение зарплат

Зарплату можно урезать не только в лоб, но и разными хитрыми способами: уменьшить премии, проигнорировать существенную инфляцию, прибавить работы, даже просто поднять цены в заводской столовой. В связи с этим очень популярен вопрос, а не станут ли люди хуже работать, если их немножечко «прижать»? Обычно под этим подразумевается, что продавщицы будут хамить клиентам, футболисты — медленнее бегать, а инженеры станут делать ошибки в расчётах. Я считаю, что любой вменяемый профессионал ни за что не будет таким способом убивать свою репутацию, а раздолбай всегда найдёт способ накосячить.

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

Также люди могут сильно разочароваться в своих ожиданиях. В хорошие времена они стремятся как-то продвинуться по карьерной лестнице, увеличить свою зарплату, если вдруг ситуация начинает развиваться в другую сторону, то толковый специалист вполне может переметнуться на новую работу. И, несмотря на всю шумиху про кризис, найти ему замену будет весьма не просто.

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

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

(С) http://yakov-sirotkin.livejournal.com

Можно ли мотивировать программистов добрым словом?

Молодых и наивных — да, можно. Пообещаешь им прибавку к зарплате — и они поверят. Вот только технические решения они скорее всего будут принимать без тщательного анализа.

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

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

Доводилось мне работать и с очень хорошими специалистами. Вот только они меня, мягко говоря, не хвалили. Зато многому научили, работать с ними было одно удовольствие и потом очень в жизни пригодилось. Может быть имеет смысл к добрым словам причислять и конструктивную критику? А если человек хочет слышать в свой адрес только хорошее, то может не надо его и удерживать?

(С) http://yakov-sirotkin.livejournal.com

Как стать незаменимым?

0. Забудь об интересах компании. Не занимайся достижением измеримых результатов — это много кто умеет делать.

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

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

3. Возглавь как можно больше проектов, но не тех, которые должны принести прибыль, а тех, которые съедят больше денег.

(С) http://yakov-sirotkin.livejournal.com/

Про текучку

Если из вашей компании никто не уходит, то приятно думать, что у вас сложился особенно хороший и дружный коллектив. Обычно компания просто переплачивает своим сотрудникам. Приятно думать, что это у вас такие высокие зарплаты. Обычно людям просто некуда больше пойти.

Если компания расстаётся с кем-то из своих сотрудников, то она может этим воспользоваться: повысить кого-нибудь и тем самым удержать его от ухода, либо нанять человека с ценным опытом со стороны. Вот только если давать людям уйти, то в первых рядах уйдут самые лучшие, наиболее востребованные рынком, а если активно увольнять, то попробуй потом найди новое пушечное мясо. Более, того если поставить перед менеджерами задачу оптимизировать численность, то себя-то они вряд ли тронут, а вот тех, кто мог бы их заменить — запросто.

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

(С) http://yakov-sirotkin.livejournal.com/

Фундамент, шпили и башенки

Обычно заказчик хочет от разработчика шпили и башенки. Очень многие разработчики с радостью эти шпили и башенки для него тут же делают. Заказчик, когда принимает работу, смотрит на шпили и башенки. Потом внезапно начинаются проблемы: то шпиль упадёт, то новую башенку никак не пристроить. Постепенно проект съедает свой бюджет, потом ещё один и так далее, пока денег хватит, но при этом как будто стоит на месте, все силы уходят на косметический ремонт.

Встречается такой подход, что сейчас мы сделаем по-быстрому, а потом поставим на фундамент. В IT это часто работает, но стоит довольно дорого. Чтобы получить предсказуемый результат, о фундаменте нужно думать в начале проекта.

(С) http://yakov-sirotkin.livejournal.com/

Unabomber

(С) http://mi3ch.livejournal.com/1693787.html

Случайно наткнулся на фразу, которая меня зацепила "Мы можем делать все что угодно, пока это неважно" и подпись под цитатой - Теодор Качинский
Решил узнать - кто это? (к моему стыду это имя мне ни о чем не говорило)

Теодор Джон Качински (родился 22 мая, 1942) вундеркинд, весь школьный курс прошел за несколько лет. Окончил Гарвардский университет, где получил степень доктора философии по математике. В 25 лет стал старшим преподавателем в Беркли. Через два года уволился и поселился в горах Монтаны . Жил охотой и рыбалкой. В доме из фанеры не было ванной, туалета и электричества. Когда рядом начали вырубать леса (прокладывали автостраду) он стал террористом

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

Его жертвами стали
Томас Моссер - вице-президент рекламной фирмы, работавшей на нефтяную корпорацию "Exxon",
Гилберт Мюррей - "главный лесник" Америки и руководитель крупнейшей частной фирмы по продаже древесины
Хью Кэмпбелл - владелец компьютерной корпорации
Перси Вуд - президент авиакомпании "United Airlines" и многие другие

Пресса назвала его Унабомбер (University and airline bomber). ФБР назначило награду в миллион долларов за его голову и, тем не менее, не могло поймать его семнадцать лет.

В 1995 году Унабомбер написал открытое письмо в "The New York Times" и "The Washington Post". Он обещал прекратить теракты, если газеты опубликуют его манифест. Газеты отказались. Тогда редактор «Пентхауса» выкупил рекламу на целую страницу в "The New York Times", чтобы послать открытое письмо Унабомберу, в котором обещал опубликовать его манифест в своем журнале. После долгих переговоров "The New York Times" и "The Washington Post" согласились опубликовать Унабомбера

Его сдал родной брат - в манифесте он узнал стиль Теодора. Качинский был признан шизофреником и получил четыре пожизненных

p.s. Эта история подвигла Чака Паланика на создание «Бойцовского клуба». Паланик заменил несуществующую организацию Унабомбера «Freedom Club» на «Fight Club»

Унабомберу можно написать письмо
Theodor J. Kaczynski , 04475-046 , U.S. Penitentiary Max , P.O. Box 8500 , Florence, CO 81226-8500 , USA

Зачем нужно убивать собак?

Из статьи удалил только несколько внешних ссылок на видео и источники. На понимание текста не влияет совершенно. Интересующиеся - смотрите оригинал статьи.

Оригинал и (С) здесь - http://igni-ss.livejournal.com/274098.html

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

1. Бродячие собаки - это выброшенные домашние собаки или их недавние потомки, следовательно "человек" как таковой является основной причиной их появления и несет за них ответственность

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

А действительности он не соответствует совершенно. Популяция бродячих собак, конечно, имеет довольно широких разброс по фенотипу, но не настолько широкий, чтобы нельзя было говорить о типовой бродячей собаке. Типовая бродячая собака - размера среднего, окрас имеет грязно рыжий с вкраплениями черного (реже белого), характерные пропорции (см. фото), интеллект определенно превышающий средний интеллект домашней собаки. Интеллект позволяет бродячим псам выживать в сложных городских условиях и учиться, наблюдая за человеком (вплоть до использования городского транспорта).

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

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

Каждая сука производит дважды в год 4-6 щенков. Из них в условиях Москвы выживает примерно 40 %. Это более чем достаточно для воспроизводства и роста популяции.

Если бы бродячие собаки формировались, в основном, из выброшенных - разброс признаков был бы гораздо больше. То есть, мы бы видели на улицах псов похожих на догов, похожих на ротвейлеров, на терьеров и т.д. Тогда как вид среднего бродячего пса более-менее универсален. Любая породистая собака - это биологический аппарат, выпестованный веками строгой селекции для выполнения определенных функций. Каждая порода приспособлена для своих задач - охоты, охраны, декоративных и т.д. Породистая собака предназначена для выполнения своей функции и жизни на полном человеческом обеспечении. На "вольных хлебах" они попросту не выживают. Породистая собака не знает, как жить в городе, и не выдерживает конкуренции с интеллектуально превосходящими ее стаями дворняг.

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

2. Бродячие собаки не нападают сами, их нужно спровоцировать

Ну вообще-то никто не нападает, если не провоцировать. Только собачьи представления о провокации сильно отличаются от человеческих. То, что они примут за очевидную провокацию - вы можете попросту не заметить.

Собаки охраняют свою территорию - покажется им, что вы угрожаете их территории - покусают. И не верьте тем, кто говорит, что территориальные претензии у них направлены только лишь на собратьев - помимо внутривидовой агрессии, существует и межвидовая. Собака защищает щенков, которые сидят черти знает в какой вонючей норе, а вы просто проходите мимо - покусает. Будет ехать крыша от гормонов по весне - покусают. Собаки повышают свой статус в стае за счет облаивания и покусов более крупных объектов (людей, к примеру) - эдакая показная "удаль". Собаки инстинктивно преследуют быстро движущиеся объекты - автомобили, велосипедистов, роллеров. Собаки - хищники живущие по принципам жесткой стайной иерархии, поэтому кусать слабых и напуганных для них совершенно естественно (поэтому под раздачу часто попадают дети). У собак также есть охотничий инстинкт преследования тех, кто убегает (опять же, испуганных детей, например). Собаки воспринимают мир вовсе не глазами как люди, а через нюх - различая тончайшие нюансы запахов, недоступные людям. Собака может покусать, если ей не понравится запах - например, духов. И главное - собака может решится на упреждающую атаку, если сама вас по какой-то причине испугается (к примеру, вы подошли слишком близко).

И это все совершенно здоровая, не бешеная собака. Бешеные нападают просто так. Бешенство, кстати, смертельно. Не сделали вовремя уколов - и кирдык.

Защитники диких собак очень любят раздавать советы вроде "не надо боятся собаки - она чувствуют запах страха!". Под запахом страха они, очевидно, подразумевают гормон адреналин - и эти, подобные роботам люди, видимо, умеют управлять функциями своих надпочечников силой мысли. Но простые смертные не имеют такого стопроцентного контроля над эмоциями. У простых смертных адреналин выделяется отнюдь не только от страха, но вообще при нервном возбуждении (то есть, приподнятом, энергичном настроении). К примеру, когда человек пьет кофе - количество адреналина в крови повышается. Видимо, нам надо отказаться от кофе, чтобы не раздражать дикую городскую фауну. А особенно много адреналина вырабатывается от длительных физических нагрузок низкой интенсивности - при беге, к примеру, или езде на велосипеде. Возможно поэтому собачки с такими остервенением бросаются на бегунов и велосипедистов. Не раздражайте собачек, покупайте велотренажеры!

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

Посмотрите гугл по запросу "покусала собака" - жертвы, в основном, дети.

3. Бездомные собаки являются частью городской экосистемы и выполняют полезную функцию - борются с крысами

Этот аргумент совсем уж для идиотов, не понимающих, что крысы - не являются для собак добычей и даже значимым конкурентом. Крысы и собаки лишь иногда могут становиться конкурентами за помоечную пищу - при этом крысам ничего не мешает питаться тогда, когда собак нет около помойки, да и в большинстве случаев собаки не обращают на крыс никакого внимания. Во-первых, собак от их защитников отличает одна вещь - некоторая логика поведения. Им куда проще отожраться на помойке или у подкармливающих старух, нежели гоняться на мелкими крысами по углам и закоулкам. Во-вторых, собаки - они не кошки, и крыса для них не является типичной добычей. Зато таковой они считают самих кошек, уничтожая, таким образом, естественных охотников на крыс и голубей (которые есть "крысы с крыльями", тоже разносчики заразы).

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


Дабы не быть голословным, цитирую исследование под названием БИОТИЧЕСКИЕ ОТНОШЕНИЯ СОБАК-ПАРИЙ С СЕРЫМИ КРЫСАМИ И ДРУГИМИ ЖИВОТНЫМИ.

Собаки практически не трогают крыс, зато убивают кошек:
Хищничество собак по отношению к крысам в населенных пунктах незначительно и не наносит сколько-нибудь серьезный урон численности последних. Строго говоря, хищничество - это процесс передачи органического вещества (следовательно, и энергии) от одного организма другому по трофической цепи. Для подавляющего большинства собак-парий оно не является энергетически значимым, так как большую часть рациона они получают из других источников (Рыбалко, 2005). Хищничество по отношению к крысам как трофическое взаимодействие относительно редкое явление. Кошки тоже редко становятся именно пищей собак, но, в отличие от крыс, кошки значительно чаще становятся их жертвами, что обусловлено тем, что грызуны обитают в более труднодоступных для собак местах. Умерщвление без поедания является формой нападения, при которых гибнут крысы и значительно чаще кошки: собаки-парии их обычно не едят, а, убив и наигравшись, бросают

Не только не уничтожают крыс, но и помогают оным:
Популяции крыс зачастую получает пользу от взаимодействия с популяциями собак. По этому же типу можно классифицировать контакты собак в городах с воронами, галками, сороками.
Экологическая выгода наличия собак-парий в поселениях человека для крыс больше, чем урон: во-первых, собаки истребляют кошек - основных хищников, добывающих крыс в городах, во-вторых, улучшают доступ грызунам к корму за счет растаскивания отбросов из мусорных контейнеров, разрывая и растряхивая пакеты с мусором, и т.д. (Beck Alan M, 1975). Последнее обстоятельство выгодно не только для крыс, но и для птиц.

Резюме:
Охарактеризованы биотические контакты собак-парий с животными более чем 70 видов. Взаимоотношения собаки с крысой характеризуются 5 видами биотических отношений. Хищничество наблюдается относительно редко, обычно в незавершенной форме, без поедания умерщвленной добычи. Комменсализм проявляется через уничтожение основных врагов крыс - кошек и предупреждение грызунов об опасности. Аменсализм выражается замедлением размножения крыс в присутствии собак. Конкуренция из-за пищевых ресурсов (опосредованная) - явление нечастое. Нейтрализм - один из наиболее распространенных типов взаимоотношений собаки-парии и серой крысы. Контакт человека с собакой в условиях крупного города зачастую более напряжен и опасен, чем с серой крысой.

Многие другие виды живности еще больше страдают от бездомных собак. К примеру, последние барсуки на Лосином острове были съедены псинами еще в 2000-ом году. Псины нещадно зачищают территории лесопарковых зон, природных комплексов и заповедников - ежи, лесные мышовки, зайцы - все идут на корм блохастым париям. См. соответствующий раздел в статье википедии. Известны также случаи, когда псины пробирались в зоопарки и жрали редких зверей.

4. Уничтожение собак совершенно необязательно - есть гуманные способы борьбы с бездомными псинами. Например, стерилизация

Некоторые зоозащитники утверждают, что во всех Западных странах успешно действуют программы стерилизации. Это попросту вранье. Многие западные страны решили и решают проблему бродячих псов именно что методом "окончательного решения" - эвтаназии. Читаем:

Основной формой работы с безнадзорными владельческими и бездомными животными в западных странах является безвозвратный отлов (то есть изъятие из городской среды без последующего возвращения животных на место отлова) и помещение отловленных животных в приюты. Приюты также активно действуют как центры сбора отказных, в том числе «лишних» животных у владельцев, и как центры передачи животных новым владельцам. Так, по информации на 1990-е годы, в США немногим более половины попадавших в приюты собак были отловлены на улицах, остальные - сданы людьми, прежде всего владельцами. Сеть приютов – как муниципальных, так общественных и частных – действует совместно с муниципальными службами отлова. После обязательного срока передержки – обычно от 5 дней до двух недель (в Англии этот срок – неделя), в течение которого отловленные собаки и кошки возвращаются владельцам (если они являются потерянными или беглыми), животные могут быть переданы новым владельцам или общественным приютам для дальнейшего содержания. Невостребованные животные усыпляются. В реальности длительность содержания животного до усыпления зависит от разных условий, но не может быть меньше обязательного срока передержки.

Таким образом, в западных странах бесхозных собак отлавливают - и если через неделю-две они не востребованы - убивают. При этом там существуют частные приюты, которые на средства меценатов (а не налогоплательщиков!) могут содержать бездомных псин столько, сколько им вздумается. Если защитники собачек изволят думать, что долгая жизнь в клетке лучше быстрого усыпления...

У нас же "зоозащитники" требуют того, чтобы отловленные собаки ни в коем случае не усыплялись, а стерилизовались (на деньги налогоплательщиков!) и ВЫПУСКАЛИСЬ обратно на улицы. Понятно, что при этом стерилизованной собаке ничего не мешает нападать на людей, гадить и разносить заболевания. Но основная проблема в том, что данная программа попросту неэффективна. По данным того же сайте ни в одной западной стране она не подтвердила свою мнимую эффективность. Скорость размножения попросту выше, чем скорость работы хирургов занимающихся их стерилизацией.

Программа стерилизации, собственно, и была принята в Москве в 2002-ом году. Отсутствие результата признают сами ее идеологи:

Идеологи московской программы стерилизации признают, что программа стерилизации не имела научного фундамента и опровергают собственные тезисы о пользе бездомных собак - http://www.animalsprotectiontribune.ru/PlayVideo_Tez.html

За несколько лет работы программа стерилизации не дала ровным счетом никаких результатов. В 2008-ом году сумма, пущенная на стерилизацию московских блохастых составила 1.5 миллиарда (миллиарда!) рублей. Если мне не изменяет память, на восстановление целого города Цхинвала прошлым летом было выделено 2 миллиарда.

По данным некоторых экспертов численность бродячих псов в Москве на 2005 г. составляла 98-100 тыс. голов, по данным правительства Москвы - 20 тыс (сильный рост, кстати, отмечают с 2002-03 года, когда запретили их убийство). За годы работы программы стерилизации эти цифры ничуть не изменились (см. википедию).

Денег потрачена куча, результатов - ноль.

Более того, политика стерилизации ведет к УВЕЛИЧЕНИЮ количества собак:

Пока отловленная собака будет на передержке (10 дней), затем после операции еще несколько дней в клетке до полного восстановления, за время ее отсутствия место "на улице" займут другие особи и не пустят прежнего хозяина на эту территорию. Таким образом, миграции собак все равно будут происходить, но мигрантов уже будет значительно больше, они начнут выселяться из города и в еще больших количествах заселять окрестности города, где имеется своя значительная популяция бродячих и одичавших собак. При заселении Подмосковья московскими бродячими собаками эти животные вместе с местными одичавшими собаками составят многочисленную популяцию, в результате чего увеличиться пресс хищников на обедненную фауну не только города, но и пригородных естественных угодий, усилиться обмен патогенными организмами между дикими животными и собаками, что может привести к эпизоотиям среди них и распространению зооантропонозов среди населения Москвы и Московской области. А это значить, что гуманизм к собакам обернется для человека негативной стороной.

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

Только сокращение популяции в течение года на 80% и более ведет к утрате способности к самовосстановлению ее численности на следующий год. Охотоведам хорошо известно, что "перепромысел" с последующим сокращением популяции возможен только при превышении 50% уровня добычи, в противном случае на следующий год популяция восстанавливается. Следовательно, в попытке сократить численность популяции необходимо ежегодно сокращать численность популяции как минимум на 60%. Однако, эти рассуждения относятся к замкнутой популяции, а популяция уличных животных - открытая и все время восполняется особями выставляемыми на улицу безответственными хозяевами которым надоел бывший "любимец". В результате, мы приходим к показателю в 70 - 80%, как эффективной мере для снижения численности популяции. Исходя из явно заниженных показателей для г. Москва (около 24 тыс. бродячих и одичавших особей), получается, что необходимо для ощутимого эффекта уменьшить эту популяцию на 19 тысяч особей или 52 особи в день, без праздников и выходных.

Отдельно стоит упомянуть о встречающимся изредка мифе о том, что стерилизованные собаки менее агрессивны. Тут защитники диких собак просто демонстрируют нам глубины своей безграмотности незнанием того, что собака кусает совсем другим местом, не тем, где ее стерилизуют. Намеренно или случайно путают с кастрацией (удалением половых желез). Стерилизация - это просто "перетягивание маточных труб" у самки, которое препятствует зачатию, но не оказывает влияния на гормональный уровень и, следовательно, агрессивность. И стерилизуют только самок. Самцов это не касается вообще никак.


---
За всяческого рода теоретической и практической информацией по собачьему вопросу можно обращаться на http://dangerousdog.info/. Точнее можно было - теперь ДД не работает. Но нашу песню не задушишь не убьешь, вся практическая информация здесь - http://lj.rossia.org/users/tritopora/81967.html

С тех пор как был написан этот пост, все больше и граждан берет решение данного вопроса в свои руки. Причем методы применяются куда менее мягкие, нежели усыпление. А подчас и опасные для окружающих - диких собак не только травят, но и отстреливают из пневматического и травматического оружия. Виноваты в этом исключительно те, кто защищает диких собак от отлова и усыпления, те, кто пропихнул неэффективную "программу стерилизации". Именно они довели ситуацию до такого градуса кипения. До того, что ДОСТАЛИ.

Производственное про кризис

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

Кризис — это когда услуги Пети компания больше не может себе позволить.

(С) http://yakov-sirotkin.livejournal.com

Работун и человеко-часы

В работе программиста есть две основные активности: постановка задач и непосредственно реализация. Чтобы разобраться, что же надо делать, часто уходят не просто человеко-часы (анализ, обсуждения, согласования, переписка), уходит время: например, если заказчик внезапно ушёл в отпуск, то разработчикам придётся его ждать.

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

Итак, допустим у вас есть чёткие, хорошо поставленные задачи. Наиболее эффективно они выполняются при изменённом состоянии сознания, которое я, вслед за eagleson, буду называть работун. Работун — это священная корова производительности труда. Простая аналогия: за 1 час на машине вы можете проехать дальше, чем пройти пешком за весь день. Работой, сделанной в состоянии тоски и печали, можно пренебречь.

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

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

Если вы хотите построить эффективную компанию, то вы должны знать, что такое работун. И если вам рапортуют, что Вася сегодня отработал 10 часов, то вы должны проверить, что он действительно увлечён работой, а не мучился всё это время от безысходности, не понимая, чего же от него хотят.

(С) http://yakov-sirotkin.livejournal.com